rancher-partner-charts/packages/dell/csi-powerstore/overlay/app-readme.md

11 KiB

CSI Driver for Dell PowerStore Helm chart

The CSI Driver for Dell PowerStore is part of the CSM (Container Storage Modules) open-source suite of Kubernetes storage enablers for Dell EMC products. CSI Driver for PowerStore is a Container Storage Interface (CSI) driver that provides support for provisioning persistent storage using Dell EMC PowerStore storage array.

Prerequisites

  • Kubernetes version >= 1.23 (see supported version)
  • Helm 3
  • If you plan to use either the Fibre Channel or iSCSI or NVMe/TCP or NVMe/FC protocol, refer to either Fibre Channel requirements or Set up the iSCSI Initiator or Set up the NVMe Initiator sections below. You can use NFS volumes without FC or iSCSI or NVMe/TCP or NVMe/FC configuration.

You can use either the Fibre Channel or iSCSI or NVMe/TCP or NVMe/FC protocol, but you do not need all the four.

If you want to use preconfigured iSCSI/FC hosts be sure to check that they are not part of any host group

  • Linux native multipathing requirements
  • Mount propagation is enabled on container runtime that is being used
  • If using Snapshot feature, satisfy all Volume Snapshot requirements
  • Nonsecure registries are defined in Docker or other container runtimes, for CSI drivers that are hosted in a non-secure location.
  • You can access your cluster with kubectl and helm.
  • Ensure that your nodes support mounting NFS volumes.
  • Install the Volume Snapshot CRDs by referring to this page.

Refer this for setting up the prerequisites.

Optional Features

Install the Driver

Steps

  1. Create a namespace where you want to install the driver (e.g. "csi-powerstore"). You can choose any name for the namespace, but make sure to align to the same namespace during the whole installation.
  2. Create a secret named "powerstore-config" in the namespace created above. Sample secret.yaml.

    Secret must be of type opaque.

  3. Create storage classes using ones from samples folder as an example.

    If you do not specify arrayID parameter in the storage class then the array that was specified as the default would be used for provisioning volumes.

  4. Install the chart with the name "powerstore". The value.yaml file used during installation can be found here

The following table lists the configurable parameters of the chart and their default values.

Parameter Description Required Default
logLevel Defines CSI driver log level No "debug"
logFormat Defines CSI driver log format No "JSON"
externalAccess Defines additional entries for hostAccess of NFS volumes, single IP address and subnet are valid entries No " "
kubeletConfigDir Defines kubelet config path for cluster Yes "/var/lib/kubelet"
imagePullPolicy Policy to determine if the image should be pulled prior to starting the container. Yes "IfNotPresent"
nfsAcls Defines permissions - POSIX mode bits or NFSv4 ACLs, to be set on NFS target mount directory. No "0777"
connection.enableCHAP Defines whether the driver should use CHAP for iSCSI connections or not No False
controller.controllerCount Defines number of replicas of controller deployment Yes 2
controller.volumeNamePrefix Defines the string added to each volume that the CSI driver creates No "csivol"
controller.snapshot.enabled Allows to enable/disable snapshotter sidecar with driver installation for snapshot feature No "true"
controller.snapshot.snapNamePrefix Defines prefix to apply to the names of a created snapshots No "csisnap"
controller.resizer.enabled Allows to enable/disable resizer sidecar with driver installation for volume expansion feature No "true"
controller.healthMonitor.enabled Allows to enable/disable volume health monitor No false
controller.healthMonitor.interval Interval of monitoring volume health condition No 60s
controller.nodeSelector Defines what nodes would be selected for pods of controller deployment Yes " "
controller.tolerations Defines toleration that would be applied to controller deployment Yes " "
node.nodeNamePrefix Defines the string added to each node that the CSI driver registers No "csi-node"
node.nodeIDPath Defines a path to file with a unique identifier identifying the node in the Kubernetes cluster No "/etc/machine-id"
node.healthMonitor.enabled Allows to enable/disable volume health monitor No false
node.nodeSelector Defines what nodes would be selected for pods of node daemonset Yes " "
node.tolerations Defines toleration that would be applied to node daemonset Yes " "
fsGroupPolicy Defines which FS Group policy mode to be used, Supported modes None, File and ReadWriteOnceWithFSType No "ReadWriteOnceWithFSType"
controller.vgsnapshot.enabled To enable or disable the volume group snapshot feature No "true"
images.driverRepository To use an image from custom repository No dockerhub
version To use any driver version No Latest driver version
allowAutoRoundOffFilesystemSize Allows the controller to round off filesystem to 3Gi which is the minimum supported value No false
storageCapacity.enabled Enable/Disable storage capacity tracking No true
storageCapacity.pollInterval Configure how often the driver checks for changed capacity No 5m

NOTE:

  • By default, the driver scans available SCSI adapters and tries to register them with the storage array under the SCSI hostname using node.nodeNamePrefix and the ID read from the file pointed to by node.nodeIDPath. If an adapter is already registered with the storage under a different hostname, the adapter is not used by the driver.
  • A hostname the driver uses for registration of adapters is in the form <nodeNamePrefix>-<nodeID>-<nodeIP>. By default, these are csi-node and the machine ID read from the file /etc/machine-id.
  • To customize the hostname, for example if you want to make them more user friendly, adjust nodeIDPath and nodeNamePrefix accordingly. For example, you can set nodeNamePrefix to k8s and nodeIDPath to /etc/hostname to produce names such as k8s-worker1-192.168.1.2.
  • (Optional) Enable additional Mount Options - A user is able to specify additional mount options as needed for the driver.
    • Mount options are specified in storageclass yaml under mountOptions.
    • WARNING: Before utilizing mount options, you must first be fully aware of the potential impact and understand your environment's requirements for the specified option.

Support

The CSI Driver for Dell PowerStore is fully supported by DELL.

For all your support needs or to follow the latest ongoing discussions and updates, join our Slack group. Click Here to request your invite.

You can also interact with us on GitHub by creating a GitHub Issue.

Contributing

We value all feedback and contributions. If you find any issues or want to contribute, please feel free to open an issue or file a PR. More details in Contribution Guidelines.

License

This is open source software licensed using the Apache License 2.0. Please see LICENSE for details.