CSI driver Helm values
How the driver reaches the storage cluster, what the controller does in the background, and how the node plugin behaves on the NVMe-oF connection.
charts/mgx-csi-driver/values.yaml in the driver repo is the full, commented
list; this page is the part you are likely to set.
Cluster connection
Rendered into a Secret named mgxcsi-secret.
| Value | Default | Description |
|---|---|---|
csiSecret.clusterConfig.protocol | http | Management API protocol. |
csiSecret.clusterConfig.nodes | [localhost:8082] | Management API endpoints, host:port. |
csiSecret.clusterConfig.cluster | main | Target cluster name. |
csiSecret.clusterConfig.ns | main | Target namespace within the cluster. |
csiSecret.clusterConfig.username | "" | API user. |
csiSecret.clusterConfig.password | "" | API password. |
Controller
| Value | Default | Description |
|---|---|---|
controller.replicas | 1 | Controller StatefulSet replicas. |
controller.timeoutVolumeCheck | 2 | Minutes between reconciler scans of every PV. 0 disables the reconciler. |
controller.idleVolumeMin | 10 | Minutes a volume may stay unattached before the reconciler idles or stops it on the backend. |
What the chart creates
| Value | Default | Description |
|---|---|---|
storageclass.create | true | Create the mgxcsi-sc StorageClass. |
volumeSnapshotClass.create | true | Create the mgxcsi-snapshotclass VolumeSnapshotClass. |
externalSnapshotter.enabled | false | Deploy a snapshot controller. Only if the cluster has none — one serves every CSI driver. |
externalSnapshotter.customResourceDefinitions.enabled | false | Let the chart create the snapshot CRDs. |
serviceAccount.create | true | Create the ServiceAccount. |
rbac.create | true | Create the RBAC objects. |
Node NVMe-oF tuning
Defaults are sensible. Reach for these when diagnosing connection or teardown behaviour, not before.
| Value | Default | Description |
|---|---|---|
node.nrIoQueues | 2 | NVMe-oF I/O queues. |
node.queueSize | 16 | NVMe-oF queue depth. |
node.fastIoFailTmo | 0 | Seconds to queue I/O on a lost controller before failing fast. 0 fails immediately. |
node.ctrlLossTmo | 10 | Seconds of reconnect attempts before the controller is removed. Must be at least fastIoFailTmo. |
node.reconnectDelay | 2 | Seconds between reconnect attempts. |
node.keepAliveTmo | 5 | Keep-alive timeout, seconds. |
node.nvmeTimeout | 30 | Deadline for nvme connect/disconnect and the cleanup that follows, seconds. |
node.mkfsFsckTimeout | 120 | Per-command deadline for fsck, mkfs and mount, seconds. |
Volume clean on unpublish
Off by default. When enabled, unpublishing a volume asks the backend to clean
it and waits for READY again, which trims freed space rather than leaving it
allocated.
| Value | Default | Description |
|---|---|---|
node.volumeCleanEnabled | false | Call storage.volume_clean on unpublish and wait for READY. |
node.volumeCleanPollInterval | 2 | Seconds between volume_get probes while waiting. |
node.volumeCleanReadyTimeout | 330 | Total budget waiting for READY, seconds. |
node.volumeCleanFstrimTimeout | 300 | fstrim timeout forwarded to volume_clean, seconds. |
Driver flags
The chart starts the mgxcsi binary with --controller or --node. The flags
mirror the values above; these are the ones without a value of their own:
| Flag | Default | Description |
|---|---|---|
--drivername | csi.migrx.io | CSI driver name, and the provisioner a StorageClass must name. |
--endpoint | unix://tmp/mgxcsi.sock | CSI gRPC endpoint. |
--nodeid | required for node | Node identifier. |