Configure Powerstore CSI Backend

CSI driver for PowerStore is a part of the CSM open-source suite of Kubernetes storage enablers for Dell products. It is a CSI driver that provides support for provisioning persistent storage using Dell PowerStore storage array.

Enable CSI PowerStore Chart

Note

By default, the csi-powerstore chart is enabled. Disable any other CSI/CSM if not used/configured, otherwise it could cause the application to fail on apply.

~(keystone_admin)$ system helm-chart-attribute-modify --enabled false dell-storage <chart_name> dell-storage
  1. Enable the chart.

    ~(keystone_admin)$  system helm-chart-attribute-modify --enabled true dell-storage csi-powerstore dell-storage
    
  2. Create overrides to configure the storage connection.

    ISCSI Protocol

    ~(keystone_admin)$ cat << EOF > /home/sysadmin/powerstoreOverrides.yaml
    storageClasses:
    - name: csi-powerstore-iscsi
      arrayID: <ARRAY_ID>
      fstype: ext4
    
    secret:
      arrays:
      - globalID: <GLOBAL_ID>
        username: <USERNAME>
        password: <PASSWORD>
        endpoint: https://<POWERSTORE_ADDRESS>/api/rest
        isDefault: true
        blockProtocol: "ISCSI"
    EOF
    

    NFS Protocol

    ~(keystone_admin)$ cat << EOF > /home/sysadmin/powerstoreOverrides.yaml
    storageClasses:
    - name: csi-powerstore-nfs
      arrayID: <ARRAY_ID>
      fstype: ext4
      nasName: NAS1
    
    secret:
      arrays:
      - globalID: <GLOBAL_ID>
        username: <USERNAME>
        password: <PASSWORD>
        endpoint: https://<POWERSTORE_ADDRESS>/api/rest
        isDefault: true
        blockProtocol: None
        nasName: NAS1
    EOF
    
  3. Apply overrides.

    ~(keystone_admin)$ system helm-override-update dell-storage csi-powerstore dell-storage --values=/home/sysadmin/powerstoreOverrides.yaml
    
  4. Apply the chart.

    ~(keystone_admin)$ system application-apply dell-storage
    

UserOverrides Parameters

General Parameters

Parameter

Description | Required

Default

csm.replication

Enables/disables replication sidecar container.

No

false

csm.resiliency

Enables/disables podmon sidecar container.

No

false

labels.isApplication

If set to true it can run with application core affinity, otherwise it runs as platform.

No

false

controller.replication.replicationPrefix

Change replication prefix.

No

replication.storage.dell.com

controller.snapshot.deletionPolicy

Specifies what happens when VolumeSnapshot is deleted.

No

Delete

StorageClasses Parameters

Parameter

Description

Required

Default

storageClasses[0].name

StorageClass name.

Yes

“csi-powerstore-” + fstype

storageClasses[0].arrayID

ID of array to be used for volumes. arrayID corresponding to array’s globalID specified in secrets.

Yes

Not Applicable

storageClasses[0].nasName

NAS server’s name. Important: required for NFS protocol.

No

Not Applicable

storageClasses[0].provisioner

Driver name.

No

csi-powerstore.dellemc.com

storageClasses[0].fstype

Filesystem type for mounted volumes.

No

nfs

storageClasses[0].reclaimPolicy

PVs that are dynamically created by a StorageClass will have the reclaim policy specified here.

No

Delete

storageClasses[0].allowVolumeExpansion

Allows the users to resize the volume by editing the corresponding PVC object.

No

false

storageClasses[0].volumeBindingMode

Controls when volume binding and dynamic provisioning should occur.

No

Immediate

storageClasses[0].allowRoot

Enables or disables root squashing (valid only for NFS).

No

false

storageClasses[0].nfsAcls

Enables setting permissions on NFS mount directory.

No

0777

storageClasses[0].allowedTopologies

This feature lets you specify sub-divisions of a cluster for a volume to be placed in.

Yes

Not Applicable

storageClasses[0].replication

Used to configure replication sidecar container.

No

Not Applicable

storageClasses[0].replication.remoteStorageClassName

Remote StorageClass name.

No

csi-powerstore-replication

storageClasses[0].replication.remoteClusterID

Remote ClusterID.

No

Not Applicable

storageClasses[0].replication.remoteSystem

Remote PowerStore system.

No

Not Applicable

storageClasses[0].replication.rpo

Change to any other RPOs supported by PowerStore.

No

Five_Minutes

storageClasses[0].replication.ignoreNamespaces

Set to true if you want to ignore namespaces and if false creates separate volume group per namespace.

No

false

storageClasses[0].replication.volumeGroupPrefix

Volume group prefix.

No

csi-powerstore

Secret Parameters

Parameter

Description

Required

Default

secret.arrays

List of PowerStore array.

Yes

Not Applicable

secret.arrays[0].globalID

Unique ID of the PowerStore array. globalID corresponding to arrayID specified in storageClasses.

Yes

Not Applicable

secret.arrays[0].username

Username for connecting to REST API server.

Yes

Not Applicable

secret.arrays[0].password

Password for connecting to REST API server.

Yes

Not Applicable

secret.arrays[0].endpoint

HTTPS endpoint of the REST API server.

Yes

Not Applicable

secret.arrays[0].isDefault

Treat current array as a default. Important: requires one array as default.

No

false

secret.arrays[0].skipCertificateValidation

Indicates if client side validation of server’s certificate can be skipped.

No

true

secret.arrays[0].blockProtocol

What SCSI transport protocol used on node side (FC, ISCSI, NVMeTCP, NVMeFC, None, or auto).

No

auto

secret.arrays[0].nasName

What NAS should be used for NFS volumes. Required for NFS protocol.

No

Not Applicable

secret.arrays[0].nfsAcls

Enables setting permissions on NFS mount directory.

No

0777