--- title: "Dynamo VAST CSI Integration (Optional)" slug: "dynamo-vast-csi-integration-optional" description: "Optimize your Dynamo KV cache workloads with our VAST CSI configuration guide, covering installation, provisioning methods, and essential prerequisites." updated: 2026-10-28T02:14:35Z published: 2026-10-28T02:14:35Z canonical: "docs.vastdata.com/dynamo-vast-csi-integration-optional" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.vastdata.com/llms.txt > Use this file to discover all available pages before exploring further. # Dynamo VAST CSI Integration (Optional) This guide describes the recommended VAST CSI configuration for Dynamo KV cache workloads. For complete driver capabilities and general installation requirements, see the [official VAST CSI deployment guide](/docs-5-5/docs/deploy-vast-csi-driver). > [!NOTE] > Info > > **Before you begin:** Download the prepared YAML files from the project repository and adapt them to your environment. Confirm that your VAST and Kubernetes versions meet the compatibility requirements in the official guide. ## Choose a provisioning method Choose one of the following approaches before installing the driver: | Method | How it works | Use it when | | --- | --- | --- | | **Static provisioning** | A Kubernetes PersistentVolume (PV) points to an existing VAST View. The Dynamo deployment claims that volume through a PersistentVolumeClaim (PVC). | You want to reuse and manage an existing VAST View. | | **Dynamic provisioning** | The VAST CSI driver creates storage for each PVC and removes it when the PVC is deleted. | You want storage to follow the lifecycle of each deployment. | The two paths share the secret and Helm repository setup below. After completing the shared steps, follow only the section for your chosen provisioning method. ## Prerequisites - The VMS endpoint IP address. - A configured and operational [VAST DNS service](/docs-5-5/docs/configuring-the-vast-cluster-dns-service). - A configured [VIP pool](/docs-5-5/docs/deploy-vast-csi-driver#set-up-virtual-ip-pools), its FQDN, and at least 32 VIPs. - A [View Policy](/docs-5-5/docs/deploy-vast-csi-driver#configure-view-policies) configured with an NFS security flavor. - A VAST View at `/kvcache` with NFSv3 and read/write access. - A [VMS user](/docs-5-5/docs/deploy-vast-csi-driver#set-up-vms-user) with the required permissions, plus an access token obtained with the `vastpy` Python package. - [Trash Folder Access](/docs-5-5/docs/about-vast-csi-driver#leveraging-trash-folder-access-to-handle-deletions) enabled. This is especially important for cleaning up dynamically provisioned volumes. The examples assume the `default` tenant and do not enable SSL verification. Adjust these settings if your environment differs. ## Shared setup ### 1. Configure the Kubernetes secret Edit `secret.yaml` and set the VMS endpoint and access token: ```yaml ..  endpoint:  token: ``` **Example** ```yaml ..  endpoint: 192.168.15.100  token: aaaAAAaa.aAaAaAaAaAaAaAaAaAaA ``` Apply the secret: ```bash kubectl apply -f secret.yaml ``` ### 2. Add the Helm repository ```bash helm repo add vastcsi https://vast-data.github.io/vast-csi helm repo update ``` ## Static provisioning Use this path to expose the existing `/kvcache` VAST View through a pre-created PV and PVC. ### 1. Configure and install the CSI driver Edit `helm.yaml`: ```yaml .. endpoint: "" .. ``` **Example** ```yaml .. endpoint: "192.168.15.100" .. ``` Render the chart locally to validate the configuration: ```bash helm template csi-driver vastcsi/vastcsi -f helm.yaml ``` Install the driver: ```bash helm install csi-driver vastcsi/vastcsi -f helm.yaml ``` ### 2. Configure and create the PersistentVolume Use `pv-rdma.yaml` if RDMA is available in your network stack. Otherwise, use `pv-tcp.yaml`. Edit the selected file: ```yaml ..      vip_pool_fqdn: ""      view_policy: .. ``` **Example** ```yaml ..      vip_pool_fqdn: vippool.vastdata.com      view_policy: default .. ``` Apply the PV: ```bash kubectl apply -f pv-rdma.yaml ``` > [!NOTE] > If you selected TCP, replace `pv-rdma.yaml` with `pv-tcp.yaml` in the command. ### 3. Create the PersistentVolumeClaim ```bash kubectl apply -f pvc.yaml ``` Confirm that the claim is bound before deploying Dynamo: ```bash kubectl get pv kubectl get pvc ``` ## Dynamic provisioning Use this path when the CSI driver should create storage for each PVC and remove it when the PVC is deleted. ### 1. Configure and install the CSI driver Use `helm-rdma.yaml` if RDMA is available in your network stack. Otherwise, use `helm-tcp.yaml`. Edit the selected file: ```yaml secretName: "vast-secret" endpoint: "" verifySsl: false deletionVipPool: "" deletionViewPolicy: "" StorageClassDefaults:  volumeNameFormat: "csi:{namespace}:{name}:{id}"  ephemeralVolumeNameFormat: "eph:{namespace}:{name}:{id}"  vipPoolFQDN: "" storageClasses:  vastdata-rdma:    secretName: "vast-secret"    secretNamespace: "default"    storagePath: "/kvcache"    viewPolicy: "" .. ``` **Example** ```yaml secretName: "vast-secret" endpoint: "192.168.15.100" verifySsl: false deletionVipPool: "" deletionViewPolicy: "" StorageClassDefaults:  volumeNameFormat: "csi:{namespace}:{name}:{id}"  ephemeralVolumeNameFormat: "eph:{namespace}:{name}:{id}"  vipPoolFQDN: "vippool.vastdata.com" storageClasses:  vastdata-rdma:    secretName: "vast-secret"    secretNamespace: "default"    storagePath: "/kvcache"    viewPolicy: "default" .. ``` Render the chart locally to validate the configuration: ```bash helm template csi-driver vastcsi/vastcsi -f helm-rdma.yaml ``` Install the driver: ```bash helm install csi-driver vastcsi/vastcsi -f helm-rdma.yaml ``` > [!NOTE] > If you selected TCP, replace` helm-rdma.yaml `with `helm-tcp.yaml` in both commands. ### 2. Create the PersistentVolumeClaim ```bash kubectl apply -f pvc.yaml ``` Confirm that the dynamically provisioned PV is created and the claim is bound: ```bash kubectl get storageclass kubectl get pv kubectl get pvc ``` ## Next step After the PVC reaches the `Bound` state, reference it in the Dynamo deployment and verify that the workload can mount and write to the volume. [](https://cdn.us.document360.io/89b91113-5dc6-49db-86ec-57b16dc8ce56/Images/Documentation/yamls.tar(1).gz?sv=2026-02-06&spr=https&st=2026-11-08T09%3A05%3A37Z&se=2026-11-08T10%3A05%3A37Z&sr=c&sp=r&sig=XgSR9nkeVCAHPYbl9hTQyCS1oiB3m30w4OMCSc068e8%3D)yamls.tar3.60 KB[](https://cdn.us.document360.io/89b91113-5dc6-49db-86ec-57b16dc8ce56/Images/Documentation/yamls.tar(1).gz?sv=2026-02-06&spr=https&st=2026-11-08T09%3A05%3A37Z&se=2026-11-08T10%3A05%3A37Z&sr=c&sp=r&sig=XgSR9nkeVCAHPYbl9hTQyCS1oiB3m30w4OMCSc068e8%3D)