Installation Guide
- Set up a Kubernetes cluster following the official documentation.
 - Proceed to the Prerequisite.
 - Complete the base installation.
 - Proceed with module installation.
 
Operator Installation
To deploy the Operator, follow the instructions available here.
CSI Driver Installation
- 
Create Namespace.
kubectl create namespace powerstoreThis command creates a namespace called
powerstore. You can replacepowerstorewith any name you prefer. - 
Create
secret.yaml.a. Create a file called
secret.yamlor pick a sample that has PowerStore array connection details:arrays: - endpoint: "https://11.0.0.1/api/rest" globalID: "unique" username: "user" password: "password" skipCertificateValidation: true blockProtocol: "FC"Note : skipCertificateValidation flag is currently unsupported. Please refrain from changing its value.
- Update Parameters: Replace placeholders with actual values for your PowerStore array.
 - Add Blocks: If you have multiple PowerStore arrays, add similar blocks for each one.
 - Replication: If replication is enabled, make sure the 
config.yamlincludes all involved PowerStore arrays. 
User Privileges
The username in
secret.yamlmust be from PowerStore’s authentication providers and have at least the Storage Operator role.b. After editing the file, run this command to create a
secret.yamlcalledpowerstore-config.kubectl create secret generic -n powerstore powerstore-config --from-file=config=secret.yaml - 
Install Driver
i. Create a CR (Custom Resource) for PowerStore using the sample files provided
a. Minimal Configuration:
apiVersion: storage.dell.com/v1 kind: ContainerStorageModule metadata: name: powerstore namespace: powerstore spec: driver: csiDriverType: "powerstore" configVersion: v2.15.1 forceRemoveDriver: truesample file for default settings. Modify if needed.
[OR]
b. Detailed Configuration: sample file for detailed settings or use Wizard to generate the sample file.
- Users should configure the parameters in CR. The following table lists the primary configurable parameters of the PowerStore driver and their default values:
 
 
- Check driver pods status by running the appropriate command
kubectl get all -n powerstore 
ii. Create PowerStore custom resource:
kubectl create -f <input_sample_file.yaml>
This command will deploy the CSI PowerStore driver in the namespace specified in the input YAML file.
- 
Verify the installation as mentioned below
- Check if ContainerStorageModule CR is created successfully using the command below:
kubectl get csm/powerstore -n powerstore -o yaml - Check the status of the CR to verify if the driver installation is in the 
Succeedstate. If the status is notSucceed, see the Troubleshooting guide for more information. 
 - Check if ContainerStorageModule CR is created successfully using the command below:
 - 
Create Storage Class
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: "powerstore-ext4" provisioner: "csi-powerstore.dellemc.com" parameters: csi.storage.k8s.io/fstype: "ext4" reclaimPolicy: Delete allowVolumeExpansion: true volumeBindingMode: ImmediateRefer Storage Class for different sample files.
Run this command to create a storage class
kubectl create -f < storage-class.yaml > - 
Create Volume Snapshot Class
apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: powerstore-snapshot driver: "csi-powerstore.dellemc.com" deletionPolicy: DeleteRefer Volume Snapshot Class for the sample files.
Run this command to create a volume snapshot class
kubectl create -f < volume-snapshot-class.yaml > 
Note :
- “Kubelet config dir path” is not yet configurable in case of Operator based driver installation.
 - Snapshotter and resizer sidecars are not optional. They are defaults with Driver installation.