Configure PowerScale CSI Backend

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

Note

Isilon is the legacy name for PowerScale.

Note

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

Enable CSI PowerScale Chart

Note

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-powerscale dell-storage
    
  2. Create overrides to configure the storage connection.

    :name: powerscaleOverrides.yaml
    
     isiPath: "/my/isi/path"
    
     controller:
       replication:
         replicationPrefix: "myCustomReplicationPrefix"
    
     secret:
       arrays:
       - clusterName: Cluster1
         username: <USERNAME>
         password: <PASSWORD>
         endpoint: https://<cluster1_address>
         endpointPort: 8888
         isDefault: true
         skipCertificateValidation: false
         isiPath: "/my/isi/path"
         isiVolumePathPermissions: "0755"
         ignoreUnresolvableHosts: true
         replicationCertificateID: "dd9c736cc17e6dd5f7d85fe13528cfc20f3b4b0af4f26595d22328c8d1f461af"
         authorizationEndpoint: "https://localhost:9999"
    
       - clusterName: "Cluster2"
         username: <USERNAME>
         password: <PASSWORD>
         endpoint: https://<cluster2_address>
         isiPath: "/my/isi/path2"
    
     storageClasses:
     - name: "storageClassDefault"
    
     proxyAuthzTokens:
       access: "YWJjZGVmCg=="
       refresh: "YWJjZGVmCg=="
    
  3. Apply override.

    (keystone_admin)$ system helm-override-update dell-storage csi-powerscale dell-storage --values=powerscaleOverrides.yaml
    
  4. Apply chart.

    (keystone_admin)$ system application-apply dell-storage
    

UserOverrides Parameters

General Parameters

Parameter

Description

Required

Default

app.starlingx.io/component

Code affinity.

No

platform

authorization.rootCertificate

Authorization proxy server root certificate.

Only if authorization is enabled

Not Applicable

certSecret

Secret containing the certificate.

No

Not Applicable

controller.replication.replicationPrefix

Change replication prefix.

No

replication.storage.dell.com

controller.snapshot.deletionPolicy

Specifies what happens when VolumeSnapshot is deleted.

No

Delete

csm.authorization

Enables/disables authorization sidecar container.

No

false

csm.replication

Enables/disables dell-csi-replicator sidecar container.

No

false

csm.resiliency

Enables/disables podmon sidecar container.

No

false

driverName

Driver name.

No

csi-isilon.dellemc.com

isiPath

The base path for the volumes to be created on PowerScale cluster.

No

/ifs/data/csi

proxyAuthzTokens.access

Access token for authorization sidecar container access.

Only if authorization is enabled

Not Applicable

proxyAuthzTokens.refresh

Refresh token for authorization sidecar container access.

Only if authorization is enabled

Not Applicable

StorageClasses Parameters

Parameter

Description

Required

Default

storageClasses

List of storage classes.

no

Not Applicable

storageClasses[0].name

StorageClass name.

yes

Not Applicable

storageClasses[0].provisioner

Driver name.

no

“csi-isilon.dellemc.com”

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].AccessZone

The name of the access zone a volume can be created in.

no

Not Applicable

storageClasses[0].IsiPath

The base path for the volumes to be created on PowerScale cluster.

no

Same as General isiPath

storageClasses[0].IsiVolumePathPermissions

The permissions for isi volume directory path.

no

“0777”

storageClasses[0].AzServiceIP

AccessZone groupnet service IP.

no

Not Applicable

storageClasses[0].RootClientEnabled

Determines whether the driver should enable root squashing or not.

no

Not Applicable

storageClasses[0].ClusterName

Name of PowerScale cluster where PV will be provisioned.

no

Not Applicable

storageClasses[0].AdvisoryLimit

Parameter to set advisory limit to quota.

no

Not Applicable

storageClasses[0].SoftLimit

Parameter to set soft limit to quota.

no

Not Applicable

