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

    :name: 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"
    

    NFS Protocol

    :name: 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
    
  3. Apply overrides.

    (keystone_admin)$ system helm-override-update dell-storage csi-powerstore dell-storage --values=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

app.starlingx.io/component

Core Affinity.

No

platform

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