docs/doc/source/storage/kubernetes/configure-powerstore-csi-backend-02af0aa983b0.rst
Ngairangbam Mili 35e126e210 Dell PowerStore CSM/CSI support
Story: 2010693
Task: 50902

Change-Id: I75bf7c15a7539e15c768a18c5069248aa4f9b5c7
Signed-off-by: Ngairangbam Mili <ngairangbam.mili@windriver.com>
2024-09-05 07:27:37 +00:00

16 KiB

Configure Powerstore CSI Backend

driver for PowerStore is a part of the open-source suite of Kubernetes storage enablers for Dell products. It is a 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 / 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 server's name. Important: required for 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 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 ). No false
storageClasses[0].nfsAcls Enables setting permissions on 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 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 should be used for volumes. Required for protocol. No Not Applicable
secret.arrays[0].nfsAcls Enables setting permissions on mount directory. No 0777