Upgrade the Crusoe CSI driver
Crusoe CSI driver versions before v0.4.12 are deprecated and will become unsupported after November 8, 2026. If you're unsure whether your cluster is affected, start with Check your current driver version. Otherwise, skip to Upgrade the CSI driver to complete the upgrade procedure.
November 8, 2026 deprecation
Crusoe CSI driver versions earlier than v0.4.12 are deprecated. Crusoe Managed Kubernetes (CMK) clusters that mount shared disks through the Crusoe CSI driver (fs.csi.crusoe.ai) should upgrade to CSI driver v0.4.12 or later (Helm chart 0.10.21+).
The upgrade itself is low-impact. Existing mounts and I/O continue uninterrupted; only disk control-plane operations (mount, unmount, attach, resize) pause for the 30–60 seconds the CSI driver pods take to restart, and Kubernetes retries those automatically, so a pod starting in that window mounts late rather than failing.
Starting with v0.4.12, the CSI driver resolves the NFS storage hostname itself and passes explicit IP addresses to the kernel NFS client, so mounts no longer depend on the node's DNS configuration. If in-driver resolution fails for any reason, the driver falls back to the previous behavior and lets the kernel resolve the hostname, so the upgrade introduces no new failure mode.
If your cluster runs in a private network without outbound internet access, the upgrade is required: v0.4.12 gets the storage IP addresses directly from the disk API and mounts without needing DNS. The older CSI driver versions (below v0.4.6) don't use the disks API for resolution and rely on static entries instead. The CSI upgrade is needed because customers on lower CSI versions may have mount issues such as mount.nfs: Protocol not supported, mount.nfs: Required key not available, and pods stuck in ContainerCreating.
Who is affected
Your cluster is affected if it meets all of the following:
- Mounts a shared disk through the CSI driver (
fs.csi.crusoe.ai). - Runs Crusoe Managed Kubernetes (CMK) with CSI driver
v0.4.11or older (Helm chart 0.10.20 or older).
Your cluster isn't affected if any of the following apply:
- Already on CSI driver
v0.4.12or newer (Helm chart 0.10.21 or newer). - Uses only block or SSD volumes (
csi.crusoe.ai). - Mounts shared disks manually over NFS from a VM (not through the CSI driver).
Check your current driver version
Before upgrading, verify the CSI driver version running on your cluster. Check the container image tags of the actual running pods instead of relying on helm list, which reports the chart's default app version and not the actual running image.
kubectl get ds,deploy -n crusoe-system \
-o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.template.spec.containers[*].image}{"\n"}{end}' \
| grep crusoe-csi-driver:
If any image tag is v0.4.11 or older, follow the steps below to upgrade the CSI driver to v0.4.12 or newer.
Prerequisites
Before you start the upgrade, confirm you have:
- Access to the Crusoe CLI or Crusoe Console.
- Valid Crusoe authentication credentials.
- An existing CMK cluster with the Crusoe CSI driver installed.
- Helm.
The Crusoe CSI driver is only supported on CMK. Other configurations are supported on a best-effort basis.
Service impact during upgrade
Review the expected impact before you start the upgrade:
- Existing mounts aren't affected during the upgrade.
- I/O doesn't interrupt during the upgrade.
- Disk control plane operations (mount, unmount, resize) are temporarily disrupted during the upgrade because the CSI driver pods handle these operations. The CSI pods restart as part of the upgrade process.
It's your responsibility to periodically update add-ons in your cluster to ensure continued compatibility, performance, and access to the latest features. During the upgrade process, you might see intermittent issues with volume attachment, detachment, mounting, or creation until the new CSI pods are fully up and running.
Upgrade the CSI driver
Complete the four steps below to upgrade the CSI driver with Helm.
1. Ensure the CSI driver Helm repo is installed and up-to-date
-
Check if the CSI driver chart already exists:
helm repo list | grep csi-driver-
If the Helm repo is already present, update it to the latest version:
helm repo update crusoe-csi-driverOutput:
Hang tight while we grab the latest from your chart repositories......Successfully got an update from the "crusoe-csi-driver" chart repositoryUpdate Complete. ⎈Happy Helming!⎈ -
If the Helm repo is absent, add it:
helm repo add crusoe-csi-driver https://crusoecloud.github.io/crusoe-csi-driver-helm-charts/chartsOutput:
"crusoe-csi-driver" has been added to your repositories
-
-
Find the latest available Helm chart version:
helm search repo crusoe-csi-driverOutput:
NAME CHART VERSION APP VERSION DESCRIPTIONcrusoe-csi-driver/crusoe-csi-driver 0.10.23 v0.4.13 A Helm chart for the Crusoe Cloud CSI Driver
2. Create override values for authentication
Create a YAML file named override_values.yaml with the following contents (do not replace any values):
crusoe:
secrets:
crusoeApiKeys:
# The Crusoe CSI Driver requires access to the Crusoe API in order to manage and mount Crusoe Storage Disks.
# It is expected that the secret will contain two keys at accessKeyPath and secretKeyPath containing
# the base64 encoded access key and secret key respectively.
secretName: "crusoe-secrets"
accessKeyPath: "CRUSOE_ACCESS_KEY"
secretKeyPath: "CRUSOE_SECRET_KEY"
3. Upgrade the Helm release
-
Note the name of the CSI driver release:
helm list -n crusoe-systemOutput:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSIONcrusoe-csi-driver crusoe-system 2 2026-08-23 22:23:22.458459 -0700 PDT deployed crusoe-csi-driver-0.10.11 v0.4.4 -
Upgrade the Helm release to the latest chart version:
helm upgrade crusoe-csi-driver crusoe-csi-driver/crusoe-csi-driver --version 0.10.23 -f override_values.yaml -n crusoe-systemOutput:
Release "crusoe-csi-driver" has been upgraded. Happy Helming!NAME: crusoe-csi-driverLAST DEPLOYED: Thu Sep 18 18:35:32 2025NAMESPACE: crusoe-systemSTATUS: deployedREVISION: 2TEST SUITE: None
4. Verify the upgrade
-
Verify the Helm release is installed with the latest chart version:
helm list -n crusoe-systemOutput:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSIONcrusoe-csi-driver crusoe-system 3 2026-08-24 17:20:10.155221 -0700 PDT deployed crusoe-csi-driver-0.10.23 v0.4.13 -
Verify the CSI driver pods are up and running:
kubectl get pods -n crusoe-system | grep csiOutput:
crusoe-csi-driver-fs-controller-7975568785-kpv6s 5/5 Running 0 2m41scrusoe-csi-driver-fs-node-dwjvr 3/3 Running 0 2m42scrusoe-csi-driver-fs-node-fgf7r 3/3 Running 0 2m34scrusoe-csi-driver-fs-node-nxxct 3/3 Running 0 2m37scrusoe-csi-driver-ssd-controller-5f8c6cb8b-zclsk 5/5 Running 0 2m41scrusoe-csi-driver-ssd-node-459c6 3/3 Running 0 2m37scrusoe-csi-driver-ssd-node-4dbx2 3/3 Running 0 2m41scrusoe-csi-driver-ssd-node-5tb2s 3/3 Running 0 2m34s
When all pods are running, your upgrade is complete.
Release notes and changelog
The following table summarizes notable driver releases. For the full history, see the crusoe-csi-driver Helm charts repository on GitHub.
| Version | Date | Change |
|---|---|---|
| v0.4.12 | 2026-06 | NFS hostname resolved in userspace instead of kernel DNS upcall. |
| v0.4.11 | 2026-06 | Shared FS allowed on all instance types and slice counts; removes virtiofs-era per-SKU gates |
| v0.4.9 | 2026-05 | Shared FS enabled on c2a and s2a CPU instances |
| v0.4.6 | 2026-04 | NFS mount target resolved dynamically from the disk API (dns_name / vips), removing hard-coded per-datacenter addressing; Kubernetes 1.34 sidecar compatibility |
| v0.4.5 | 2026-03 | NodeGetVolumeStats implemented; minimum version for kubelet_volume_stats_* metrics and PV capacity alerting |
| v0.4.3 | 2026-02 | DNS-based NFS mounting for ICAT datacenters (introduced in v0.4.2, activated by a flag-lookup fix in v0.4.3) |
| v0.4.0 | 2025-10 | NFS mount support for shared FS disks (previously virtiofs only); mode selected server-side per project |
| v0.3.3 | 2025-09 | Idempotent mounting; prevents duplicate-mount errors on retries |
| v0.3.2 | 2025-06 | Shared FS support on gb200-186gb.4x instances |
| v0.3.0 | 2025-05 | Breaking: auth flags renamed; --crusoe-csi-access-key / --crusoe-csi-secret-key to --crusoe-access-key / --crusoe-secret-key |
| v0.2.1 | 2025-05 | Driver-side error logging for all gRPC failures (debuggable from pod logs) |
| v0.1.9 | 2025-03 | Fix: volume detach no longer hangs when the node VM was already deleted; volumes were previously stuck and unreusable |