rancher-partner-charts/charts/dell/csi-unity/2.9.0/app-readme.md

8.1 KiB

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

Pre-Requisites

  • Install Kubernetes (see supported versions)
  • Install Helm v3 (follow steps)
  • Install sshpass
  • Configure the pre-installation steps according to the protocols you are using:
    • To use FC protocol, the host must be zoned with Unity XT array and Multipath needs to be configured
    • To use iSCSI protocol, iSCSI initiator utils packages need to be installed and Multipath needs to be configured
    • To use NFS protocol, NFS utility packages needs to be installed
  • Enable mount propagation on container runtime that is being used
  • In order to use the Kubernetes Volume Snapshot feature, ensure to deploy Volume Snapshot CRDs and Volume Snapshot Controller in the kubernetes cluster as a pre-requisite. Refer here for installation example of CRD's and default snapshot controller

For more information, refer to the documentation

Install CSI Driver for Unity XT

  1. Clone the git repository that has the helm charts and install scripts
  2. Create a namespace called unity
  3. Collect information from the Unity XT Systems like Unique ArrayId, IP address, username, and password. Using the information, prepare secrets.yaml. Create the secrets. Samples available here

NOTE: For certificate validation of Unisphere REST API calls refer here. Otherwise, create an empty secret. Samples available here

  1. Copy the helm/csi-unity/values.yaml into a file named myvalues.yaml in the same directory of csi-install.sh, to customize settings for installation

  2. Edit myvalues.yaml to set the following parameters for your installation:

    The following table lists the primary configurable parameters of the Unity XT driver chart and their default values. More detailed information can be found in the values.yaml file in this repository.

    Parameter Description Required Default
    version helm version true -
    logLevel LogLevel is used to set the logging level of the driver true info
    allowRWOMultiPodAccess Flag to enable multiple pods to use the same PVC on the same node with RWO access mode. false false
    kubeletConfigDir Specify kubelet config dir path Yes /var/lib/kubelet
    syncNodeInfoInterval Time interval to add node info to the array. Default 15 minutes. The minimum value should be 1 minute. false 15
    maxUnityVolumesPerNode Maximum number of volumes that controller can publish to the node. false 0
    certSecretCount Represents the number of certificate secrets, which the user is going to create for SSL authentication. (unity-cert-0..unity-cert-n). The minimum value should be 1. false 1
    imagePullPolicy The default pull policy is IfNotPresent which causes the Kubelet to skip pulling an image if it already exists. Yes IfNotPresent
    podmon.enabled service to monitor failing jobs and notify false -
    podmon.image pod man image name false -
    tenantName Tenant name added while adding host entry to the array No
    fsGroupPolicy Defines which FS Group policy mode to be used, Supported modes None, File and ReadWriteOnceWithFSType No "ReadWriteOnceWithFSType"
    controller Allows configuration of the controller-specific parameters. - -
    controllerCount Defines the number of csi-unity controller pods to deploy to the Kubernetes release Yes 2
    volumeNamePrefix Defines a string prefix for the names of PersistentVolumes created Yes "k8s"
    snapshot.enabled Enable/Disable volume snapshot feature Yes true
    snapshot.snapNamePrefix Defines a string prefix for the names of the Snapshots created Yes "snapshot"
    resizer.enabled Enable/Disable volume expansion feature Yes true
    nodeSelector Define node selection constraints for pods of controller deployment No
    tolerations Define tolerations for the controller deployment, if required No
    healthMonitor.enabled Enable/Disable deployment of external health monitor sidecar for controller side volume health monitoring. No false
    healthMonitor.interval Interval of monitoring volume health condition. Allowed values: Number followed by unit (s,m,h) No 60s
    node Allows configuration of the node-specific parameters. - -
    dnsPolicy Define the DNS Policy of the Node service Yes ClusterFirstWithHostNet
    healthMonitor.enabled Enable/Disable health monitor of CSI volumes- volume usage, volume condition No false
    nodeSelector Define node selection constraints for pods of node deployment No
    tolerations Define tolerations for the node deployment, if required No

    Note:

    • User should provide all boolean values with double-quotes. This applies only for myvalues.yaml. Example: "true"/"false"
    • controllerCount parameter value should be <= number of nodes in the kubernetes cluster else install script fails
  3. Run the ./csi-install.sh --namespace unity --values ./myvalues.yaml command to proceed with the installation using bash script or you can also install the driver using standalone helm chart by running helm install command helm install --dry-run --values <myvalues.yaml-location> --namespace <namespace> <name-of-secret> <helmPath>
    <namespace> - namespace of the driver installation
    <name of secret> - unity in case of unity-creds and unity-certs-0 secrets
    <helmPath> - Path of the helm directory

  4. Create storage classes from samples

    Note:

    • At least one storage class is required for one array
    • In case you want to make updates to an existing storage class, ensure to delete it using the kubectl delete storageclass <storageclass-name> command. Deleting a storage class has no impact on a running Pod with mounted PVCs. You cannot provision new PVCs until at least one storage class is newly created

For full-length documentation, please visit Container Storage Modules documentation page.

Support

The CSI Driver for Dell Unity XT 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.