storageClasses[0].SoftGracePrd

Parameter which must be mentioned along with soft limit.

no

Not Applicable

storageClasses[0].fstype

Sets the filesystem type which will be used to format the new volume.

no

“nfs”

storageClasses[0].volumeBindingMode

Controls when volume binding and dynamic provisioning should occur.

no

Immediate

storageClasses[0].allowedTopologies

Helps scheduling pods on worker nodes which match all of the below expressions.

no

Not Applicable

storageClasses[0].mountOptions

Specifies additional mount options for when a persistent volume is being mounted on a node.

no

Not Applicable

storageClasses[0].replication.isReplicationEnabled

If set to true, will mark this storage class as replication enabled.

no

“true”

storageClasses[0].replication.remoteStorageClassName

Name of the remote storage class.

no

Not Applicable

storageClasses[0].replication.remoteClusterID

ID of a remote cluster.

no

Not Applicable

storageClasses[0].replication.remoteSystem

Name of the remote system that should match whatever clusterName you called it in csI-powerscale-creds secret.

no

Not Applicable

storageClasses[0].replication.rpo

Recovery Point Objective value.

no

Not Applicable

storageClasses[0].replication.ignoreNamespaces

If set to true PowerScale driver, it will ignore what namespace volumes are created and put every volume created using this storage class into a single volume group.

no

Not Applicable

storageClasses[0].replication.volumeGroupPrefix

String that would be appended to the volume group name to differentiate the Volume Groups.

no

Not Applicable

storageClasses[0].replication.remoteAccessZone

Name of the access zone a remote volume can be created in.

no

Same as General isiAccessZone

storageClasses[0].replication.remoteAzServiceIP

AccessZone groupnet service IP.

no

Not Applicable

storageClasses[0].replication.remoteRootClientEnabled

Determines whether the driver should enable root squashing or not for the remote volume.

no

Not Applicable

SnapshotClasses Parameters

Parameter

Description

Required

Default

snapshotClasses

List of snapshot classes.

no

Not Applicable

snapshotClasses[0].name

SnapshotClass name.

yes

Not Applicable

snapshotClasses[0].deletionPolicy

Configure what happens to a VolumeSnapshotContent when the VolumeSnapshot object is deleted.

yes

Delete

snapshotClasses[0].IsiPath

The base path of the volumes on Isilon cluster for which snapshot is being created.

no

Same as General isiPath

Secrets Parameters

Parameter

Description

Required

Default

secret.arrays

List of PowerStore array.

no

Not Applicable

secret.arrays[0].clusterName

Logical name of PowerScale Cluster.

yes

Not Applicable

secret.arrays[0].username

Username for connecting to PowerScale OneFS API server.

yes

Not Applicable

secret.arrays[0].password

Password for connecting to PowerScale OneFS API server.

yes

Not Applicable

secret.arrays[0].endpoint

HTTPS endpoint of the PowerScale OneFS API server.

yes

Not Applicable

secret.arrays[0].endpointPort

Specifies the HTTPs port number of the PowerScale OneFS API server.

no

8080

secret.arrays[0].isDefault

Is this a default cluster?

no

false

secret.arrays[0].skipCertificateValidation

Specifies whether the PowerScale OneFS API server’s certificate chain and host name should be verified

no

true

secret.arrays[0].isiPath

The base path for the volumes to be created on PowerScale cluster.

no

Same as General isiPath

secret.arrays[0].isiVolumePathPermissions

The permissions for isi volume directory path.

no

“0777”

secret.arrays[0].ignoreUnresolvableHosts

Ignore unresolvable hosts on the OneFS.

no

false

secret.arrays[0].replicationCertificateID

Unique ID if the certificate is used to encrypt replication policy.

no

“”

secret.arrays[0].authorizationEndpoint

HTTPS localhost endpoint that the authorization sidecar will listen on.

no

https://localhost:9400