PowerStore CSI Driver by Dell EMC implement an interface between CSI enabled Container Orchestrator (CO) and Dell EMC Storage Arrays. It is a plug-in that is installed into Kubernetes to provide persistent storage using Dell PowerStore storage system.

The CSI Driver for Dell EMC PowerStore and Kubernetes communicate using the Container Storage Interface protocol v 1.2.

The CSI Driver for Dell EMC PowerStore is now compatible with Kubernetes versions 1.18, 1.19, 1.20 and OpenShift 4.6 and 4.7 and Docker EE 3.1.

The CSI Driver for Dell EMC PowerStore supports Red Hat Enterprise Linux (RHEL) 8.0, CentOS 8.0. The CSI Driver for Dell EMC PowerStore supports Dell EMC PowerStore version 1.0.x

The CSI Driver for Dell EMC PowerStore can be deployed by using the provided Helm v3 charts and installation scripts on both Kubernetes and OpenShift platforms. For more detailed information on the installation scripts, review the script documentation.

CSI Driver for Dell EMC PowerStore v1.1 downloads and documentation are available on:

PowerStore CSI New Features

  • Support for OpenShift 4.6 and 4.7 with both RHEL and RHCOS worker nodes
  • Support for RHEL 8 and CentOS 8
  • Automatically generated iSCSI CHAP secrets
  • Multiarray support
  • Dynamic secret change detection
  • Custom access for NFS exports

Automatically generated iSCSI CHAP secrets

  • The CSI PowerStore driver Version 1.3.0 extends Challenge Handshake Authentication Protocol (CHAP) support by adding automatic credentials generation.
  • You no longer need to provide chapsecret/chapuser credentials, they will be automatically generated by the driver for each host.
  • To enable this feature you need to set connection.enableCHAP to true when installing with helm or set X_CSI_POWERSTORE_ENABLE_CHAP to true in your PowerStore CustomResource when installing using operator.

Multiarray support

  • The CSI PowerStore driver version 1.3.0 adds support for managing multiple PowerStore arrays from the single driver instance. This feature is enabled by default and integrated to even single instance installations.
  • Storage classes won’t be generated during installation. You need to create and populate them with the array’s IP by yourself.
  • Multiarray feature is backward compatible, meaning that you can use v1.3 driver with old volumes. For that to work you have to mark your previous array as a “default” in helm/config.yaml

Installation process has been significantly changed due to multiarray support. Please refer to the documentation for detailed step-by-step instructions.

Dynamic secret change detection

  • Version 1.3.0 of CSI PowerStore driver adds the ability to detect changes in array configuration via Kubernetes secret.
  • You can change credentials for your PowerStore arrays in-flight (without restarting the driver).
  • All you need to do is just to change your configuration file config.yaml and apply it again.
  • After Kubernetes remounts secret to driver containers, a driver will detect the change and will start using this new configuration information.

Custom access for NFS exports

  • Version 1.3.0 of CSI PowerStore driver adds the ability to configure NFS access to nodes that use dedicated storage networks (e.g. behind a NAT device).
  • To enable this feature you need to specify externalAccess parameter in your helm values.yaml file or X_CSI_POWERSTORE_EXTERNAL_ACCESS variable when creating CustomResource using an operator.
  • You can allow access to subnet or particular IP, by using syntax like:

externalAccess: “x.x.x.x/xx”


externalAccess: “x.x.x.x”

Below, you can see a demo how to install and work with the PowerStore CSI plugin and RedHat OpenShift

Driver Installation – Methods
CSI Driver for Dell EMC PowerStore can be installed in the following ways
Using Helm 3 Charts and the installation scripts
Using pre-packed offline installation bundle
Using the common CSI Operator which can install multiple CSI drivers provided by Dell EMC

Driver Installation Prerequisites
Full details are in the Installation Guide but here is a summary of pre-reqs for the driver.
Upstream Kubernetes versions 1.18 – 1.20 or OpenShift versions 4.6 and 4.7
Container Runtime with mount propagation enabled
Snapshot CRDs and snapshot controller installed in cluster
You can access your cluster with kubectl and helm.
The nonsecure registries defined in Docker or other container runtime, for CSI drivers that
are hosted in a nonsecure location.

If using iSCSI
iscsi-initiator-utils package installed on all the Kubernetes nodes
Make sure that iscsid service started and healthy
If using FC
Make sure that FC card is attached to nodes and connected to storage array
Zoning of the Host Bus Adapters (HBAs) to the fibre channel port director must be done
If using multipath
Enable multipath with mpathconf –enable –with_multipathd y
Enable user_friendly_names and find_multipaths in the multipath.conf file
If using NFS
NFS is enabled in driver’s config file(secret) and NAS server is configured on PowerStore array

Installation Steps
1. Clone the repository from the
2. Ensure that you’ve created namespace where you want to install the driver. You can run
kubectl create namespace csi-powerstore to create a new one.
3. Edit helm/secret.yaml so that it points to correct namespace.
4. Edit helm/config.yaml file and configure connection information for your PowerStore arrays
changing following parameters:
endpoint: defines the full URL path to the PowerStore API
username, password: defines credentials for connecting to array
insecure: defines if we should use insecure connection or not
default: defines if we should treat the current array as a default
block-protocol: defines what SCSI transport protocol we should use (FC, ISCSI, None, or auto)
nas-name: defines what NAS should be used for NFS volumes

Create storage classes using ones from helm/samples/storageclass folder as an
example and apply them to the Kubernetes cluster by running
kubectl create -f
6. Create a secret by running sed “s/CONFIG_YAML/`cat helm/config.yaml | base64 –
w0`/g” helm/secret.yaml | kubectl apply -f –
7. Copy the default values.yaml file and edit it for your needs: cd dell-csi-helminstaller && cp ../helm/csi-powerstore/values.yaml ./my-powerstoresettings.yaml
8. Install the driver using bash script by running ./ —
namespace csi-powerstore –values ./my-powerstore-settings.yaml

Using the Driver
You could test the driver with any helm chart from public helm repository which
uses persistent volumes, for example, stable/postgresql.
helm install stable/postgresql -n postgresql
Follow helm chart’s notes to validate the installation

Documentation and Downloads

CSI Driver for Dell EMC PowerStore v1.3 downloads and documentation are available on:


Leave a Reply Cancel reply