Prerequisites
Before you begin, ensure that you have the following:talosctlinstalledkubectlinstalled (v1.25 or higher)- Helm installed (v3.7 or higher)
- Access to a Dell PowerStore array with the Storage Operator role or higher
- Network connectivity from your nodes to the PowerStore array
siderolabs/nvme-cli— provides thenvmeCLI used for NVMe/TCP connectionssiderolabs/multipath-tools— providesmultipathdfor device multipathingsiderolabs/iscsi-tools— provides iscsid and iscsiadm for persistent volume operationssiderolabs/util-linux-tools— provides Linux utilities such asfstrim
Use Talos Linux v1.13.3 or higher.
The schematic ID
4f50d1375e1c91b2bcac34a8a99ccc83ab9220f7f1ab65172ccff510bb926b4b corresponds to exactly the four extensions listed above.Step 1: Download the CSI driver chart
Add the Dell Helm repository and pull the chart locally so you can customize it before installing:Step 2: Create a privileged namespace
Talos enables the Pod Security Admission Policies by default, which blocks the privileged containers the CSI driver requires. Create thecsi-powerstore namespace and label it to allow privileged workloads:
Step 3: Configure the PowerStore connection secret
Download Dell’s example secret and edit it to match your array:config.yaml, set blockProtocol to NVMeTCP. The username must belong to a PowerStore authentication provider and have the correct role to perform the required actions — the minimum is Storage Operator.
Create a Kubernetes secret from the edited file:
Step 4: Create a StorageClass
Create a StorageClass based on one of the Dell samples. A minimal NVMe/TCP example: If you do not specify the
arrayID parameter in the StorageClass, the array marked as the default in your secret is used for provisioning volumes.Step 5: Configure the Helm values
Create a copy of the chart’s values file and edit it to match your configuration:Work around the multipath.conf mount on Talos
Editcsi-powerstore/templates/node.yaml. In the volumeMounts section, comment out the mpath mount:
volumes section, comment out the matching mpath volume:
Volume Health Monitoring (optional)
Volume Health Monitoring is disabled by default. To enable it, add the configuration below to yourmy-powerstore-values.yaml file before installing the driver. Set enabled: true under controller.healthMonitor to check the health condition of CSI volumes, and under node.healthMonitor to enable volume stats monitoring.
Step 6: Install the driver
Once you have configured yourmy-powerstore-values.yaml file, install the driver from the local chart:
Step 7: Verify the installation
Check that the controller and node pods are running:csi-powerstore-controller deployment and a csi-powerstore-node pod on each node should reach the Running state.
Step 8: Create a test persistent volume
Create a test PersistentVolumeClaim using the StorageClass from Step 4:Enable replication (optional)
The following applies only if you enable the replication feature inmy-powerstore-values.yaml:
csm-replication/deploy/replicationcrds.all.yaml from the repository to install them.
CRDs should be configured during the replication prepare stage with repctl, as described in the Dell install-repctl documentation.