Configure PowerFlex CSI Backend

CSI driver for PowerFlex 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 PowerFlex storage array.

Note

VxFlexOs is the legacy name for PowerFlex.

Note

By default, the csi-powerflex chart is disabled. It is necessary to enable the chart and update user-overrides before applying the dell-storage application.

Enable CSI PowerFlex Chart

Note

Disable any other CSI/CSM if not used/configured, otherwise it could cause the application to fail on apply.

system helm-chart-attribute-modify --enabled false dell-storage <chart_name> dell-storage
  1. Enable the chart using the following command:

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

    :name: powerflexOverrides.yaml
    app.starlingx.io/component: platform
    
    storageClasses:
    - name: csi-powerflex-nfs
      arrayId: <ARRAY_ID>
      nasServer: nas_2
      provisioner: csi-vxflexos.dellemc.com
      fstype: nfs
      path: /target
      reclaimPolicy: Delete
      allowVolumeExpansion: true
      volumeBindingMode: Immediate
      mountOptions: ["hard"]
      hostIoSize: 8192
      tieringPolicy: 0
      isDataReductionEnabled: "false"
      thinProvisioned: "true"
      storagePool: pool_2
      protocol: NFS
    
    secret:
      arrays:
      - arrayId: <ARRAYID>
        username: <USERNAME>
        password: <PASSWORD>
        systemID: <SYSTEM_ID>
        allSystemNames: "pflex-1"
        endpoint: https://<POWERFLEX_ADDRESS>/api/rest
        isDefault: true
        skipCertificateValidation: true
        nasName: nas_2
    
  3. Apply overrides using the following command:

    (keystone_admin)$ system helm-override-update dell-storage csi-powerflex dell-storage --values=powerflexOverrides.yaml
    
  4. Apply the chart using the following command:

    (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 dell-csi-replicator sidecar container.

No

false

app.starlingx.io/component

Core affinity.

No

platform

controller.snapshot.deletionPolicy

Specifies what happens when VolumeSnapshot is deleted.

No

Delete

StorageClasses Parameters

Parameter

Description

Required

Default

storageClasses[0].name

StorageClass name.

No

“csi-powerflex-” + fstype

storageClasses[0].systemID

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-vxflexos.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

true

storageClasses[0].volumeBindingMode

Controls when volume binding and dynamic provisioning should occur.

No

Immediate

storageClasses[0].protectionDomain

Protection domain that storage pool belongs to. Needed if array has two storagepools that share the same name but belong to different protection domains.

No

Not Applicable

storageClasses[0].iopsLimit

Limit the volume IOPS.

No

Not Applicable

storageClasses[0].path

The relative path to the root of the associated filesystem.

No

Not Applicable

storageClasses[0].softLimit

Time for soft limit to quota. Specified as percentage.

No

Not Applicable

storageClasses[0].gracePeriod

Requires the configuration of softLimit. Defines the period in which the soft limit time has reached and can exceed until process ends.

No

Not Applicable

storageClasses[0].bandwithLimitInKbps

The value to limit the volume network bandwidth.

No

Not Applicable

storageClasses[0].mkfsFormatOption

A string value to dictate de fs format options to pass to mkfs.

No

Not Applicable

storageClasses[0].storagePool

Defines storage pool. The value should be picked from the column labeled “CLI ID” of pools in the Unisphere GUI.

Yes

Not Applicable

storageClasses[0].replication

Used to configure replication sidecar container.

No

Not Applicable

storageClasses[0].replication.remoteStorageClassName

Remote StorageClass name.

No

csi-powerflex-replication

storageClasses[0].replication.remoteClusterID

Remote ClusterID.

No

Not Applicable

storageClasses[0].replication.remoteSystem

Remote PowerStore system.

No

Not Applicable

storageClasses[0].replication.remoteStoragePool

Defines storage pool for the replication. The value should be picked from the column labeled “CLI ID” of Pools in the Unisphere GUI.

No

Not Applicable

storageClasses[0].replication.rpo

Change to any other RPOs supported by PowerStore.

No

Five_Minutes

storageClasses[0].replication.consistencyGroupName

Defines the group name in array of a replication.

No

Not Applicable

storageClasses[0].replication.volumeGroupPrefix

Volume group prefix.

No

csi-powerflex

storageClasses[0].replication.protectionDomain

Protection domain that storage pool of replication belongs to. Needed if array has two storagepools that share the same name but belong to different protection domains.

No

Not Applicable

storageClasses[0].replication.remotePVRetentionPolicy

Reclaim policy for PersistentVolumes. Can accept Retain, Recycle, and Delete.

No

Delete

storageClasses[0].replication.remoteRGRetentionPolicy

Reclaim policy for RG. Can accept Retain, Recycle, and Delete.

No

Delete

storageClasses[0].allowedTopologies

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

No

Not Applicable

Secret Parameters

Parameter

Description

Required

Default

secret.arrays

List of Unity XT.

Yes

Not Applicable

secret.arrays[0].systemID

Array ID of Powerflex.

Yes

Not Applicable

secret.arrays[0].username

Username for accessing PowerFlex system.

Yes

Not Applicable

secret.arrays[0].password

Password for accessing PowerFlex system.

Yes

Not Applicable

secret.arrays[0].endpoint

HTTPS localhost endpoint that the authorization sidecar will listen on.

Yes

Not Applicable

secret.arrays[0].isDefault

Treat current array as a default. Important: use at least one of the arrays 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].AllSystemNames

Previous names used in secret of Powerflex system.

Yes

Not Applicable

secret.arrays[0].nasName

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

No

Not Applicable