From 14d42e40b4baa47e1da48ce5b5a8d88985bd5bb5 Mon Sep 17 00:00:00 2001 From: kumarrprashant2005 <52748782+kumarrprashant2005@users.noreply.github.com> Date: Fri, 19 Mar 2021 16:23:32 +0530 Subject: [PATCH] Changes for Release 1.3.0 (#7) --- README.md | 1040 +---------------- ....storage.k8s.io_volumesnapshotclasses.yaml | 85 -- ...storage.k8s.io_volumesnapshotcontents.yaml | 233 ---- ...apshot.storage.k8s.io_volumesnapshots.yaml | 188 --- deploy/operator.yaml | 18 +- driverconfig/config.yaml | 107 +- ...unity_v3_v117.json => isilon_v5_v118.json} | 761 ++++++------ ...unity_v2_v117.json => isilon_v5_v119.json} | 239 ++-- driverconfig/isilon_v5_v120.json | 357 ++++++ driverconfig/powermax_v5_v118.json | 516 ++++++++ driverconfig/powermax_v5_v119.json | 516 ++++++++ driverconfig/powermax_v5_v120.json | 516 ++++++++ driverconfig/powerstore_v3_v118.json | 423 +++++++ driverconfig/powerstore_v3_v119.json | 423 +++++++ driverconfig/powerstore_v3_v120.json | 423 +++++++ driverconfig/unity_v4_v118.json | 413 +++++++ driverconfig/unity_v4_v119.json | 413 +++++++ driverconfig/unity_v4_v120.json | 413 +++++++ driverconfig/vxflexos_v4_v118.json | 515 ++++++++ driverconfig/vxflexos_v4_v119.json | 515 ++++++++ driverconfig/vxflexos_v4_v120.json | 515 ++++++++ samples/isilon_v150_k8s_118.yaml | 74 ++ samples/isilon_v150_k8s_119.yaml | 74 ++ samples/isilon_v150_k8s_120.yaml | 74 ++ ...40_ops_44.yaml => isilon_v150_ops_46.yaml} | 145 +-- samples/isilon_v150_ops_47.yaml | 74 ++ samples/powermax_reverseproxy.yaml | 4 +- samples/powermax_v160_k8s_118.yaml | 107 ++ samples/powermax_v160_k8s_119.yaml | 107 ++ samples/powermax_v160_k8s_120.yaml | 107 ++ samples/powermax_v160_ops_45.yaml | 107 ++ samples/powermax_v160_ops_46.yaml | 107 ++ samples/powermax_v160_ops_47.yaml | 107 ++ samples/powerstore_v110_k8s_117.yaml | 41 - samples/powerstore_v110_k8s_118.yaml | 41 - samples/powerstore_v110_k8s_119.yaml | 41 - samples/powerstore_v110_ops_44.yaml | 41 - ...s_44.yaml => powerstore_v130_k8s_118.yaml} | 111 +- samples/powerstore_v130_k8s_119.yaml | 53 + samples/powerstore_v130_k8s_120.yaml | 53 + samples/powerstore_v130_ops_46.yaml | 53 + samples/powerstore_v130_ops_47.yaml | 53 + samples/unity_v130_k8s_117.yaml | 49 - ...40_ops_45.yaml => unity_v150_k8s_118.yaml} | 6 +- ...40_ops_44.yaml => unity_v150_k8s_119.yaml} | 6 +- ...0_k8s_117.yaml => unity_v150_k8s_120.yaml} | 6 +- ...130_ops_44.yaml => unity_v150_ops_46.yaml} | 21 +- samples/unity_v150_ops_47.yaml | 64 + samples/vxflex_140_k8s_118.yaml | 65 ++ samples/vxflex_140_k8s_119.yaml | 65 ++ samples/vxflex_140_k8s_120.yaml | 65 ++ samples/vxflex_140_ops_46.yaml | 66 ++ samples/vxflex_140_ops_47.yaml | 66 ++ scripts/csi-offline-bundle.sh | 1 - scripts/install.sh | 52 +- scripts/verify.sh | 69 +- 56 files changed, 8251 insertions(+), 2553 deletions(-) delete mode 100644 deploy/beta-snapshot-crds/snapshot.storage.k8s.io_volumesnapshotclasses.yaml delete mode 100644 deploy/beta-snapshot-crds/snapshot.storage.k8s.io_volumesnapshotcontents.yaml delete mode 100644 deploy/beta-snapshot-crds/snapshot.storage.k8s.io_volumesnapshots.yaml rename driverconfig/{unity_v3_v117.json => isilon_v5_v118.json} (68%) rename driverconfig/{unity_v2_v117.json => isilon_v5_v119.json} (66%) create mode 100644 driverconfig/isilon_v5_v120.json create mode 100644 driverconfig/powermax_v5_v118.json create mode 100644 driverconfig/powermax_v5_v119.json create mode 100644 driverconfig/powermax_v5_v120.json create mode 100644 driverconfig/powerstore_v3_v118.json create mode 100644 driverconfig/powerstore_v3_v119.json create mode 100644 driverconfig/powerstore_v3_v120.json create mode 100644 driverconfig/unity_v4_v118.json create mode 100644 driverconfig/unity_v4_v119.json create mode 100644 driverconfig/unity_v4_v120.json create mode 100644 driverconfig/vxflexos_v4_v118.json create mode 100644 driverconfig/vxflexos_v4_v119.json create mode 100644 driverconfig/vxflexos_v4_v120.json create mode 100644 samples/isilon_v150_k8s_118.yaml create mode 100644 samples/isilon_v150_k8s_119.yaml create mode 100644 samples/isilon_v150_k8s_120.yaml rename samples/{isilon_v140_ops_44.yaml => isilon_v150_ops_46.yaml} (83%) create mode 100644 samples/isilon_v150_ops_47.yaml create mode 100644 samples/powermax_v160_k8s_118.yaml create mode 100644 samples/powermax_v160_k8s_119.yaml create mode 100644 samples/powermax_v160_k8s_120.yaml create mode 100644 samples/powermax_v160_ops_45.yaml create mode 100644 samples/powermax_v160_ops_46.yaml create mode 100644 samples/powermax_v160_ops_47.yaml delete mode 100644 samples/powerstore_v110_k8s_117.yaml delete mode 100644 samples/powerstore_v110_k8s_118.yaml delete mode 100644 samples/powerstore_v110_k8s_119.yaml delete mode 100644 samples/powerstore_v110_ops_44.yaml rename samples/{powerstore_v120_ops_44.yaml => powerstore_v130_k8s_118.yaml} (61%) create mode 100644 samples/powerstore_v130_k8s_119.yaml create mode 100644 samples/powerstore_v130_k8s_120.yaml create mode 100644 samples/powerstore_v130_ops_46.yaml create mode 100644 samples/powerstore_v130_ops_47.yaml delete mode 100644 samples/unity_v130_k8s_117.yaml rename samples/{unity_v140_ops_45.yaml => unity_v150_k8s_118.yaml} (92%) rename samples/{unity_v140_ops_44.yaml => unity_v150_k8s_119.yaml} (92%) rename samples/{unity_v140_k8s_117.yaml => unity_v150_k8s_120.yaml} (92%) rename samples/{unity_v130_ops_44.yaml => unity_v150_ops_46.yaml} (67%) create mode 100644 samples/unity_v150_ops_47.yaml create mode 100644 samples/vxflex_140_k8s_118.yaml create mode 100644 samples/vxflex_140_k8s_119.yaml create mode 100644 samples/vxflex_140_k8s_120.yaml create mode 100644 samples/vxflex_140_ops_46.yaml create mode 100644 samples/vxflex_140_ops_47.yaml diff --git a/README.md b/README.md index adea006..7ac6dcd 100644 --- a/README.md +++ b/README.md @@ -2,86 +2,10 @@ - [Support](#support) - [Supported Platforms](#supported-platforms) - [Installation](#installation) - - [Before you begin](#before-you-begin) - - [Overview](#overview) - - [Using Install script](#using-install-script) - - [Using Operator Lifecycle Manager](#using-operator-lifecycle-manager) - - [Pre-Requisite](#pre-requisite) - - [Red Hat OpenShift Clusters](#red-hat-openshift-clusters) - - [Upstream Kubernetes](#upstream-kubernetes) - - [Offline Installation](#offline-installation) - [Upgrading Dell CSI Operator](#upgrading-dell-csi-operator) - - [Using Installation Script](#using-installation-script) - - [Using OLM](#using-olm) - - [Custom Resource Definitions](#custom-resource-definitions) - - [Installation of CSI Drivers](#installation-of-csi-drivers) - - [Full list of CSI Drivers and versions supported by the Dell CSI Operator](#full-list-of-csi-drivers-and-versions-supported-by-the-dell-csi-operator) - - [Pre-Requisites for installation of the CSI Drivers](#pre-requisites-for-installation-of-the-csi-drivers) - - [Pre-requisites for upstream Kubernetes Clusters](#pre-requisites-for-upstream-kubernetes-clusters) - - [Pre-requisites for Red Hat OpenShift Clusters](#pre-requisites-for-red-hat-openshift-clusters) - - [iSCSI](#iscsi) - - [MultiPath](#multipath) - - [Install CSI Drivers](#install-csi-drivers) - - [Verifying the installation](#verifying-the-installation) - - [Changes in installation for latest CSI drivers](#changes-in-installation-for-latest-csi-drivers) - - [Update CSI Drivers](#update-csi-drivers) - - [Supported modifications](#supported-modifications) - - [Unsupported modifications](#unsupported-modifications) + - [Install CSI Drivers](#install-csi-drivers) - [Uninstall CSI Drivers](#uninstall-csi-drivers) - - [Limitations](#limitations) - - [Custom Resource Specification](#custom-resource-specification) - - [Mandatory fields](#mandatory-fields) - - [Optional fields](#optional-fields) - - [SideCars](#sidecars) - - [Snapshotter sidecar](#snapshotter-sidecar) - - [Modify the driver specification](#modify-the-driver-specification) - - [Troubleshooting](#troubleshooting) -- [Driver details](#driver-details) - - [CSI PowerScale](#csi-powerscale) - - [Pre-requisites](#pre-requisites) - - [Create secret to store PowerScale credentials](#create-secret-to-store-powerscale-credentials) - - [Optional - Create secret for client side TLS verification](#optional---create-secret-for-client-side-tls-verification) - - [Set the following *Mandatory* Environment variables](#set-the-following-mandatory-environment-variables) - - [Modify/Set the following *optional* environment variables](#modifyset-the-following-optional-environment-variables) - - [StorageClass attributes](#storageclass-attributes) - - [StorageClass parameters](#storageclass-parameters) - - [SnapshotClass parameters](#snapshotclass-parameters) - - [CSI Unity](#csi-unity) - - [Pre-requisites](#pre-requisites-1) - - [Create secret to store Unity credentials](#create-secret-to-store-unity-credentials) - - [Optional - Create secret for client side TLS verification](#optional---create-secret-for-client-side-tls-verification-1) - - [Modify/Set the following *optional* environment variables](#modifyset-the-following-optional-environment-variables-1) - - [StorageClass Parameters](#storageclass-parameters-1) - - [SnapshotClass parameters](#snapshotclass-parameters-1) - - [CSI PowerFlex](#csi-powerflex) - - [Pre-requisites](#pre-requisites-2) - - [Create secret to store PowerFlex credentials](#create-secret-to-store-powerflex-credentials) - - [Install PowerFlex Storage Data Client](#install-powerflex-storage-data-client) - - [Set the following *Mandatory* Environment variables](#set-the-following-mandatory-environment-variables-1) - - [Modify/Set the following **optional environment variables**](#modifyset-the-following-optional-environment-variables-2) - - [StorageClass parameters](#storageclass-parameters-2) - - [CSI PowerMax](#csi-powermax) - - [Pre-requisites](#pre-requisites-3) - - [Create secret to store Unisphere for PowerMax credentials](#create-secret-to-store-unisphere-for-powermax-credentials) - - [Optional - Create secret for client side TLS verification](#optional---create-secret-for-client-side-tls-verification-2) - - [Node requirements](#node-requirements) - - [Set the following *Mandatory* Environment variables](#set-the-following-mandatory-environment-variables-2) - - [Modify/Set the following *Optional* environment variables](#modifyset-the-following-optional-environment-variables-3) - - [StorageClass parameters](#storageclass-parameters-3) - - [SnapshotClass parameters](#snapshotclass-parameters-2) - - [CSI PowerStore](#csi-powerstore) - - [Pre-requisites](#pre-requisites-4) - - [Create secret to store PowerStore API credentials](#create-secret-to-store-powerstore-api-credentials) - - [Set the following *Mandatory* Environment variables](#set-the-following-mandatory-environment-variables-3) - - [Modify/Set the following *optional* environment variables](#modifyset-the-following-optional-environment-variables-4) - - [StorageClass Parameters](#storageclass-parameters-4) - - [SnapshotClass parameters](#snapshotclass-parameters-3) - - [CSI PowerMax ReverseProxy](#csi-powermax-reverseproxy) - - [Pre-requisites](#pre-requisites-5) - - [Set the following parameters in the CSI PowerMaxReverseProxy Spec](#set-the-following-parameters-in-the-csi-powermaxreverseproxy-spec) - - [Installation](#installation-1) - - [Replacing CSI Operator with Dell CSI Operator](#replacing-csi-operator-with-dell-csi-operator) - - [Upgrade Operator from version older than v1.1.0 to v1.2.0](#upgrade-operator-from-version-older-than-v110-to-v120) + # Dell CSI Operator Dell CSI Operator is a Kubernetes native application which helps in installing and managing CSI Drivers provided by Dell EMC for its various storage platforms. Dell CSI Operator uses Kubernetes CRDs (Custom Resource Definitions) to define a manifest that describes the deployment specifications for each driver to be deployed. Multiple CSI drivers provided by Dell EMC and multiple instances of each driver can be deployed by the operator by defining a manifest for each deployment. @@ -108,963 +32,17 @@ For any CSI operator and driver issues, questions or feedback, join the [Dell EM ## Supported Platforms Dell CSI Operator has been tested and qualified with - * Upstream Kubernetes cluster v1.17, v1.18, v1.19 - * OpenShift Clusters 4.4, 4.5, 4.6 with RHEL 7.x & RHCOS worker nodes + * Upstream Kubernetes cluster v1.18, v1.19, v1.20 + * OpenShift Clusters 4.6, 4.7 with RHEL 7.x & RHCOS worker nodes ## Installation -Dell CSI Operator can be installed via: - -* Installation script -* Red Hat Certified Operators -* Upstream Community Operators (Operatorhub.io) - ->Note: Until release v1.1.0, Dell CSI Operator was also available for installation in Red Hat OpenShift Clusters as a community operator - -### Before you begin -If you have installed an old version of the `dell-csi-operator` which was available with the name _CSI Operator_, please refer this [section](#replacing-csi-operator-with-dell-csi-operator) before continuing. - -### Overview -The major steps in installation process are: - -1. Installing the Operator from OperatorHub or manually using the installation scripts provided in this repository. -2. Ensure pre-requisites for the drivers are met. For e.g. - creation of namespace, secrets, installation of packages. -3. Configuring the driver manifest and then install the driver using the manifest. - -### Using Install script -`dell-csi-operator` can be installed via the install script - `install.sh` which is present in the `scripts` directory. The installation script creates a `ConfigMap` along with the Operator `Deployment` in the default namespace. - -Please follow the steps given below, to install the `dell-csi-operator` -``` -# Clone this repository -$ git clone github.com/dell/dell-csi-operator -$ cd dell-csi-operator -# Make sure you are at the root of the cloned dell-csi-operator repository -$ bash scripts/install.sh -``` - ->Note - The install script `install.sh` checks if you have any alpha VolumeSnapshot CRDs or corresponding CRs present in your cluster and fails if it finds any. Make sure to completely remove all alpha VolumeSnapshot CRs and CRDs before proceeding with the installation. - -### Using Operator Lifecycle Manager -`dell-csi-operator` can be installed using Operator Lifecycle Manager (OLM) on upstream Kubernetes clusters & Red Hat OpenShift Clusters. -The installation process involves creation of a `Subscription` object either via the _OperatorHub_ UI or using `kubectl/oc`. While creating the `Subscription` you can set the Approval strategy for the `InstallPlan` for the Operator to - -* _Automatic_ - If you want the Operator to be automatically installed or upgraded (once an upgrade becomes available) -* _Manual_ - If you want a Cluster Administrator to manually review and approve the `InstallPlan` for installation/upgrades - -#### Pre-Requisite -Please run the following commands for creating the required `ConfigMap` before installing the `dell-csi-operator` using OLM. -``` -$ git clone github.com/dell/dell-csi-operator -$ cd dell-csi-operator -$ tar -czf config.tar.gz driverconfig/ -# Replace operator-namespace in the below command with the actual namespace where the operator will be deployed by OLM -$ kubectl create configmap dell-csi-operator-config --from-file config.tar.gz -n -``` - -#### Red Hat OpenShift Clusters -Dell CSI Operator is available as a certified Operator in the Red Hat Certified Operator Registry. Please use the embedded OperatorHub UI in the Red Hat OpenShift clusters for installing the Operator. - -For installing the certified Operator, create a subscription for the package `dell-csi-operator-certified`. - ->Note: An older version of the Operator(v1.1.0) is also available for installation in Red Hat OpenShift Clusters via the Community Operators Registry. Please make sure that you are installing the latest certified Operator. - -#### Upstream Kubernetes -Dell CSI Operator is available for installation(using OLM) in upstream Kubernetes Clusters via `OperatorHub.io`. -For installing the Operator in upstream Kubernetes clusters, create a subscription for the package `dell-csi-operator`. - ->Note: OLM is not available as a default component in upstream Kubernetes installation. Please follow the [instructions](https://github.com/operator-framework/operator-lifecycle-manager/blob/master/doc/install/install.md) on how to add OLM to your upstream Kubernetes cluster. - -### Offline Installation -If you wish to perform an offline installation of the Dell CSI Operators & the CSI drivers on sites with restricted networks, -please follow the detailed instructions documented [here](scripts/csi-offline-bundle.md) +To install Dell CSI Operator please refer the steps given here at [https://dell.github.io/storage-plugin-docs/docs/installation/operator/](https://dell.github.io/storage-plugin-docs/docs/installation/operator/) ## Upgrading Dell CSI Operator -If you are upgrading the Dell CSI Operator from v1.1.0 to v1.2.0, then follow the instructions below. If you are trying to upgrade the Operator from an older version, please refer the instructions [here](#upgrade-operator-from-version-older-than-v110-to-v120) - -### Using Installation Script -Run the following command to upgrade the operator from v1.1.0 release -``` -$ bash scripts/install.sh --upgrade -``` - -### Using OLM -The upgrade of the Dell CSI Operator is done via Operator Lifecycle Manager. -If the `InstallPlan` for the Operator subscription is set to `Automatic`, the operator will be automatically upgraded to the new version. If the `InstallPlan` is set to `Manual`, then a Cluster Administrator would need to approve the upgrade. - -## Custom Resource Definitions -As part of the Dell CSI Operator installation, a CRD representing each driver installation is also installed. -List of CRDs which are installed in API Group `storage.dell.com` -* csipowermax -* csiunity -* csivxflexos -* csiisilon -* csipowerstore -* csipowermaxrevproxy - -For installation of the supported drivers, a `CustomResource` has to be created in your cluster. - -## Installation of CSI Drivers - -### Full list of CSI Drivers and versions supported by the Dell CSI Operator -| CSI Driver | Version | ConfigVersion | Kubernetes Version | OpenShift Version | -| ------------------ | ------ | --------------| ------------------------ | ----------------- | -| CSI PowerMax | 1.4 | v3 | 1.17, 1.18, 1.19 | 4.3, 4.4 | -| CSI PowerMax | 1.5 | v4 | 1.17, 1.18, 1.19 | 4.4, 4.5, 4.6 | -| CSI PowerFlex | 1.2 | v2 | 1.17, 1.18, 1.19 | 4.3, 4.4 | -| CSI PowerFlex | 1.3 | v3 | 1.17, 1.18, 1.19 | 4.4, 4.5, 4.6 | -| CSI PowerScale | 1.3 | v3 | 1.17, 1.18, 1.19 | 4.3, 4.4 | -| CSI PowerScale | 1.4 | v4 | 1.17, 1.18, 1.19 | 4.4, 4.5, 4.6 | -| CSI Unity | 1.3 | v2 | 1.17, 1.18, 1.19 | 4.3, 4.4 | -| CSI Unity | 1.4 | v3 | 1.17, 1.18, 1.19 | 4.4, 4.5, 4.6 | -| CSI PowerStore | 1.1 | v1 | 1.17, 1.18, 1.19 | 4.3, 4.4 | -| CSI PowerStore | 1.2 | v2 | 1.17, 1.18, 1.19 | 4.5, 4.6 | - - -For installing any CSI Driver, follow these steps in general -(Steps specific to each driver have been documented in each of the driver sections) - -### Pre-Requisites for installation of the CSI Drivers -These typically include (but not limited to) - -* Create a namespace for the driver installation -* Create a secret containing credentials for the storage array’s management interface -* Install any packages on nodes (if required) - -Please follow the driver specific [instructions](#driver-details) to fulfill these requirements. - -### Pre-requisites for upstream Kubernetes Clusters -On upstream Kubernetes clusters, make sure to install -* Beta VolumeSnapshot CRDs (can be installed using the Operator installation script) -* External Volume Snapshot Controller - -### Pre-requisites for Red Hat OpenShift Clusters -#### iSCSI -If you are installing a CSI driver which is going to use iSCSI as the transport protocol, please follow the following instructions. -In Red Hat OpenShift clusters, you can create a `MachineConfig` object using the console or `oc` to ensure that the iSCSI daemon starts on all the Red Hat CoreOS nodes. Here is an example of a `MachineConfig` object: - -``` -apiVersion: machineconfiguration.openshift.io/v1 -kind: MachineConfig -metadata: - name: 99-iscsid - labels: - machineconfiguration.openshift.io/role: worker -spec: - config: - ignition: - version: 2.2.0 - systemd: - units: - - name: "iscsid.service" - enabled: true -``` -Once the `MachineConfig` object has been deployed, CoreOS will ensure that `iscsid.service` starts automatically. - -Alternatively, you can check the status of iSCSI service by entering the following command on each worker node in the cluster: - -`sudo systemctl status iscsid` - -The service should be up and running (i.e. should be in active state). - -If the `iscsid.service` is not running, then perform the following steps on each worker node in the cluster -1. `Login` to worker node. -2. Check the value of InitiatorName in the file /etc/iscsi/initiatorname.iscsi. -3. If iqn is valid, then restart iscsid service (if it is not running) with `sudo systemctl restart iscsid`. -4. If the InitiatorName name is valid, then attempt to restart the iSCSI service by running the command `sudo systemctl restart iscsid`. -5. If the InitiatorName name is missing from the file or if the file is empty, create an InitiatorName(IQN) in the correct format and add it to the file. The file contents should be `InitiatorName=` -6. Once you have updated the file, restart iscsi service by running the command `sudo systemctl restart iscsid` -7. Run the command - `sudo systemtcl status iscsid` to ensure ISCSI service is active and running. -8. `Logout` from worker node. - Note: If your worker nodes are running on Red Hat CoreOS , you can refer the URL https://coreos.com/os/docs/latest/iscsi.html#enable-automatic-iscsi-login-at-boot for additional information. - -#### MultiPath -If you are installing a CSI Driver which requires the installation of the Linux native Multipath software - _multipathd_, please follow the below instructions - -To enable multipathd on RedHat CoreOS nodes you need to prepare a working configuration encoded in base64. - -`echo 'defaults { -user_friendly_names yes -find_multipaths yes -} -blacklist { -}' | base64 -w0` - -Use the base64 encoded string output in the following `MachineConfig` yaml file (under source section) -``` -apiVersion: machineconfiguration.openshift.io/v1 -kind: MachineConfig -metadata: - name: workers-multipath-conf-default - labels: - machineconfiguration.openshift.io/role: worker -spec: - config: - ignition: - version: 2.2.0 - storage: - files: - - contents: - source: data:text/plain;charset=utf-8;base64,ZGVmYXVsdHMgewp1c2VyX2ZyaWVuZGx5X25hbWVzIHllcwpmaW5kX211bHRpcGF0aHMgeWVzCn0KCmJsYWNrbGlzdCB7Cn0K - verification: {} - filesystem: root - mode: 400 - path: /etc/multipath.conf -``` -After deploying this`MachineConfig` object, CoreOS will start multipath service automatically. -Alternatively you can check the status of multipath service by entering the following command in each worker nodes. -`sudo multipath -ll` - -If the above command is not successful, ensure that the /etc/multipath.conf file is present and configured properly. Once the file has been configured correctly, enable the multipath service by running the following command: -`sudo /sbin/mpathconf –-enable --with_multipathd y` - -Finally , you have to restart the service by providing the command -`sudo systemctl restart multipathd` - -For additional information refer official documentation of multipath configuration. - -### Install CSI Drivers -CSI Drivers can be installed by creating a `CustomResource` object in your cluster. +To upgrade the driver to the latest version (across supported Kubernetes/OpenShift versions), please refer [https://dell.github.io/storage-plugin-docs/docs/upgradation/drivers/operator/](https://dell.github.io/storage-plugin-docs/docs/upgradation/drivers/operator/) -Sample manifest files for each driver `CustomResourceDefintion` have been provided in the `samples` folder to help with the installation of the drivers. -These files follow the naming convention - - {driver name}_{driver version}_k8s_{k8 version}.yaml -Or - - {driver name}_{driver version}_ops_{OpenShift version}.yaml -For e.g. -* sample/powermax_v140_k8s_117.yaml* <- To install CSI PowerMax driver v1.4.0 on a Kubernetes 1.17 cluster -* sample/powermax_v140_ops_46.yaml* <- To install CSI PowerMax driver v1.4.0 on an OpenShift 4.6 cluster - -Copy the correct sample file and edit the mandatory & any optional parameters specific to your driver installation by following the instructions [here](#Modify-the-driver-specification) ->NOTE: A detailed explanation of the various mandatory and optional fields in the CustomResource is available [here](#custom-resource-specification). Please make sure to read through and understand the various fields. - -Run the following command to install the CSI driver. -``` -kubectl create -f -``` - -**Note**: If you are using an OLM based installation, the example manifests are available in the `OperatorHub` UI. -You can edit these manifests and install the driver using the `OperatorHub` UI. - -### Verifying the installation -Once the driver Custom Resource has been created, you can verify the installation - -* Check if Driver CR got created successfully - - For e.g. – If you installed the PowerMax driver - ``` - $ kubectl get csipowermax -n - ``` -* Check the status of the Custom Resource to verify if the driver installation was successful - -If the driver-namespace was set to _test-powermax_, and the name of the driver is _powermax_, then run the command `kubectl get csipowermax/powermax -n test-powermax -o yaml` to get the details of the Custom Resource. -Here is a sample output of the above command -``` -apiVersion: storage.dell.com/v1 -kind: CSIPowerMax -metadata: - creationTimestamp: "2020-06-04T09:56:02Z" - generation: 2 - name: powermax - namespace: test-powermax - resourceVersion: "10225198" - selfLink: /apis/storage.dell.com/v1/namespaces/test-powermax/csipowermaxes/powermax - uid: d31c2fba-77ec-11ea-abc1-005056a3aee3 -spec: - driver: - common: - envs: - - name: X_CSI_POWERMAX_ENDPOINT - value: https://0.0.0.0:8443/ - - name: X_CSI_K8S_CLUSTER_PREFIX - value: XYZ - image: dellemc/csi-powermax:v1.4.0.000R - imagePullPolicy: IfNotPresent - configVersion: v3 - controller: {} - node: {} - replicas: 1 - sideCars: - - image: quay.io/k8scsi/csi-snapshotter:v2.1.1 - imagePullPolicy: IfNotPresent - name: snapshotter - - image: quay.io/k8scsi/csi-provisioner:v1.6.0 - imagePullPolicy: IfNotPresent - name: provisioner - - image: quay.io/k8scsi/csi-attacher:v2.2.0 - imagePullPolicy: IfNotPresent - name: attacher - - image: quay.io/k8scsi/csi-node-driver-registrar:v1.2.0 - imagePullPolicy: IfNotPresent - name: registrar - - image: quay.io/k8scsi/csi-resizer:v0.5.0 - imagePullPolicy: IfNotPresent - name: resizer - snapshotClass: - - name: powermax-snapclass - storageClass: - - default: true - name: bronze - parameters: - SRP: SRP_1 - SYMID: "000000000001" - ServiceLevel: Bronze - reclaimPolicy: Delete -status: - controllerStatus: - available: - - powermax-controller-0 - driverHash: 3166303568 - lastUpdate: - condition: Running - time: "2020-09-05T01:53:01Z" - nodeStatus: - available: - - powermax-node-kphlf - - powermax-node-x4f74 - - powermax-node-zz2h5 - - powermax-node-xlt46 - state: Running -``` - -Note: If the _state_ of the `CustomResource` is _Running_ then all the driver pods have been successfully installed. If the _state_ is _SuccessFul_, then it means the driver deployment was successful but some driver pods may not be in a _Running_ state. -Please refer to the _Troubleshooting_ section [here](#Troubleshooting) if you encounter any issues during installation. - -### Changes in installation for latest CSI drivers -If you are installing the latest versions of the CSI drivers, the driver controller will be installed as a Kubernetes `Deployment` instead of a `Statefulset`. These installations can also run multiple replicas for the driver controller pods(not supported for StatefulSets) to support High Availability for the Controller. - -## Update CSI Drivers -The CSI Drivers installed by the Dell CSI Operator can be updated like any Kubernetes resource. This can be achieved in various ways which include – - -* Modifying the installation directly via `kubectl edit` - For e.g. - If the name of the installed unity driver is unity, then run - ``` - # Replace driver-namespace with the namespace where the Unity driver is installed - $ kubectl edit csiunity/unity -n - ``` - and modify the installation -* Modify the API object in-place via `kubectl patch` - -**NOTE**: If you are trying to upgrade the CSI driver from an older version, make sure to modify the _configVersion_ field if required. - -**NOTE**: Do not try to update the operator by modifying the original `CustomResource` manifest file and running the `kubectl apply -f` command. As part of the driver installation, the Operator sets some annotations on the `CustomResource` object which are further utilized in some workflows (like detecting upgrade of drivers). If you run the `kubectl apply -f` command to update the driver, these annotations are overwritten and this may lead to failures. - -### Supported modifications -* Changing environment variable values for driver -* Adding (supported) environment variables -* Updating the image of the driver - -### Unsupported modifications -Kubernetes doesn’t allow to update a storage class once it has been created. Any attempt to update a storage class will result in a failure. - ->Note – Any attempt to rename a storage class or snapshot class will result in the deletion of older class and creation of a new class. +## Install CSI Drivers +To install CSI drivers using operator please refer here at [https://dell.github.io/storage-plugin-docs/docs/installation/operator/#install-csi-driver](https://dell.github.io/storage-plugin-docs/docs/installation/operator/#install-csi-driver) ## Uninstall CSI Drivers -For uninstalling any CSI drivers deployed the Dell CSI Operator, just delete the respective Custom Resources. -This can be done using OperatorHub GUI by deleting the CR or via kubectl. - -For e.g. – To uninstall a PowerFlex driver installed via the operator, delete the Custom Resource(CR) -``` -# Replace driver-name and driver-namespace with their respective values -$ kubectl delete vxflexos/ -n -``` - -## Limitations -* The Dell CSI Operator can't manage any existing driver installed using Helm charts. If you already have installed one of the DellEMC CSI driver in your cluster and want to use the operator based deployment, uninstall the driver and then redeploy the driver following the installation procedure described above -* The Dell CSI Operator can't update storage classes as it is prohibited by Kubernetes. Any attempt to do so will cause an error and the driver Custom Resource will be left in a `Failed` state. Refer the Troubleshooting section to fix the driver CR. -* The Dell CSI Operator is not fully compliant with the OperatorHub React UI elements and some of the Custom Resource fields may show up as invalid or unsupported in the OperatorHub GUI. To get around this problem, use kubectl/oc commands to get details about the Custom Resource(CR). This issue will be fixed in the upcoming releases of the Dell CSI Operator - - -## Custom Resource Specification -Each CSI Driver installation is represented by a Custom Resource. - -The specification for the Custom Resource is the same for all the drivers. -Below is a list of all the mandatory and optional fields in the Custom Resource specification - -### Mandatory fields -**configVersion** - Configuration version - Refer full list of supported driver for finding out the appropriate config version -**replicas** - Number of replicas for controller plugin - Must be set to 1 for all drivers -**common** -This field is mandatory and is used to specify common properties for both controller and the node plugin -* image - driver container image -* imagePullPolicy - Image Pull Policy of the driver image -* envs - List of environment variables and their values -### Optional fields -**controller** - List of environment variables and values which are applicable only for controller -**node** - List of environment variables and values which are applicable only for node -**sideCars** - Specification for CSI sidecar containers. -**authSecret** - Name of the secret holding credentials for use by the driver. If not specified, the default secret *-creds must exist in the same namespace as driver -**tlsCertSecret** - Name of the TLS cert secret for use by the driver. If not specified, a secret *-certs must exist in the namespace as driver - -**storageclass** -List of Storage Class fields - - 1. name - name of the Storage Class - 2. default - Used to specify if the storage class will be marked as default (only set one storage class as default in a cluster) - 3. reclaimPolicy - Sets the PersistentVolumeReclaim Policy for the PVCs. Defaults to Delete if not specified - 4. parameters - driver specific parameters. Refer individual driver section for more details - 5. allowVolumeExpansion - Set to true for allowing volume expansion for PVC - 6. volumeBindingMode - Sets the VolumeBindingMode in the Storage Class. If left blank, it will be set to the default value for the driver version you are installing - 7. allowedTopologies - Sets the topology keys and values which allows the pods/and volumes to be scheduled on nodes that have access to the storage. - -**snapshotclass** -List of Snapshot Class specifications - - 1. name - name of the snapshot class - 2. parameters - driver specific parameters. Refer individual driver section for more details - -**forceUpdate** -Boolean value which can be set to `true` in order to force update the status of the CSI Driver - -**tolerations** -List of tolerations which should be applied to the driver StatefulSet/Deployment and DaemonSet -It should be set separately in the controller and node sections if you want separate set of tolerations for them - -**nodeSelector** -Used to specify node selectors for the driver StatefulSet/Deployment and DaemonSet - -Here is a sample specification annotated with comments to explain each field -``` -apiVersion: storage.dell.com/v1 -kind: CSIPowerMax <- Type of the driver -metadata: - name: test-powermax <- Name of the driver - namespace: test-powermax <- Namespace where driver is installed -spec: - driver: - # Used to specify configuration version - configVersion: v3 <- Refer the table containing the full list of supported drivers to find the appropriate config version - replicas: 1 - forceUpdate: false <- Set to true in case you want to force an update of driver status - common: <- All common specification - image: "dellemc/csi-powermax:v1.4.0.000R" <- driver image for a particular release - imagePullPolicy: IfNotPresent - envs: - - name: X_CSI_POWERMAX_ENDPOINT - value: "https://0.0.0.0:8443/" - - name: X_CSI_K8S_CLUSTER_PREFIX - value: "XYZ" - storageClass: - - name: bronze - default: true - reclaimPolicy: Delete - parameters: - SYMID: "000000000001" - SRP: DEFAULT_SRP - ServiceLevel: Bronze -``` -You can set the field ***replicas*** to a higher number than `1` for the latest driver versions. - -Note - The `image` field should point to the correct image tag for version of the driver you are installing. -For e.g. - If you wish to install v1.4 of the CSI PowerMax driver, use the image tag `dellemc/csi-powermax:v1.4.0.000R` - -Note - The name of the Storage Class or the Volume Snapshot Class (which are created in the Kubernetes/OpenShift cluster) is created using the name of the driver and the name provided for these classes in the manifest. This is done in order to ensure that these names are unique if there are multiple drivers installed in the same cluster. -For e.g. - With the above sample manifest, the name of the storage class which is created in the cluster will be `test-powermax-bronze`. -You can get the name of the StorageClass and SnapshotClass created by the operator by running the commands - `kubectl get storageclass` and `kubectl get volumesnapshotclass` - -### SideCars -Although the sidecars field in the driver specification is optional, it is **strongly** recommended to not modify any details related to sidecars provided (if present) in the sample manifests. Any modifications to this should be only done after consulting with Dell EMC support. - -#### Snapshotter sidecar -Snapshotter sidecar will not be deployed as part of any driver installation on OpenShift 4.3 clusters. Volume Snapshots are a Technology Preview feature in OpenShift 4.3 and are not officially supported. -Any attempt to create VolumeSnapshotClass (alpha) as part of the driver installation on OpenShift 4.3 cluster would fail. - -### Modify the driver specification -* Choose the correct configVersion. Refer the table containing the full list of supported drivers and versions. -* Provide the namespace (in metadata section) where you want to install the driver. -* Provide a name (in metadata section) for the driver. This will be the name of the Custom Resource. -* Edit the values for mandatory configuration parameters specific to your installation. -* Edit/Add any values for optional configuration parameters to customize your installation. -* If you are installing the latest versions of the CSI drivers, the default number of replicas is set to 2. You can increase/decrease this value. - -## Troubleshooting -* Before installing the drivers, Dell CSI Operator tries to validate the Custom Resource being created. If some mandatory environment variables are missing or there is a type mismatch, then the Operator will report an error during the reconciliation attempts. -Because of this, the status of the Custom Resource will change to "Failed" and the error captured in the "ErrorMessage" field in the status. -For e.g. - If the PowerMax driver was installed in the namespace test-powermax and has the name powermax, then run the command `kubectl get csipowermax/powermax -n test-powermax -o yaml` to get the Custom Resource details. -If there was an error while installing the driver, then you would see a status like this - - ``` - status: - status: - errorMessage: mandatory Env - X_CSI_K8S_CLUSTER_PREFIX not specified in user spec - state: Failed - ``` - - The state of the Custom Resource can also change to `Failed` because of any other prohibited updates or any failure while installing the driver. In order to recover from this failure, - fix the error in the manifest and update/patch the Custom Resource - -* After an update to the driver, the controller pod may not have the latest desired specification -The above happens when the controller pod was in a failed state before applying the update. Even though the Dell CSI Operator updates the pod template specification for the StatefulSet, the StatefulSet controller does not apply the update to the pod. This happens because of the unique nature of StatefulSets where the controller tries to retain the last known working state. - - To get around this problem, the Dell CSI Operator forces an update of the pod specification by deleting the older pod. In case the Dell CSI Operator fails to do so, delete the controller pod to force an update of the controller pod specification - -* The Status of the CSI Driver Custom Resource shows the state of the driver pods after installation. This state will not be updated automatically if there are any changes to the driver pods outside any Operator operations -At times because of inconsistencies in fetching data from the Kubernetes cache, state of some driver pods may not be updated correctly in the status. To force an update of the state, you can update -the Custom Resource forcefully by setting forceUpdate to true. If all the driver pods are in `Available` State, then the state of the Custom Resource will be updated as `Running` - -# Driver details -## CSI PowerScale -### Pre-requisites -#### Create secret to store PowerScale credentials -Create a secret named `isilon-creds`, in the namespace where the CSI PowerScale driver will be installed, using the following manifest -``` -apiVersion: v1 -kind: Secret -metadata: - name: isilon-creds - # Replace driver-namespace with the namespace where driver is being deployed - namespace: -type: Opaque -data: - # set username to the base64 encoded username - username: - # set password to the base64 encoded password - password: -``` -The base64 username and password can be obtained by running the following commands -``` -# If myusername is the username -echo -n "myusername" | base64 -# If mypassword is the password -echo -n "mypassword" | base64 -``` -#### Optional - Create secret for client side TLS verification -Create a secret named `isilon-certs` in the namespace where the CSI PowerScale driver will be installed. This is an optional step and is only required if you are setting the env variable `X_CSI_ISI_INSECURE` to `false`. Please refer detailed documentation on how to create this secret in the Product Guide [here](https://github.com/dell/csi-isilon) - -### Set the following *Mandatory* Environment variables -| Variable name | Section | Description | Example | -| ------------------ | ------ | ----------- | ------- | -| X_CSI_ISI_ENDPOINT | common | HTTPS endpoint of the PowerScale OneFS API server | 1.1.1.1 | -| X_CSI_ISI_PORT | common | HTTPS port number of the PowerScale OneFS API server (string) | 8080 | - -### Modify/Set the following *optional* environment variables -| Variable name | Section | Description | Example | -| ------------------ | ------ | ----------- | ------- | -| X_CSI_VERBOSE | common | Indicates what content of the OneFS REST API message should be logged in debug level logs (string) | 1 | -| X_CSI_ISI_PATH | common | The default base path for the volumes to be created, this will be used if a storage class does not have the IsiPath parameter specified | /ifs/data/csi | -| X_CSI_ISILON_NO_PROBE_ON_START | common | Indicates whether a probe should be attempted upon start (string) | false | -| X_CSI_ISI_AUTO_PROBE | common | Indicates whether the controller service should be automatically probed (string) | true | -| X_CSI_ISI_INSECURE | common | Indicates the certificate should not or should be verified (string) | true | -| X_CSI_DEBUG | common | Indicates whether the driver is in debug mode (string) | false | -| X_CSI_ISI_QUOTA_ENABLED | controller | Indicates whether the provisioner should attempt to set (later unset) quota on a newly provisioned volume | true | -| X_CSI_ISI_ACCESSZONE | controller | The default name of the access zone a volume can be created in, this will be used if a storage class does not have the AccessZone parameter specified | System | -| X_CSI_ISILON_NFS_V3 | node | Indicates whether to add "-o ver=3" option to the mount command when mounting an NFS export (string) | false | - -### StorageClass attributes -| Name | Mandatory | Description | Default | -| ---- | :-------: | ----------- | ------- | -| allowVolumeExpansion | no | Allow volume expansion for pvc backed by this storage class | true | - -### StorageClass parameters -| Name | Mandatory | Description | Example | -| ---- | :-------: | ----------- | ------- | -| AccessZone | no | The name of the access zone a volume can be created in through this storage class | System | -| IsiPath | no | The base path for the volumes to be created through this storage class | /ifs/data/csi | -| AzServiceIP | no | Access zone service IP. Need to specify if different from X_CSI_ISI_ENDPOINT, also it can be the same as X_CSI_ISI_ENDPOINT | 1.1.1.1 | -| RootClientEnabled | no | Indicates when a node mounts the PVC, in NodeStageVolume, whether to add the k8s node to the "Root clients" field (when true) or "Clients" field (when false) of the NFS export (string) | false | - -### SnapshotClass parameters - -| Name | Mandatory | Description | Example | -| ---- | :-------: | ----------- | ------- | -| IsiPath | no | The base path for the volumes to create snapshots, and the value should match with the IsiPath of respective storage class | /ifs/data/csi | - -## CSI Unity -### Pre-requisites -#### Create secret to store Unity credentials -Create a namespace called unity (it can be any user-defined name; But commands in this section assumes that the namespace is unity) -Prepare the secret.json for driver configuration. -The following table lists driver configuration parameters for multiple storage arrays. - -| Parameter | Description | Required | Default | -| --------- | ----------- | -------- |-------- | -| username | Username for accessing unity system | true | - | -| password | Password for accessing unity system | true | - | -| restGateway | REST API gateway HTTPS endpoint Unity system| true | - | -| arrayId | ArrayID for unity system | true | - | -| insecure | "unityInsecure" determines if the driver is going to validate unisphere certs while connecting to the Unisphere REST API interface If it is set to false, then a secret unity-certs has to be created with a X.509 certificate of CA which signed the Unisphere certificate | true | true | -| isDefaultArray | An array having isDefaultArray=true is for backward compatibility. This parameter should occur once in the list. | false | false | - -Ex: secret.json - -```json5 - - { - "storageArrayList": [ - { - "username": "user", - "password": "password", - "restGateway": "https://10.1.1.1", - "arrayId": "APM00******1", - "insecure": true, - "isDefaultArray": true - }, - { - "username": "user", - "password": "password", - "restGateway": "https://10.1.1.2", - "arrayId": "APM00******2", - "insecure": true - } - ] - } - -``` - -`kubectl create secret generic unity-creds -n unity --from-file=config=secret.json` - -Use the following command to replace or update the secret - -`kubectl create secret generic unity-creds -n unity --from-file=config=secret.json -o yaml --dry-run | kubectl replace -f -` - -**Note**: The user needs to validate the JSON syntax and array related key/values while replacing the unity-creds secret. -The driver will continue to use previous values in case of an error found in the JSON file. - -#### Optional - Create secret for client side TLS verification - -Create an empty secret. Ex: empty-secret.yaml - -``` - apiVersion: v1 - kind: Secret - metadata: - name: unity-certs-0 - namespace: unity - type: Opaque - data: - cert-0: "" -``` - -Please refer detailed documentation on how to create this secret in the Product Guide [here](https://github.com/dell/csi-unity#certificate-validation-for-unisphere-rest-api-calls) - -### Modify/Set the following *optional* environment variables - -| Variable name | Section | Description | Default | -| ------------------ | ---------- | ----------- | ------- | -| X_CSI_DEBUG | common | To enable debug mode | false | -| X_CSI_UNITY_SYNC_NODEINFO_INTERVAL | node | Time interval to add node info to array. Default 15 minutes. Minimum value should be 1. If your specifies 0, then time is set to default value. | true | -| X_CSI_UNITY_DEBUG | common | To enable debug logging mode | false | - - -### StorageClass Parameters - -| Parameter | Description | Required | Default | -| --------- | ----------- | -------- |-------- | -| storagePool | Unity Storage Pool CLI ID to use with in the Kubernetes storage class | true | - | -| thinProvisioned | To set volume thinProvisioned | false | "true" | -| isDataReductionEnabled | To set volume data reduction | false | "false" | -| volumeTieringPolicy | To set volume tiering policy | false | 0 | -| FsType | Block volume related parameter. To set File system type. Possible values are ext3,ext4,xfs. Supported for FC/iSCSI protocol only. | false | ext4 | -| hostIOLimitName | Block volume related parameter. To set unity host IO limit. Supported for FC/iSCSI protocol only. | false | "" | -| nasServer | NFS related parameter. NAS Server CLI ID for filesystem creation. | true | "" | -| hostIoSize | NFS related parameter. To set filesystem host IO Size. | false | "8192" | -| reclaimPolicy | What should happen when a volume is removed | false | Delete | - -### SnapshotClass parameters -Following parameters are not present in values.yaml in the Helm based installer - -| Parameter | Description | Required | Default | -| --------- | ----------- | -------- |-------- | -| snapshotRetentionDuration | TO set snapshot retention duration. Format:"1:23:52:50" (number of days:hours:minutes:sec)| false | "" | - -## CSI PowerFlex -### Pre-requisites - -#### Create secret to store PowerFlex credentials -Create a secret named `vxflexos-creds`, in the namespace where the CSI PowerFlex driver will be installed, using the following manifest -``` -apiVersion: v1 -kind: Secret -metadata: - name: vxflexos-creds - # Replace driver-namespace with the namespace where driver is being deployed - namespace: -type: Opaque -data: - # set username to the base64 encoded username - username: - # set password to the base64 encoded password - password: -``` -The base64 username and password can be obtained by running the following commands -``` -# If myusername is the username -echo -n "myusername" | base64 -# If mypassword is the password -echo -n "mypassword" | base64 -``` - -#### Install PowerFlex Storage Data Client -Install the PowerFlex Storage Data Client (SDC) on all Kubernetes nodes. -For detailed PowerFlex installation procedure, and current version of the driver see the [Dell EMC PowerFlex Deployment Guide.](https://github.com/dell/csi-vxflexos/blob/master/CSI%20Driver%20for%20VxFlex%20OS%20Product%20Guide.pdf) - - -Procedure: -1. Download the PowerFlex SDC from Dell EMC Online support. The filename is EMC-ScaleIO-sdc-*.rpm, where * is the SDC name corresponding to the PowerFlex installation version. -2. Export the shell variable MDM_IP in a comma-separated list. This list contains the IP addresses of the MDMs. - export MDM_IP=xx.xxx.xx.xx,xx.xxx.xx.xx, where xxx represents the actual IP address in your environment variable. -3. Install the SDC using the following commands: -l For Red Hat Enterprise Linux and Cent OS, run rpm -iv ./EMC-ScaleIO-sdc-*.x86_64.rpm, where * is the SDC name corresponding to the PowerFlex installation version. -l For Ubuntu, run EMC-ScaleIO-sdc-3.0-0.769.Ubuntu.18.04.x86_64.deb. - -### Set the following *Mandatory* Environment variables - -| Variable name | Section | Description | Example | -| ------------------ | ------ | ----------- | ------- | -| X_CSI_VXFLEXOS_SYSTEMNAME | common | defines the name of the PowerFlex system from which volumes will be provisioned. This must either be set to the PowerFlex system name or system ID | systemname | -| X_CSI_VXFLEXOS_ENDPOINT | common | defines the PowerFlex REST API endpoint, with full URL, typically leveraging HTTPS. You must set this for your PowerFlex installations REST gateway | https://127.0.0.1 | - - -### Modify/Set the following **optional environment variables** - - -| Variable name | Section | Description | Example | -| ------------------ | ---------- | ----------- | ------- | -| X_CSI_DEBUG | common | To enable debug mode | false | -| X_CSI_VXFLEXOS_ENABLELISTVOLUMESNAPSHOT | common | Enable list volume operation to include snapshots (since creating a volume from a snap actually results in a new snap) | false | -| X_CSI_VXFLEXOS_ENABLESNAPSHOTCGDELETE | common | Enable this to automatically delete all snapshots in a consistency group when a snap in the group is deleted | false | - -### StorageClass parameters - -| Name | Mandatory | Description | Example | -| ---- | :-------: | ----------- | ------- | -| storagePool | yes | defines the PowerFlex storage pool from which this driver will provision volumes. You must set this for the primary storage pool to be used | sp | -| FsType | No | To set File system type. Possible values are ext3,ext4,xfs | xfs | -| allowedTopologies | no | Once the allowed topology is modified in storage class, pods/and volumes will always be scheduled on nodes that have access to the storage | allowedTopology: key: xxx/xx value: xxx | - -Note: key : csi-vxflexos.dellemc.com/X_CSI_VXFLEXOS_SYSTEMNAME , change the X_CSI_VXFLEXOS_SYSTEMNAME parameter in allowed topology to it's value(System name) - -## CSI PowerMax -### Pre-requisites -#### Create secret to store Unisphere for PowerMax credentials -Create a secret named `powermax-creds`, in the namespace where the CSI PowerMax driver will be installed, using the following manifest -``` -apiVersion: v1 -kind: Secret -metadata: - name: powermax-creds - # Replace driver-namespace with the namespace where driver is being deployed - namespace: -type: Opaque -data: - # set username to the base64 encoded username - username: - # set password to the base64 encoded password - password: - # Uncomment the following key if you wish to use ISCSI CHAP authentication (v1.3.0 onwards) - # chapsecret: -``` -The base64 username and password can be obtained by running the following commands -``` -# If myusername is the username -echo -n "myusername" | base64 -# If mypassword is the password -echo -n "mypassword" | base64 -# If mychapsecret is the ISCSI CHAP secret -echo -n "mychapsecret" | base64 -``` -#### Optional - Create secret for client side TLS verification -Create a secret named `powermax-certs` in the namespace where the CSI PowerMax driver will be installed. This is an optional step and is only required if you are setting the env variable `X_CSI_POWERMAX_SKIP_CERTIFICATE_VALIDATION` to `false`. Please refer detailed documentation on how to create this secret in the Product Guide [here](https://github.com/dell/csi-powermax) - -#### Node requirements -For node specific requirements, please refer detailed instructions in the Product Guide [here](https://github.com/dell/csi-powermax "CSI PowerMax") -Choose the Product Guide for the version you are installing by selecting the corresponding release [here](https://github.com/dell/csi-powermax/releases "CSI PowerMax Releases") - -### Set the following *Mandatory* Environment variables - -| Variable name | Section | Description | Example | -| ------------------ | ------ | ----------- | ------- | -| X_CSI_POWERMAX_ENDPOINT | common | IP address of the Unisphere for PowerMax | https://0.0.0.0:8443 | -| X_CSI_K8S_CLUSTER_PREFIX | common | defines a prefix that is appended onto all resources created in the Array; unique per K8s/CSI deployment; max length - 3 characters | XYZ | - -### Modify/Set the following *Optional* environment variables - -| Variable name | Section | Description | Example | Comments | -| ------------------ | ---------- | ----------- | ------- | -------- | -| X_CSI_POWERMAX_DEBUG | common | determines if HTTP Request/Response is logged | "false" | | -| X_CSI_POWERMAX_SKIP_CERTIFICATE_VALIDATION | common | skip client side TLS verification of Unisphere certificates | "true" | | -| X_CSI_POWERMAX_PORTGROUPS | common | List of comma separated port groups (ISCSI only) | "PortGroup1,PortGroup2" | | -| X_CSI_POWERMAX_ARRAYS | common | list of comma separated array id(s) which will be managed by the driver | "000000000001,000000000002" | | -| X_CSI_TRANSPORT_PROTOCOL | common | preferred transport protocol - FC/FIBRE or ISCSI/iSCSI. If left blank, driver will autoselect | "FC" | | -| X_CSI_ENABLE_BLOCK | common | enable Block Volume capability which is in experimental phase | "true" | | -| X_CSI_POWERMAX_ISCSI_ENABLE_CHAP | node | enable ISCSI CHAP authentication | "true" | Only supported from v1.3.0 onwards | -| X_CSI_POWERMAX_DRIVER_NAME | common | Custom CSI driver name | "csi-powermax" | Only supported from v1.3.0 onwards | -| X_CSI_IG_NODENAME_TEMPLATE | common | Template used for creating Hosts on PowerMax | "a-b-c-%foo%-xyz" | The text between % symbols(foo) is replaced by actual host name | -| X_CSI_IG_MODIFY_HOSTNAME | node | determines if node plugin can rename any existing Host on PowerMax array | "true" | Use it along with node name template to rename existing Hosts | -| X_CSI_POWERMAX_PROXY_SERVICE_NAME | common | Name of CSI PowerMax ReverseProxy service | "powermax-reverseproxy" | Leave blank if not using reverse proxy | -| X_CSI_GRPC_MAX_THREADS | common | Number of concurrent grpc requests allowed per client | "4" | Set to a higher number (<50) when using reverse proxy | - -Note - Please refer the Product guide for CSI PowerMax v1.4.0 for detailed instructions before setting X_CSI_POWERMAX_ISCSI_ENABLE_CHAP & X_CSI_POWERMAX_DRIVER_NAME - -### StorageClass parameters - -| Name | Mandatory | Description | Example | -| ------------- | :-------: | ----------- | ------- | -| SYMID | yes | Symmetrix ID | 000000000001 | -| SRP | yes | Storage Resource Pool name | DEFAULT_SRP| -| ServiceLevel | no | Service Level | Bronze | -| FsType | no | File System type (xfs/ext4) | xfs | - -### SnapshotClass parameters -No parameters have to be specified for Volume Snapshot Class for PowerMax - -## CSI PowerStore -### Pre-requisites -#### Create secret to store PowerStore API credentials - -Create a secret named `powerstore-creds`, in the namespace where the CSI PowerStore driver will be installed, using the following manifest - -``` -apiVersion: v1 -kind: Secret -metadata: - name: powerstore-creds - # Replace driver-namespace with the namespace where driver is being deployed - namespace: -type: Opaque -data: - # set username to the base64 encoded username - username: - # set password to the base64 encoded password - password: -``` -The base64 username and password can be obtained by running the following commands -``` -# If myusername is the username -echo -n "myusername" | base64 -# If mypassword is the password -echo -n "mypassword" | base64 -``` - -### Set the following *Mandatory* Environment variables - -| Variable name | Section | Description | Example | -| ------------------ | ------ | ----------- | ------- | -| X_CSI_POWERSTORE_ENDPOINT | common | Must provide a PowerStore HTTPS API url | https://127.0.0.1/api/rest | -| X_CSI_TRANSPORT_PROTOCOL | node | Choose what transport protocol to use (`ISCSI`, `FC`, `auto` or `None`) | auto | -| X_CSI_POWERSTORE_NODE_NAME_PREFIX | node | Prefix to add to each node registered by the CSI driver | `"csi-node"` | - -### Modify/Set the following *optional* environment variables - -| Variable name | Section | Description | Default | -| ------------------ | ---------- | ----------- | ------- | -| X_CSI_DEBUG | common | To enable debug mode | true | -| X_CSI_POWERSTORE_INSECURE | common | To enable insecure mode without client side verification of certificates | true | -| X_CSI_FC_PORTS_FILTER_FILE_PATH | node | To set path to the file which provide list of WWPN which should be used by the driver for FC connection on this node | `"/etc/fc-ports-filter"` - -### StorageClass Parameters - -| Parameter | Description | Required | Default | -| --------- | ----------- | -------- |-------- | -| FsType | To set File system type. Possible values are ext3,ext4,xfs,nfs | false | ext4 | -| nasName | To set what NAS Server to use for NFS | false | "" | - -### SnapshotClass parameters -No parameters have to be specified for Volume Snapshot Class for PowerStore - -## CSI PowerMax ReverseProxy -Starting v1.1 of 'dell-csi-operator', you can install the new CSI PowerMax ReverseProxy service using the `dell-csi-operator` -CSI PowerMax ReverseProxy is a new optional component which can be installed along with the CSI PowerMax driver -Please refer CSI PowerMax product guide [here](https://github.com/dell/csi-powermax "CSI PowerMax") for more details. - -When you install CSI PowerMax ReverseProxy, `dell-csi-operator` is going to create a `Deployment` and `ClusterIP` service as part of the installation - -Note - If you wish to use the ReverseProxy with CSI PowerMax driver, the ReverseProxy service should be created before you install the CSIPowerMax driver - -### Pre-requisites -Create a TLS secret which holds a SSL certificate & a private key which is required by the reverse proxy server. -Use a tool like `openssl` to generate this secret using the example below: - -``` - openssl genrsa -out tls.key 2048 - openssl req -new -x509 -sha256 -key tls.key -out tls.crt -days 3650 - kubectl create secret -n powermax tls revproxy-certs --cert=tls.crt --key=tls.key -``` - -### Set the following parameters in the CSI PowerMaxReverseProxy Spec -**tlsSecret** : Provide the name of the TLS secret. If using the above example, it should be set to `revproxy-certs` -**config** : This section contains the details of the Reverse Proxy configuration -**mode** : This value is set to `Linked` by default. Don't change this value -**linkConfig** : This section contains the configuration of the `Linked` mode -**primary** : This section holds details for the primary Unisphere which the Reverse Proxy will connect to -**backup** : This optional section holds details for a backup Unisphere which the Reverse Proxy can connect to if Primary Unisphere is unreachable -**url** : URL of the Unisphere server -**skipCertificateValidation**: This setting determines if the client side Unisphere certificate validation is required -**certSecret**: Secret name which holds the CA certificates which was used to sign Unisphere SSL certificates. Mandatory if skipCertificateValidation is set to `false` - -Here is a sample manifest with each field annotated. A copy of this manifest is provided in the `samples` folder -``` -apiVersion: storage.dell.com/v1 -kind: CSIPowerMaxRevProxy -metadata: - name: powermax-reverseproxy # <- Name of the CSIPowerMaxRevProxy object - namespace: test-powermax # <- Set the namespace to where you will install the CSI PowerMax driver -spec: - # Image for CSI PowerMax ReverseProxy - image: dellemc/csipowermax-reverseproxy:v1.0.0.000R # <- CSI PowerMax Reverse Proxy image - imagePullPolicy: Always - # TLS secret which contains SSL certificate and private key for the Reverse Proxy server - tlsSecret: csirevproxy-tls-secret - config: - # Mode for the proxy - only supported mode for now is "Linked" - mode: Linked - linkConfig: - primary: - url: https://0.0.0.0:8443 #Unisphere URL - skipCertificateValidation: true # This setting determines if client side Unisphere certificate validation is to be skipped - certSecret: "" # Provide this value if skipCertificateValidation is set to false - backup: # This is an optional field and lets you configure a backup unisphere which can be used by proxy server - url: https://0.0.0.0:8443 #Unisphere URL - skipCertificateValidation: true -``` - -### Installation -Copy the sample file - `powermax_reverseproxy.yaml` from the `samples` folder or use the sample available in the `OperatorHub` GUI -Edit and input all required parameters and then use the `OperatorHub` GUI or run the following command to install the CSI PowerMax Reverse Proxy service - - kubectl create -f powermax_reverseproxy.yaml - -You can query for the deployment and service created as part of the installation using the following commands: - - kubectl get deployment -n - kubectl get svc -n - -## Replacing CSI Operator with Dell CSI Operator -`Dell CSI Operator` was previously available, with the name `CSI Operator`, for both manual and OLM installation. -`CSI Operator` has been discontinued and has been renamed to `Dell CSI Operator`. This is just a name change and as a result, -the Kubernetes resources created as part of the Operator deployment will use the name `dell-csi-operator` instead of `csi-operator`. - -Before proceeding with the installation of the new `Dell CSI Operator`, any existing `CSI Operator` installation has to be completely -removed from the cluster. - -Note - This **doesn't** impact any of the CSI Drivers which have been installed in the cluster - -If the old `CSI Operator` was installed manually, then run the following command from the root of the repository which was used -originally for installation - - bash scripts/undeploy.sh - -If you don't have the original repository available, then run the following commands - - git clone https://github.com/dell/dell-csi-operator.git - cd dell-csi-operator - git checkout csi-operator-v1.0.0 - bash scripts/undeploy.sh - -Note - Once you have removed the old `CSI Operator`, then for installing the new `Dell CSI Operator`, you will need to pull/checkout the latest code - -If you had installed old CSI Operator using OLM, then please follow un-installation instructions provided by OperatorHub. This will mostly involve: - - * Deleting the CSI Operator Subscription - * Deleting the CSI Operator CSV - -## Upgrade Operator from version older than v1.1.0 to v1.2.0 -Dell CSI Operator v1.2.0 can only manage driver installations which do not support alpha VolumeSnapshots. It can only create/manage beta VolumeSnapshotClass objects. -This restriction is because of the breaking changes in the migration of VolumeSnapshot APIs from `v1alpha1` to `v1beta` -Because of these restrictions, you shouldn't upgrade the Operator from an older release before v1.1.0. A suggested upgrade path could be: - -* If you created any VolumeSnapshotClass along with your driver installation, then delete the driver installation -* If you have any alpha VolumeSnapshot CRDs or CRs present in your cluster, delete them -* Uninstall the old version of the Operator -* If required, upgrade your cluster to a supported version -* Follow the installation instructions to install the v1.2.0 of the Operator - ->Note - If you wish to install the VolumeSnapshot beta CRDs (release 2.1) in your upstream Kubernetes cluster, then run the command - `bash scripts/install.sh --snapshot-crd` +To uninstall CSI drivers installed using operator please refer here at [https://dell.github.io/storage-plugin-docs/docs/uninstall/#uninstall-a-dell-csi-driver-installed-via-dell-csi-operator](https://dell.github.io/storage-plugin-docs/docs/uninstall/#uninstall-a-dell-csi-driver-installed-via-dell-csi-operator) \ No newline at end of file diff --git a/deploy/beta-snapshot-crds/snapshot.storage.k8s.io_volumesnapshotclasses.yaml b/deploy/beta-snapshot-crds/snapshot.storage.k8s.io_volumesnapshotclasses.yaml deleted file mode 100644 index 4aa980c..0000000 --- a/deploy/beta-snapshot-crds/snapshot.storage.k8s.io_volumesnapshotclasses.yaml +++ /dev/null @@ -1,85 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.2.5 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/260" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - additionalPrinterColumns: - - JSONPath: .driver - name: Driver - type: string - - JSONPath: .deletionPolicy - description: Determines whether a VolumeSnapshotContent created through the VolumeSnapshotClass - should be deleted when its bound VolumeSnapshot is deleted. - name: DeletionPolicy - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - singular: volumesnapshotclass - preserveUnknownFields: false - scope: Cluster - subresources: {} - validation: - openAPIV3Schema: - description: VolumeSnapshotClass specifies parameters that a underlying storage - system uses when creating a volume snapshot. A specific VolumeSnapshotClass - is used by specifying its name in a VolumeSnapshot object. VolumeSnapshotClasses - are non-namespaced - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - deletionPolicy: - description: deletionPolicy determines whether a VolumeSnapshotContent created - through the VolumeSnapshotClass should be deleted when its bound VolumeSnapshot - is deleted. Supported values are "Retain" and "Delete". "Retain" means - that the VolumeSnapshotContent and its physical snapshot on underlying - storage system are kept. "Delete" means that the VolumeSnapshotContent - and its physical snapshot on underlying storage system are deleted. Required. - enum: - - Delete - - Retain - type: string - driver: - description: driver is the name of the storage driver that handles this - VolumeSnapshotClass. Required. - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - parameters: - additionalProperties: - type: string - description: parameters is a key-value map with storage driver specific - parameters for creating snapshots. These values are opaque to Kubernetes. - type: object - required: - - deletionPolicy - - driver - type: object - version: v1beta1 - versions: - - name: v1beta1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/beta-snapshot-crds/snapshot.storage.k8s.io_volumesnapshotcontents.yaml b/deploy/beta-snapshot-crds/snapshot.storage.k8s.io_volumesnapshotcontents.yaml deleted file mode 100644 index 34c51ad..0000000 --- a/deploy/beta-snapshot-crds/snapshot.storage.k8s.io_volumesnapshotcontents.yaml +++ /dev/null @@ -1,233 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.2.5 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/260" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - additionalPrinterColumns: - - JSONPath: .status.readyToUse - description: Indicates if a snapshot is ready to be used to restore a volume. - name: ReadyToUse - type: boolean - - JSONPath: .status.restoreSize - description: Represents the complete size of the snapshot in bytes - name: RestoreSize - type: integer - - JSONPath: .spec.deletionPolicy - description: Determines whether this VolumeSnapshotContent and its physical snapshot - on the underlying storage system should be deleted when its bound VolumeSnapshot - is deleted. - name: DeletionPolicy - type: string - - JSONPath: .spec.driver - description: Name of the CSI driver used to create the physical snapshot on the - underlying storage system. - name: Driver - type: string - - JSONPath: .spec.volumeSnapshotClassName - description: Name of the VolumeSnapshotClass to which this snapshot belongs. - name: VolumeSnapshotClass - type: string - - JSONPath: .spec.volumeSnapshotRef.name - description: Name of the VolumeSnapshot object to which this VolumeSnapshotContent - object is bound. - name: VolumeSnapshot - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - preserveUnknownFields: false - scope: Cluster - subresources: - status: {} - validation: - openAPIV3Schema: - description: VolumeSnapshotContent represents the actual "on-disk" snapshot - object in the underlying storage system - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - spec: - description: spec defines properties of a VolumeSnapshotContent created - by the underlying storage system. Required. - properties: - deletionPolicy: - description: deletionPolicy determines whether this VolumeSnapshotContent - and its physical snapshot on the underlying storage system should - be deleted when its bound VolumeSnapshot is deleted. Supported values - are "Retain" and "Delete". "Retain" means that the VolumeSnapshotContent - and its physical snapshot on underlying storage system are kept. "Delete" - means that the VolumeSnapshotContent and its physical snapshot on - underlying storage system are deleted. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. For - pre-existing snapshots, users MUST specify this field when creating - the VolumeSnapshotContent object. Required. - enum: - - Delete - - Retain - type: string - driver: - description: driver is the name of the CSI driver used to create the - physical snapshot on the underlying storage system. This MUST be the - same as the name returned by the CSI GetPluginName() call for that - driver. Required. - type: string - source: - description: source specifies from where a snapshot will be created. - This field is immutable after creation. Required. - properties: - snapshotHandle: - description: snapshotHandle specifies the CSI "snapshot_id" of a - pre-existing snapshot on the underlying storage system. This field - is immutable. - type: string - volumeHandle: - description: volumeHandle specifies the CSI "volume_id" of the volume - from which a snapshot should be dynamically taken from. This field - is immutable. - type: string - type: object - volumeSnapshotClassName: - description: name of the VolumeSnapshotClass to which this snapshot - belongs. - type: string - volumeSnapshotRef: - description: volumeSnapshotRef specifies the VolumeSnapshot object to - which this VolumeSnapshotContent object is bound. VolumeSnapshot.Spec.VolumeSnapshotContentName - field must reference to this VolumeSnapshotContent's name for the - bidirectional binding to be valid. For a pre-existing VolumeSnapshotContent - object, name and namespace of the VolumeSnapshot object MUST be provided - for binding to happen. This field is immutable after creation. Required. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: 'If referring to a piece of an object instead of an - entire object, this string should contain a valid JSON/Go field - access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within - a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" - (container with index 2 in this pod). This syntax is chosen only - to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change - in the future.' - type: string - kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' - type: string - namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' - type: string - resourceVersion: - description: 'Specific resourceVersion to which this reference is - made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' - type: string - uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' - type: string - type: object - required: - - deletionPolicy - - driver - - source - - volumeSnapshotRef - type: object - status: - description: status represents the current information of a snapshot. - properties: - creationTime: - description: creationTime is the timestamp when the point-in-time snapshot - is taken by the underlying storage system. In dynamic snapshot creation - case, this field will be filled in with the "creation_time" value - returned from CSI "CreateSnapshotRequest" gRPC call. For a pre-existing - snapshot, this field will be filled with the "creation_time" value - returned from the CSI "ListSnapshots" gRPC call if the driver supports - it. If not specified, it indicates the creation time is unknown. The - format of this field is a Unix nanoseconds time encoded as an int64. - On Unix, the command `date +%s%N` returns the current time in nanoseconds - since 1970-01-01 00:00:00 UTC. - format: int64 - type: integer - error: - description: error is the latest observed error during snapshot creation, - if any. - properties: - message: - description: 'message is a string detailing the encountered error - during snapshot creation if specified. NOTE: message may be logged, - and it should not contain sensitive information.' - type: string - time: - description: time is the timestamp when the error was encountered. - format: date-time - type: string - type: object - readyToUse: - description: readyToUse indicates if a snapshot is ready to be used - to restore a volume. In dynamic snapshot creation case, this field - will be filled in with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" gRPC call. For a pre-existing snapshot, this - field will be filled with the "ready_to_use" value returned from the - CSI "ListSnapshots" gRPC call if the driver supports it, otherwise, - this field will be set to "True". If not specified, it means the readiness - of a snapshot is unknown. - type: boolean - restoreSize: - description: restoreSize represents the complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be filled - in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - gRPC call. For a pre-existing snapshot, this field will be filled - with the "size_bytes" value returned from the CSI "ListSnapshots" - gRPC call if the driver supports it. When restoring a volume from - this snapshot, the size of the volume MUST NOT be smaller than the - restoreSize if it is specified, otherwise the restoration will fail. - If not specified, it indicates that the size is unknown. - format: int64 - minimum: 0 - type: integer - snapshotHandle: - description: snapshotHandle is the CSI "snapshot_id" of a snapshot on - the underlying storage system. If not specified, it indicates that - dynamic snapshot creation has either failed or it is still in progress. - type: string - type: object - required: - - spec - type: object - version: v1beta1 - versions: - - name: v1beta1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/beta-snapshot-crds/snapshot.storage.k8s.io_volumesnapshots.yaml b/deploy/beta-snapshot-crds/snapshot.storage.k8s.io_volumesnapshots.yaml deleted file mode 100644 index 483706f..0000000 --- a/deploy/beta-snapshot-crds/snapshot.storage.k8s.io_volumesnapshots.yaml +++ /dev/null @@ -1,188 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.2.5 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/260" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - additionalPrinterColumns: - - JSONPath: .status.readyToUse - description: Indicates if a snapshot is ready to be used to restore a volume. - name: ReadyToUse - type: boolean - - JSONPath: .spec.source.persistentVolumeClaimName - description: Name of the source PVC from where a dynamically taken snapshot will - be created. - name: SourcePVC - type: string - - JSONPath: .spec.source.volumeSnapshotContentName - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - name: SourceSnapshotContent - type: string - - JSONPath: .status.restoreSize - description: Represents the complete size of the snapshot. - name: RestoreSize - type: string - - JSONPath: .spec.volumeSnapshotClassName - description: The name of the VolumeSnapshotClass requested by the VolumeSnapshot. - name: SnapshotClass - type: string - - JSONPath: .status.boundVolumeSnapshotContentName - description: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - name: SnapshotContent - type: string - - JSONPath: .status.creationTime - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - name: CreationTime - type: date - - JSONPath: .metadata.creationTimestamp - name: Age - type: date - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - preserveUnknownFields: false - scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: VolumeSnapshot is a user's request for either creating a point-in-time - snapshot of a persistent volume, or binding to a pre-existing snapshot. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - spec: - description: 'spec defines the desired characteristics of a snapshot requested - by a user. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots - Required.' - properties: - source: - description: source specifies where a snapshot will be created from. - This field is immutable after creation. Required. - properties: - persistentVolumeClaimName: - description: persistentVolumeClaimName specifies the name of the - PersistentVolumeClaim object in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. This - field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a pre-existing - VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is no - default snapshot class, dynamic snapshot creation will fail. Empty - string is not allowed for this field. TODO(xiangqian): a webhook validation - on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. NOTE: - status can be modified by sources other than system controllers, and must - not be depended upon for accuracy. Controllers should only use information - from the VolumeSnapshotContent object after verifying that the binding - is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot object - has not been successfully bound to a VolumeSnapshotContent object - yet. NOTE: Specified boundVolumeSnapshotContentName alone does not - mean binding is valid. Controllers MUST always verify bidirectional - binding between VolumeSnapshot and VolumeSnapshotContent to - avoid possible security issues.' - type: string - creationTime: - description: creationTime is the timestamp when the point-in-time snapshot - is taken by the underlying storage system. In dynamic snapshot creation - case, this field will be filled in with the "creation_time" value - returned from CSI "CreateSnapshotRequest" gRPC call. For a pre-existing - snapshot, this field will be filled with the "creation_time" value - returned from the CSI "ListSnapshots" gRPC call if the driver supports - it. If not specified, it indicates that the creation time of the snapshot - is unknown. - format: date-time - type: string - error: - description: error is the last observed error during snapshot creation, - if any. This field could be helpful to upper level controllers(i.e., - application controller) to decide whether they should continue on - waiting for the snapshot to be created based on the type of error - reported. - properties: - message: - description: 'message is a string detailing the encountered error - during snapshot creation if specified. NOTE: message may be logged, - and it should not contain sensitive information.' - type: string - time: - description: time is the timestamp when the error was encountered. - format: date-time - type: string - type: object - readyToUse: - description: readyToUse indicates if a snapshot is ready to be used - to restore a volume. In dynamic snapshot creation case, this field - will be filled in with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" gRPC call. For a pre-existing snapshot, this - field will be filled with the "ready_to_use" value returned from the - CSI "ListSnapshots" gRPC call if the driver supports it, otherwise, - this field will be set to "True". If not specified, it means the readiness - of a snapshot is unknown. - type: boolean - restoreSize: - anyOf: - - type: integer - - type: string - description: restoreSize represents the complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be filled - in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - gRPC call. For a pre-existing snapshot, this field will be filled - with the "size_bytes" value returned from the CSI "ListSnapshots" - gRPC call if the driver supports it. When restoring a volume from - this snapshot, the size of the volume MUST NOT be smaller than the - restoreSize if it is specified, otherwise the restoration will fail. - If not specified, it indicates that the size is unknown. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - required: - - spec - type: object - version: v1beta1 - versions: - - name: v1beta1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/operator.yaml b/deploy/operator.yaml index ffdbdd7..b1fdf34 100644 --- a/deploy/operator.yaml +++ b/deploy/operator.yaml @@ -153,6 +153,18 @@ rules: - list - update - watch +- apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles/finalizers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch - apiGroups: - rbac.authorization.k8s.io resources: @@ -404,7 +416,7 @@ spec: env: - name: OPERATOR_DRIVERS value: unity,powermax,isilon,vxflexos,powerstore - image: dellemc/dell-csi-operator:v1.2.0.000R + image: dellemc/dell-csi-operator:v1.3.0 imagePullPolicy: Always name: dell-csi-operator-controller volumeMounts: @@ -416,7 +428,9 @@ spec: - command: - sh - -c - - 'if [ -e /configmap/config.tar.gz ]; then /bin/tar -C /etc/config/dell-csi-operator -xzvf /configmap/config.tar.gz --strip-components 1; else echo "Warning: ConfigMap not mounted"; fi' + - 'if [ -e /configmap/config.tar.gz ]; then /bin/tar -C /etc/config/dell-csi-operator + -xzvf /configmap/config.tar.gz --strip-components 1; else echo "Warning: + ConfigMap not mounted"; fi' image: docker.io/busybox:1.32.0 name: config-copy volumeMounts: diff --git a/driverconfig/config.yaml b/driverconfig/config.yaml index 66ca5e4..c088e26 100644 --- a/driverconfig/config.yaml +++ b/driverconfig/config.yaml @@ -6,13 +6,24 @@ supportedK8sVersions: drivers: - name: powermax configVersions: - - configVersion: v4 + - configVersion: v5 useDefaults: true + supportedVersions: + - v118 + - v119 + - v120 + - configVersion: v4 + useDefaults: false supportedVersions: - v117 - v118 - v119 - v120 + provisioner: k8s.gcr.io/sig-storage/csi-provisioner:v2.0.2 + attacher: k8s.gcr.io/sig-storage/csi-attacher:v3.0.0 + snapshotter: k8s.gcr.io/sig-storage/csi-snapshotter:v3.0.2 + resizer: quay.io/k8scsi/csi-resizer:v1.0.0 + registrar: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.0.1 - configVersion: v3 useDefaults: false supportedVersions: @@ -26,13 +37,24 @@ drivers: registrar: quay.io/k8scsi/csi-node-driver-registrar:v1.2.0 - name: unity configVersions: - - configVersion: v3 + - configVersion: v4 useDefaults: true + supportedVersions: + - v118 + - v119 + - v120 + - configVersion: v3 + useDefaults: false supportedVersions: - v117 - v118 - v119 - v120 + provisioner: k8s.gcr.io/sig-storage/csi-provisioner:v2.0.2 + attacher: k8s.gcr.io/sig-storage/csi-attacher:v3.0.0 + snapshotter: k8s.gcr.io/sig-storage/csi-snapshotter:v3.0.2 + resizer: quay.io/k8scsi/csi-resizer:v1.0.0 + registrar: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.0.1 - configVersion: v2 useDefaults: false supportedVersions: @@ -46,13 +68,24 @@ drivers: registrar: quay.io/k8scsi/csi-node-driver-registrar:v1.2.0 - name: vxflexos configVersions: - - configVersion: v3 + - configVersion: v4 useDefaults: true + supportedVersions: + - v118 + - v119 + - v120 + - configVersion: v3 + useDefaults: false supportedVersions: - v117 - v118 - v119 - v120 + provisioner: k8s.gcr.io/sig-storage/csi-provisioner:v2.0.2 + attacher: k8s.gcr.io/sig-storage/csi-attacher:v3.0.0 + snapshotter: k8s.gcr.io/sig-storage/csi-snapshotter:v3.0.2 + resizer: quay.io/k8scsi/csi-resizer:v1.0.0 + registrar: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.0.1 - configVersion: v2 useDefaults: false supportedVersions: @@ -66,13 +99,24 @@ drivers: registrar: quay.io/k8scsi/csi-node-driver-registrar:v1.2.0 - name: isilon configVersions: - - configVersion: v4 + - configVersion: v5 useDefaults: true + supportedVersions: + - v118 + - v119 + - v120 + - configVersion: v4 + useDefaults: false supportedVersions: - v117 - v118 - v119 - v120 + provisioner: k8s.gcr.io/sig-storage/csi-provisioner:v2.0.2 + attacher: k8s.gcr.io/sig-storage/csi-attacher:v3.0.0 + snapshotter: k8s.gcr.io/sig-storage/csi-snapshotter:v3.0.2 + resizer: quay.io/k8scsi/csi-resizer:v1.0.0 + registrar: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.0.1 - configVersion: v3 useDefaults: false supportedVersions: @@ -86,13 +130,24 @@ drivers: registrar: quay.io/k8scsi/csi-node-driver-registrar:v1.2.0 - name: powerstore configVersions: - - configVersion: v2 + - configVersion: v3 useDefaults: true + supportedVersions: + - v118 + - v119 + - v120 + - configVersion: v2 + useDefaults: false supportedVersions: - v117 - v118 - v119 - v120 + provisioner: k8s.gcr.io/sig-storage/csi-provisioner:v2.0.2 + attacher: k8s.gcr.io/sig-storage/csi-attacher:v3.0.0 + snapshotter: k8s.gcr.io/sig-storage/csi-snapshotter:v3.0.2 + resizer: quay.io/k8scsi/csi-resizer:v1.0.0 + registrar: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.0.1 - configVersion: v1 useDefaults: false supportedVersions: @@ -110,69 +165,69 @@ csiSideCars: - version: v117 tag: k8s.gcr.io/sig-storage/csi-attacher:v3.0.0 - version: v118 - tag: k8s.gcr.io/sig-storage/csi-attacher:v3.0.0 + tag: k8s.gcr.io/sig-storage/csi-attacher:v3.1.0 - version: v119 - tag: k8s.gcr.io/sig-storage/csi-attacher:v3.0.0 + tag: k8s.gcr.io/sig-storage/csi-attacher:v3.1.0 - version: v120 - tag: k8s.gcr.io/sig-storage/csi-attacher:v3.0.0 + tag: k8s.gcr.io/sig-storage/csi-attacher:v3.1.0 - name: provisioner images: - version: v117 tag: k8s.gcr.io/sig-storage/csi-provisioner:v2.0.2 - version: v118 - tag: k8s.gcr.io/sig-storage/csi-provisioner:v2.0.2 + tag: k8s.gcr.io/sig-storage/csi-provisioner:v2.1.0 - version: v119 - tag: k8s.gcr.io/sig-storage/csi-provisioner:v2.0.2 + tag: k8s.gcr.io/sig-storage/csi-provisioner:v2.1.0 - version: v120 - tag: k8s.gcr.io/sig-storage/csi-provisioner:v2.0.2 + tag: k8s.gcr.io/sig-storage/csi-provisioner:v2.1.0 - name: snapshotter images: - version: v117 tag: k8s.gcr.io/sig-storage/csi-snapshotter:v3.0.2 - version: v118 - tag: k8s.gcr.io/sig-storage/csi-snapshotter:v3.0.2 + tag: k8s.gcr.io/sig-storage/csi-snapshotter:v3.0.3 - version: v119 - tag: k8s.gcr.io/sig-storage/csi-snapshotter:v3.0.2 + tag: k8s.gcr.io/sig-storage/csi-snapshotter:v3.0.3 - version: v120 - tag: k8s.gcr.io/sig-storage/csi-snapshotter:v3.0.2 + tag: k8s.gcr.io/sig-storage/csi-snapshotter:v4.0.0 - name: resizer images: - version: v117 tag: quay.io/k8scsi/csi-resizer:v1.0.0 - version: v118 - tag: quay.io/k8scsi/csi-resizer:v1.0.0 + tag: quay.io/k8scsi/csi-resizer:v1.1.0 - version: v119 - tag: quay.io/k8scsi/csi-resizer:v1.0.0 + tag: quay.io/k8scsi/csi-resizer:v1.1.0 - version: v120 - tag: quay.io/k8scsi/csi-resizer:v1.0.0 + tag: quay.io/k8scsi/csi-resizer:v1.1.0 - name: registrar images: - version: v117 tag: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.0.1 - version: v118 - tag: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.0.1 + tag: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.1.0 - version: v119 - tag: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.0.1 + tag: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.1.0 - version: v120 - tag: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.0.1 + tag: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.1.0 extensions: - name: sdc-monitor images: - version: v117 tag: dellemc/sdc:3.5.1.1 - version: v118 - tag: dellemc/sdc:3.5.1.1 + tag: dellemc/sdc:3.5.1.1-1 - version: v119 - tag: dellemc/sdc:3.5.1.1 + tag: dellemc/sdc:3.5.1.1-1 - version: v120 - tag: dellemc/sdc:3.5.1.1 + tag: dellemc/sdc:3.5.1.1-1 - name: sdc images: - version: v117 tag: dellemc/sdc:3.5.1.1 - version: v118 - tag: dellemc/sdc:3.5.1.1 + tag: dellemc/sdc:3.5.1.1-1 - version: v119 - tag: dellemc/sdc:3.5.1.1 + tag: dellemc/sdc:3.5.1.1-1 - version: v120 - tag: dellemc/sdc:3.5.1.1 + tag: dellemc/sdc:3.5.1.1-1 diff --git a/driverconfig/unity_v3_v117.json b/driverconfig/isilon_v5_v118.json similarity index 68% rename from driverconfig/unity_v3_v117.json rename to driverconfig/isilon_v5_v118.json index f76ab54..be3fba8 100644 --- a/driverconfig/unity_v3_v117.json +++ b/driverconfig/isilon_v5_v118.json @@ -1,404 +1,357 @@ -{ - "driverConfig": { - "controllerHA": true, - "enableEphemeralVolumes": true, - "driverEnvs": [ - { - "Name": "CSI_ENDPOINT", - "CSIEnvType": "String", - "SetForController": true, - "SetForNode": true, - "DefaultValueForController": "/var/run/csi/csi.sock", - "DefaultValueForNode": "unix:///var/lib/kubelet/plugins/unity.emc.dell.com/csi_sock" - }, - { - "Name": "X_CSI_MODE", - "CSIEnvType": "String", - "SetForController": true, - "SetForNode": true, - "DefaultValueForController": "controller", - "DefaultValueForNode": "node" - }, - { - "Name": "X_CSI_UNITY_AUTOPROBE", - "CSIEnvType": "Boolean", - "SetForController": true, - "SetForNode": true, - "DefaultValueForController": "true", - "DefaultValueForNode": "true" - }, - { - "Name": "X_CSI_DEBUG", - "CSIEnvType": "Boolean", - "SetForController": true, - "SetForNode": true, - "DefaultValueForController": "true", - "DefaultValueForNode": "true" - }, - { - "Name": "GOUNITY_DEBUG", - "CSIEnvType": "Boolean", - "SetForController": true, - "SetForNode": true, - "DefaultValueForController": "false", - "DefaultValueForNode": "false" - }, - { - "Name": "X_CSI_PRIVATE_MOUNT_DIR", - "CSIEnvType": "String", - "SetForController": false, - "SetForNode": true, - "DefaultValueForController": "", - "DefaultValueForNode": "/var/lib/kubelet/plugins/unity.emc.dell.com/disks" - }, - { - "Name": "X_CSI_EPHEMERAL_STAGING_PATH", - "CSIEnvType": "String", - "SetForController": false, - "SetForNode": true, - "DefaultValueForController": "", - "DefaultValueForNode": "/var/lib/kubelet/plugins/kubernetes.io/csi/pv/" - }, - { - "Name": "X_CSI_ISCSI_CHROOT", - "CSIEnvType": "String", - "SetForController": false, - "SetForNode": true, - "DefaultValueForController": "", - "DefaultValueForNode": "/noderoot" - }, - { - "Name": "X_CSI_UNITY_NODENAME", - "CSIEnvType": "EnvVarReferenceType", - "SetForController": false, - "SetForNode": true, - "DefaultValueForController": "", - "DefaultValueForNode": "v1/spec.nodeName" - }, - { - "Name": "X_CSI_UNITY_NODENAME_PREFIX", - "CSIEnvType": "String", - "SetForController": false, - "SetForNode": true, - "DefaultValueForController": "", - "DefaultValueForNode": "csi-node" - }, - { - "Name": "SSL_CERT_DIR", - "CSIEnvType": "String", - "SetForController": true, - "SetForNode": true, - "DefaultValueForController": "/certs", - "DefaultValueForNode": "/certs" - }, - { - "Name": "X_CSI_UNITY_SYNC_NODEINFO_INTERVAL", - "CSIEnvType": "String", - "SetForController": false, - "SetForNode": true, - "DefaultValueForController": "", - "DefaultValueForNode": "15" - } - ], - "driverArgs": [ - "--driver-name=csi-unity.dellemc.com", - "--driver-config=/unity-config/config" - ], - "driverNodeVolumes": [ - { - "hostPath": { - "path": "/var/lib/kubelet/plugins_registry/", - "type": "DirectoryOrCreate" - }, - "name": "registration-dir" - }, - { - "hostPath": { - "path": "/var/lib/kubelet/plugins/unity.emc.dell.com", - "type": "DirectoryOrCreate" - }, - "name": "driver-path" - }, - { - "hostPath": { - "path": "/var/lib/kubelet/plugins/kubernetes.io/csi", - "type": "DirectoryOrCreate" - }, - "name": "volumedevices-path" - }, - { - "hostPath": { - "path": "/var/lib/kubelet/pods", - "type": "Directory" - }, - "name": "pods-path" - }, - { - "hostPath": { - "path": "/dev", - "type": "Directory" - }, - "name": "dev" - }, - { - "hostPath": { - "path": "/", - "type": "Directory" - }, - "name": "noderoot" - }, - { - "name": "certs", - "secret": { - "defaultMode": 420, - "secretName": "unity-certs", - "optional": true - } - }, - { - "name": "unity-config", - "secret": { - "defaultMode": 420, - "secretName": "unity-creds", - "optional": true - } - } - ], - "driverControllerVolumes": [ - { - "emptyDir": {}, - "name": "socket-dir" - }, - { - "name": "certs", - "secret": { - "defaultMode": 420, - "secretName": "unity-certs", - "optional": true - } - }, - { - "name": "unity-config", - "secret": { - "defaultMode": 420, - "secretName": "unity-creds", - "optional": true - } - } - ], - "driverControllerVolumeMounts": [ - { - "mountPath": "/var/run/csi", - "name": "socket-dir" - }, - { - "mountPath": "/certs", - "name": "certs", - "readOnly": true - }, - { - "mountPath": "/unity-config", - "name": "unity-config", - "readOnly": true - } - ], - "driverNodeVolumeMounts": [ - { - "mountPath": "/var/lib/kubelet/plugins/unity.emc.dell.com", - "name": "driver-path" - }, - { - "mountPath": "/var/lib/kubelet/plugins/kubernetes.io/csi", - "mountPropagation": "Bidirectional", - "name": "volumedevices-path" - }, - { - "mountPath": "/var/lib/kubelet/pods", - "mountPropagation": "Bidirectional", - "name": "pods-path" - }, - { - "mountPath": "/dev", - "name": "dev" - }, - { - "mountPath": "/noderoot", - "name": "noderoot" - }, - { - "mountPath": "/certs", - "name": "certs", - "readOnly": true - }, - { - "mountPath": "/unity-config", - "name": "unity-config", - "readOnly": true - } - ], - "sidecarParams": [ - { - "name": "provisioner", - "args": [ - "--csi-address=$(ADDRESS)", - "--timeout=120s", - "--volume-name-uuid-length=10", - "--timeout=180s", - "--worker-threads=6", - "--v=5", - "--volume-name-prefix=csiunity", - "--leader-election" - ], - "envs": [ - { - "name": "ADDRESS", - "value": "/var/run/csi/csi.sock" - } - ], - "volumeMounts": [ - { - "mountPath": "/var/run/csi", - "name": "socket-dir" - } - ] - }, - { - "name": "attacher", - "args": [ - "--csi-address=$(ADDRESS)", - "--v=5", - "--timeout=180s", - "--leader-election" - ], - "envs": [ - { - "name": "ADDRESS", - "value": "/var/run/csi/csi.sock" - } - ], - "volumeMounts": [ - { - "mountPath": "/var/run/csi", - "name": "socket-dir" - } - ] - }, - { - "name": "snapshotter", - "args": [ - "--v=5", - "--snapshot-name-uuid-length=10", - "--timeout=360s", - "--csi-address=$(ADDRESS)", - "--snapshot-name-prefix=csi-snap", - "--leader-election" - ], - "envs": [ - { - "name": "ADDRESS", - "value": "/var/run/csi/csi.sock" - } - ], - "volumeMounts": [ - { - "mountPath": "/var/run/csi", - "name": "socket-dir" - } - ] - }, - { - "name": "registrar", - "args": [ - "--v=5", - "--csi-address=$(ADDRESS)", - "--kubelet-registration-path=/var/lib/kubelet/plugins/unity.emc.dell.com/csi_sock" - ], - "envs": [ - { - "name": "ADDRESS", - "value": "/csi/csi_sock" - }, - { - "name": "KUBE_NODE_NAME", - "valueFrom": { - "fieldRef": { - "apiVersion": "v1", - "fieldPath": "spec.nodeName" - } - } - } - ], - "volumeMounts": [ - { - "mountPath": "/registration", - "name": "registration-dir" - }, - { - "mountPath": "/csi", - "name": "driver-path" - } - ] - }, - { - "name": "resizer", - "args": [ - "--csi-address=$(ADDRESS)", - "--v=5", - "--leader-election" - ], - "envs": [ - { - "name": "ADDRESS", - "value": "/var/run/csi/csi.sock" - } - ], - "volumeMounts": [ - { - "mountPath": "/var/run/csi", - "name": "socket-dir" - } - ] - } - ], - "storageClassParams": [ - { - "Name": "storagePool", - "Mandatory": true - }, - { - "Name": "arrayId", - "Mandatory": true - }, - { - "Name": "FsType", - "Mandatory": false - }, - { - "Name": "thinProvisioned" - }, - { - "Name": "isDataReductionEnabled" - }, - { - "Name": "tieringPolicy" - }, - { - "Name": "hostIOLimitName" - }, - { - "Name": "hostIoSize", - "Mandatory": false - } - ], - "storageClassAttrs": [ - { - "name": "allowVolumeExpansion", - "value": true - }, - { - "name": "volumeBindingMode", - "value": "Immediate" - } - ] - } -} +{ + "driverConfig": { + "controllerHA" : true, + "enableEphemeralVolumes": true, + "driverEnvs": [ + { + "Name": "CSI_ENDPOINT", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/var/run/csi/csi.sock", + "DefaultValueForNode": "/var/lib/kubelet/plugins/csi-isilon/csi_sock" + }, + { + "Name": "X_CSI_MODE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "controller", + "DefaultValueForNode": "node" + }, + { + "Name": "X_CSI_ISI_AUTOPROBE", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_ISI_INSECURE", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_NODE_NAME", + "CSIEnvType": "EnvVarReferenceType", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "v1/spec.nodeName", + "DefaultValueForNode": "v1/spec.nodeName" + }, + { + "Name": "X_CSI_NODE_IP", + "CSIEnvType": "EnvVarReferenceType", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "v1/status.hostIP" + }, + { + "Name": "SSL_CERT_DIR", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/certs", + "DefaultValueForNode": "/certs" + }, + { + "Name": "X_CSI_PRIVATE_MOUNT_DIR", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/csi-isilon/disks" + }, + { + "Name": "X_CSI_ISI_PORT", + "Mandatory": true, + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_CUSTOM_TOPOLOGY_ENABLED", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "false", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_ALLOWED_NETWORKS", + "CSIEnvType": "List", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + } + ], + "driverControllerVolumes": [ + { + "emptyDir": {}, + "name": "socket-dir" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "isilon-certs", + "optional": true + } + }, + { + "name": "isilon-configs", + "secret": { + "defaultMode": 420, + "secretName": "isilon-creds", + "optional": true + } + } + ], + "driverControllerVolumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/isilon-configs", + "name": "isilon-configs", + "readOnly": true + } + ], + "driverNodeVolumes": [ + { + "hostPath": { + "path": "/var/lib/kubelet/plugins_registry/", + "type": "DirectoryOrCreate" + }, + "name": "registration-dir" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/csi-isilon", + "type": "DirectoryOrCreate" + }, + "name": "driver-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "type": "DirectoryOrCreate" + }, + "name": "volumedevices-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/pods", + "type": "Directory" + }, + "name": "pods-path" + }, + { + "hostPath": { + "path": "/dev", + "type": "Directory" + }, + "name": "dev" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "isilon-certs", + "optional": true + } + }, + { + "name": "isilon-configs", + "secret": { + "defaultMode": 420, + "secretName": "isilon-creds", + "optional": true + } + } + ], + "driverNodeVolumeMounts": [ + { + "mountPath": "/var/lib/kubelet/plugins/csi-isilon", + "name": "driver-path" + }, + { + "mountPath": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "name": "volumedevices-path" + }, + { + "mountPath": "/var/lib/kubelet/pods", + "mountPropagation": "Bidirectional", + "name": "pods-path" + }, + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/isilon-configs", + "name": "isilon-configs", + "readOnly": true + } + ], + "sidecarParams": [ + { + "name": "provisioner", + "args": [ + "--csi-address=$(ADDRESS)", + "--timeout=120s", + "--volume-name-uuid-length=10", + "--timeout=180s", + "--worker-threads=6", + "--v=5", + "--volume-name-prefix=csipscale", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "attacher", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--timeout=180s", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "snapshotter", + "args": [ + "--csi-address=$(ADDRESS)", + "--timeout=15s", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "registrar", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--kubelet-registration-path=/var/lib/kubelet/plugins/csi-isilon/csi_sock" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/csi/csi_sock" + }, + { + "name": "KUBE_NODE_NAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/registration", + "name": "registration-dir" + }, + { + "mountPath": "/csi", + "name": "driver-path" + } + ] + }, + { + "name": "resizer", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + } + ], + "storageClassAttrs": [ + { + "name": "allowVolumeExpansion", + "value": true + }, + { + "name": "volumeBindingMode", + "value": "Immediate" + } + ] + } +} diff --git a/driverconfig/unity_v2_v117.json b/driverconfig/isilon_v5_v119.json similarity index 66% rename from driverconfig/unity_v2_v117.json rename to driverconfig/isilon_v5_v119.json index 7bf7770..be3fba8 100644 --- a/driverconfig/unity_v2_v117.json +++ b/driverconfig/isilon_v5_v119.json @@ -1,5 +1,7 @@ { "driverConfig": { + "controllerHA" : true, + "enableEphemeralVolumes": true, "driverEnvs": [ { "Name": "CSI_ENDPOINT", @@ -7,7 +9,7 @@ "SetForController": true, "SetForNode": true, "DefaultValueForController": "/var/run/csi/csi.sock", - "DefaultValueForNode": "unix:///var/lib/kubelet/plugins/unity.emc.dell.com/csi_sock" + "DefaultValueForNode": "/var/lib/kubelet/plugins/csi-isilon/csi_sock" }, { "Name": "X_CSI_MODE", @@ -18,7 +20,7 @@ "DefaultValueForNode": "node" }, { - "Name": "X_CSI_UNITY_AUTOPROBE", + "Name": "X_CSI_ISI_AUTOPROBE", "CSIEnvType": "Boolean", "SetForController": true, "SetForNode": true, @@ -34,172 +36,169 @@ "DefaultValueForNode": "true" }, { - "Name": "GOUNITY_DEBUG", + "Name": "X_CSI_ISI_INSECURE", "CSIEnvType": "Boolean", "SetForController": true, "SetForNode": true, - "DefaultValueForController": "false", - "DefaultValueForNode": "false" + "DefaultValueForController": "true", + "DefaultValueForNode": "true" }, { - "Name": "X_CSI_PRIVATE_MOUNT_DIR", - "CSIEnvType": "String", + "Name": "X_CSI_NODE_NAME", + "CSIEnvType": "EnvVarReferenceType", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "v1/spec.nodeName", + "DefaultValueForNode": "v1/spec.nodeName" + }, + { + "Name": "X_CSI_NODE_IP", + "CSIEnvType": "EnvVarReferenceType", "SetForController": false, "SetForNode": true, "DefaultValueForController": "", - "DefaultValueForNode": "/var/lib/kubelet/plugins/unity.emc.dell.com/disks" + "DefaultValueForNode": "v1/status.hostIP" }, { - "Name": "X_CSI_ISCSI_CHROOT", + "Name": "SSL_CERT_DIR", "CSIEnvType": "String", - "SetForController": false, + "SetForController": true, "SetForNode": true, - "DefaultValueForController": "", - "DefaultValueForNode": "/noderoot" + "DefaultValueForController": "/certs", + "DefaultValueForNode": "/certs" }, { - "Name": "X_CSI_UNITY_NODENAME", - "CSIEnvType": "EnvVarReferenceType", + "Name": "X_CSI_PRIVATE_MOUNT_DIR", + "CSIEnvType": "String", "SetForController": false, "SetForNode": true, "DefaultValueForController": "", - "DefaultValueForNode": "v1/spec.nodeName" + "DefaultValueForNode": "/var/lib/kubelet/plugins/csi-isilon/disks" }, { - "Name": "X_CSI_UNITY_NODENAME_PREFIX", + "Name": "X_CSI_ISI_PORT", + "Mandatory": true, "CSIEnvType": "String", - "SetForController": false, + "SetForController": true, "SetForNode": true, "DefaultValueForController": "", - "DefaultValueForNode": "csi-node" + "DefaultValueForNode": "" }, { - "Name": "SSL_CERT_DIR", - "CSIEnvType": "String", + "Name": "X_CSI_CUSTOM_TOPOLOGY_ENABLED", + "CSIEnvType": "Boolean", "SetForController": true, "SetForNode": true, - "DefaultValueForController": "/certs", - "DefaultValueForNode": "/certs" + "DefaultValueForController": "false", + "DefaultValueForNode": "false" }, { - "Name": "X_CSI_UNITY_SYNC_NODEINFO_INTERVAL", - "CSIEnvType": "String", + "Name": "X_CSI_ALLOWED_NETWORKS", + "CSIEnvType": "List", "SetForController": false, "SetForNode": true, "DefaultValueForController": "", - "DefaultValueForNode": "15" + "DefaultValueForNode": "" + } + ], + "driverControllerVolumes": [ + { + "emptyDir": {}, + "name": "socket-dir" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "isilon-certs", + "optional": true + } + }, + { + "name": "isilon-configs", + "secret": { + "defaultMode": 420, + "secretName": "isilon-creds", + "optional": true + } } ], - "driverArgs": [ - "--driver-name=csi-unity.dellemc.com", - "--driver-config=/unity-config/config" + "driverControllerVolumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/isilon-configs", + "name": "isilon-configs", + "readOnly": true + } ], "driverNodeVolumes": [ { "hostPath": { - "path": "/var/lib/kubelet/plugins_registry/", - "type": "DirectoryOrCreate" + "path": "/var/lib/kubelet/plugins_registry/", + "type": "DirectoryOrCreate" }, "name": "registration-dir" }, { "hostPath": { - "path": "/var/lib/kubelet/plugins/unity.emc.dell.com", - "type": "DirectoryOrCreate" + "path": "/var/lib/kubelet/plugins/csi-isilon", + "type": "DirectoryOrCreate" }, "name": "driver-path" }, { "hostPath": { - "path": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", - "type": "DirectoryOrCreate" + "path": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "type": "DirectoryOrCreate" }, "name": "volumedevices-path" }, { "hostPath": { - "path": "/var/lib/kubelet/pods", - "type": "Directory" + "path": "/var/lib/kubelet/pods", + "type": "Directory" }, "name": "pods-path" }, { "hostPath": { - "path": "/dev", - "type": "Directory" + "path": "/dev", + "type": "Directory" }, "name": "dev" }, - { - "hostPath": { - "path": "/", - "type": "Directory" - }, - "name": "noderoot" - }, - { - "name": "certs", - "secret": { - "defaultMode": 420, - "secretName": "unity-certs", - "optional": true - } - }, - { - "name": "unity-config", - "secret": { - "defaultMode": 420, - "secretName": "unity-creds", - "optional": true - } - } - ], - "driverControllerVolumes": [ - { - "emptyDir": {}, - "name": "socket-dir" - }, { "name": "certs", "secret": { - "defaultMode": 420, - "secretName": "unity-certs", - "optional": true + "defaultMode": 420, + "secretName": "isilon-certs", + "optional": true } }, { - "name": "unity-config", + "name": "isilon-configs", "secret": { "defaultMode": 420, - "secretName": "unity-creds", + "secretName": "isilon-creds", "optional": true } } ], - "driverControllerVolumeMounts": [ - { - "mountPath": "/var/run/csi", - "name": "socket-dir" - }, - { - "mountPath": "/certs", - "name": "certs", - "readOnly": true - }, - { - "mountPath": "/unity-config", - "name": "unity-config", - "readOnly": true - } - ], "driverNodeVolumeMounts": [ { - "mountPath": "/var/lib/kubelet/plugins/unity.emc.dell.com", + "mountPath": "/var/lib/kubelet/plugins/csi-isilon", "name": "driver-path" }, { "mountPath": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", - "mountPropagation": "Bidirectional", "name": "volumedevices-path" }, { @@ -211,18 +210,14 @@ "mountPath": "/dev", "name": "dev" }, - { - "mountPath": "/noderoot", - "name": "noderoot" - }, { "mountPath": "/certs", "name": "certs", "readOnly": true }, { - "mountPath": "/unity-config", - "name": "unity-config", + "mountPath": "/isilon-configs", + "name": "isilon-configs", "readOnly": true } ], @@ -236,7 +231,8 @@ "--timeout=180s", "--worker-threads=6", "--v=5", - "--volume-name-prefix=csiunity" + "--volume-name-prefix=csipscale", + "--leader-election" ], "envs": [ { @@ -256,7 +252,8 @@ "args": [ "--csi-address=$(ADDRESS)", "--v=5", - "--timeout=180s" + "--timeout=180s", + "--leader-election" ], "envs": [ { @@ -274,11 +271,10 @@ { "name": "snapshotter", "args": [ - "--v=5", - "--snapshot-name-uuid-length=10", - "--timeout=360s", "--csi-address=$(ADDRESS)", - "--snapshot-name-prefix=csi-snap" + "--timeout=15s", + "--v=5", + "--leader-election" ], "envs": [ { @@ -298,7 +294,7 @@ "args": [ "--v=5", "--csi-address=$(ADDRESS)", - "--kubelet-registration-path=/var/lib/kubelet/plugins/unity.emc.dell.com/csi_sock" + "--kubelet-registration-path=/var/lib/kubelet/plugins/csi-isilon/csi_sock" ], "envs": [ { @@ -330,7 +326,8 @@ "name": "resizer", "args": [ "--csi-address=$(ADDRESS)", - "--v=5" + "--v=5", + "--leader-election" ], "envs": [ { @@ -346,40 +343,14 @@ ] } ], - "storageClassParams": [ - { - "Name": "storagePool", - "Mandatory": true - }, - { - "Name": "arrayId", - "Mandatory": true - }, - { - "Name": "FsType", - "Mandatory": false - }, - { - "Name": "thinProvisioned" - }, - { - "Name": "isDataReductionEnabled" - }, - { - "Name": "tieringPolicy" - }, - { - "Name": "hostIOLimitName" - }, - { - "Name": "hostIoSize", - "Mandatory": false - } - ], "storageClassAttrs": [ { "name": "allowVolumeExpansion", "value": true + }, + { + "name": "volumeBindingMode", + "value": "Immediate" } ] } diff --git a/driverconfig/isilon_v5_v120.json b/driverconfig/isilon_v5_v120.json new file mode 100644 index 0000000..be3fba8 --- /dev/null +++ b/driverconfig/isilon_v5_v120.json @@ -0,0 +1,357 @@ +{ + "driverConfig": { + "controllerHA" : true, + "enableEphemeralVolumes": true, + "driverEnvs": [ + { + "Name": "CSI_ENDPOINT", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/var/run/csi/csi.sock", + "DefaultValueForNode": "/var/lib/kubelet/plugins/csi-isilon/csi_sock" + }, + { + "Name": "X_CSI_MODE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "controller", + "DefaultValueForNode": "node" + }, + { + "Name": "X_CSI_ISI_AUTOPROBE", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_ISI_INSECURE", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_NODE_NAME", + "CSIEnvType": "EnvVarReferenceType", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "v1/spec.nodeName", + "DefaultValueForNode": "v1/spec.nodeName" + }, + { + "Name": "X_CSI_NODE_IP", + "CSIEnvType": "EnvVarReferenceType", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "v1/status.hostIP" + }, + { + "Name": "SSL_CERT_DIR", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/certs", + "DefaultValueForNode": "/certs" + }, + { + "Name": "X_CSI_PRIVATE_MOUNT_DIR", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/csi-isilon/disks" + }, + { + "Name": "X_CSI_ISI_PORT", + "Mandatory": true, + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_CUSTOM_TOPOLOGY_ENABLED", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "false", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_ALLOWED_NETWORKS", + "CSIEnvType": "List", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + } + ], + "driverControllerVolumes": [ + { + "emptyDir": {}, + "name": "socket-dir" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "isilon-certs", + "optional": true + } + }, + { + "name": "isilon-configs", + "secret": { + "defaultMode": 420, + "secretName": "isilon-creds", + "optional": true + } + } + ], + "driverControllerVolumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/isilon-configs", + "name": "isilon-configs", + "readOnly": true + } + ], + "driverNodeVolumes": [ + { + "hostPath": { + "path": "/var/lib/kubelet/plugins_registry/", + "type": "DirectoryOrCreate" + }, + "name": "registration-dir" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/csi-isilon", + "type": "DirectoryOrCreate" + }, + "name": "driver-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "type": "DirectoryOrCreate" + }, + "name": "volumedevices-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/pods", + "type": "Directory" + }, + "name": "pods-path" + }, + { + "hostPath": { + "path": "/dev", + "type": "Directory" + }, + "name": "dev" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "isilon-certs", + "optional": true + } + }, + { + "name": "isilon-configs", + "secret": { + "defaultMode": 420, + "secretName": "isilon-creds", + "optional": true + } + } + ], + "driverNodeVolumeMounts": [ + { + "mountPath": "/var/lib/kubelet/plugins/csi-isilon", + "name": "driver-path" + }, + { + "mountPath": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "name": "volumedevices-path" + }, + { + "mountPath": "/var/lib/kubelet/pods", + "mountPropagation": "Bidirectional", + "name": "pods-path" + }, + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/isilon-configs", + "name": "isilon-configs", + "readOnly": true + } + ], + "sidecarParams": [ + { + "name": "provisioner", + "args": [ + "--csi-address=$(ADDRESS)", + "--timeout=120s", + "--volume-name-uuid-length=10", + "--timeout=180s", + "--worker-threads=6", + "--v=5", + "--volume-name-prefix=csipscale", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "attacher", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--timeout=180s", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "snapshotter", + "args": [ + "--csi-address=$(ADDRESS)", + "--timeout=15s", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "registrar", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--kubelet-registration-path=/var/lib/kubelet/plugins/csi-isilon/csi_sock" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/csi/csi_sock" + }, + { + "name": "KUBE_NODE_NAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/registration", + "name": "registration-dir" + }, + { + "mountPath": "/csi", + "name": "driver-path" + } + ] + }, + { + "name": "resizer", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + } + ], + "storageClassAttrs": [ + { + "name": "allowVolumeExpansion", + "value": true + }, + { + "name": "volumeBindingMode", + "value": "Immediate" + } + ] + } +} diff --git a/driverconfig/powermax_v5_v118.json b/driverconfig/powermax_v5_v118.json new file mode 100644 index 0000000..ab197ba --- /dev/null +++ b/driverconfig/powermax_v5_v118.json @@ -0,0 +1,516 @@ +{ + "driverConfig": { + "controllerHA" : true, + "nodeTolerations": [ + { + "effect": "NoExecute", + "key": "node.kubernetes.io/memory-pressure", + "operator": "Exists" + }, + { + "effect": "NoExecute", + "key": "node.kubernetes.io/disk-pressure", + "operator": "Exists" + }, + { + "effect": "NoExecute", + "key": "node.kubernetes.io/network-unavailable", + "operator": "Exists" + } + ], + "driverEnvs": [ + { + "Name": "X_CSI_POWERMAX_DRIVER_NAME", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "csi-powermax.dellemc.com", + "DefaultValueForNode": "csi-powermax.dellemc.com" + }, + { + "Name": "CSI_ENDPOINT", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/var/run/csi/csi.sock", + "DefaultValueForNode": "unix:///var/lib/kubelet/plugins/powermax.emc.dell.com/csi_sock" + }, + { + "Name": "X_CSI_POWERMAX_ENDPOINT", + "Mandatory": true, + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_K8S_CLUSTER_PREFIX", + "Mandatory": true, + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_MODE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "controller", + "DefaultValueForNode": "node" + }, + { + "Name": "X_CSI_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_POWERMAX_SKIP_CERTIFICATE_VALIDATION", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_POWERMAX_USER", + "CSIEnvType": "EnvSecretReference", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "username/powermax-creds", + "DefaultValueForNode": "username/powermax-creds" + }, + { + "Name": "X_CSI_POWERMAX_PASSWORD", + "CSIEnvType": "EnvSecretReference", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "password/powermax-creds", + "DefaultValueForNode": "password/powermax-creds" + }, + { + "Name": "X_CSI_POWERMAX_ISCSI_CHAP_PASSWORD", + "CSIEnvType": "EnvSecretReference", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "chapsecret/powermax-creds" + }, + { + "Name": "X_CSI_POWERMAX_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "false", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_POWERMAX_PORTGROUPS", + "CSIEnvType": "List", + "SetForController": true, + "SetForNode": false, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_ISCSI_CHROOT", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/noderoot" + }, + { + "Name": "X_CSI_POWERMAX_ARRAYS", + "CSIEnvType": "List", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_GRPC_MAX_THREADS", + "CSIEnvType": "Int", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "4", + "DefaultValueForNode": "4" + }, + { + "Name": "X_CSI_ENABLE_BLOCK", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_TRANSPORT_PROTOCOL", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_POWERMAX_NODENAME", + "CSIEnvType": "EnvVarReferenceType", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "v1/spec.nodeName" + }, + { + "Name": "X_CSI_PRIVATE_MOUNT_DIR", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/powermax.emc.dell.com/disks" + }, + { + "Name": "X_CSI_POWERMAX_ISCSI_ENABLE_CHAP", + "CSIEnvType": "Boolean", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "false" + }, + { + "Name": "SSL_CERT_DIR", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/certs", + "DefaultValueForNode": "/certs" + }, + { + "Name": "X_CSI_IG_NODENAME_TEMPLATE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_IG_MODIFY_HOSTNAME", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "false", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_POWERMAX_PROXY_SERVICE_NAME", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "none", + "DefaultValueForNode": "none" + }, + { + "Name": "X_CSI_ReplicationContextPrefix", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": false, + "DefaultValueForController": "powermax/", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_ReplicationPrefix", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": false, + "DefaultValueForController": "replication.storage.dell.com/", + "DefaultValueForNode": "" + } + ], + "driverNodeVolumes": [ + { + "hostPath": { + "path": "/var/lib/kubelet/plugins_registry/", + "type": "DirectoryOrCreate" + }, + "name": "registration-dir" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/powermax.emc.dell.com", + "type": "DirectoryOrCreate" + }, + "name": "driver-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "type": "DirectoryOrCreate" + }, + "name": "volumedevices-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/pods", + "type": "Directory" + }, + "name": "pods-path" + }, + { + "hostPath": { + "path": "/dev", + "type": "Directory" + }, + "name": "dev" + }, + { + "hostPath": { + "path": "/sys", + "type": "Directory" + }, + "name": "sys" + }, + { + "hostPath": { + "path": "/", + "type": "Directory" + }, + "name": "noderoot" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "powermax-certs", + "optional": true + } + }, + { + "name": "dbus-socket", + "hostPath": { + "path": "/run/dbus/system_bus_socket", + "type": "Socket" + } + } + ], + "driverControllerVolumes": [ + { + "emptyDir": {}, + "name": "socket-dir" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "powermax-certs", + "optional": true + } + } + ], + "driverControllerVolumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + } + ], + "driverNodeVolumeMounts": [ + { + "mountPath": "/var/lib/kubelet/plugins/powermax.emc.dell.com", + "name": "driver-path" + }, + { + "mountPath": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "mountPropagation": "Bidirectional", + "name": "volumedevices-path" + }, + { + "mountPath": "/var/lib/kubelet/pods", + "mountPropagation": "Bidirectional", + "name": "pods-path" + }, + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/sys", + "name": "sys" + }, + { + "mountPath": "/noderoot", + "name": "noderoot" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "name": "dbus-socket", + "mountPath": "/run/dbus/system_bus_socket" + } + ], + "sidecarParams": [ + { + "name": "provisioner", + "args": [ + "--csi-address=$(ADDRESS)", + "--volume-name-uuid-length=10", + "--timeout=180s", + "--worker-threads=6", + "--v=5", + "--volume-name-prefix=pmax", + "--default-fstype=ext4", + "--leader-election", + "--feature-gates=Topology=true", + "--extra-create-metadata" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "attacher", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--timeout=180s", + "--worker-threads=6", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "snapshotter", + "args": [ + "--v=5", + "--snapshot-name-uuid-length=10", + "--timeout=180s", + "--snapshot-name-prefix=pmsn", + "--csi-address=$(ADDRESS)", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "resizer", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--timeout=180s", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "registrar", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--kubelet-registration-path=/var/lib/kubelet/plugins/powermax.emc.dell.com/csi_sock" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/csi/csi_sock" + }, + { + "name": "KUBE_NODE_NAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/registration", + "name": "registration-dir" + }, + { + "mountPath": "/csi", + "name": "driver-path" + } + ] + } + ], + "storageClassParams": [ + { + "Name": "SYMID", + "Mandatory": true + }, + { + "Name": "SRP", + "Mandatory": true + }, + { + "Name": "ServiceLevel" + }, + { + "Name": "FsType" + } + ], + "storageClassAttrs": [ + { + "name": "allowVolumeExpansion", + "value": true + }, + { + "name": "volumeBindingMode", + "value": "WaitForFirstConsumer" + } + ] + } +} diff --git a/driverconfig/powermax_v5_v119.json b/driverconfig/powermax_v5_v119.json new file mode 100644 index 0000000..08243e2 --- /dev/null +++ b/driverconfig/powermax_v5_v119.json @@ -0,0 +1,516 @@ +{ + "driverConfig": { + "controllerHA" : true, + "nodeTolerations": [ + { + "effect": "NoExecute", + "key": "node.kubernetes.io/memory-pressure", + "operator": "Exists" + }, + { + "effect": "NoExecute", + "key": "node.kubernetes.io/disk-pressure", + "operator": "Exists" + }, + { + "effect": "NoExecute", + "key": "node.kubernetes.io/network-unavailable", + "operator": "Exists" + } + ], + "driverEnvs": [ + { + "Name": "X_CSI_POWERMAX_DRIVER_NAME", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "csi-powermax.dellemc.com", + "DefaultValueForNode": "csi-powermax.dellemc.com" + }, + { + "Name": "CSI_ENDPOINT", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/var/run/csi/csi.sock", + "DefaultValueForNode": "unix:///var/lib/kubelet/plugins/powermax.emc.dell.com/csi_sock" + }, + { + "Name": "X_CSI_POWERMAX_ENDPOINT", + "Mandatory": true, + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_K8S_CLUSTER_PREFIX", + "Mandatory": true, + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_MODE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "controller", + "DefaultValueForNode": "node" + }, + { + "Name": "X_CSI_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_POWERMAX_SKIP_CERTIFICATE_VALIDATION", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_POWERMAX_USER", + "CSIEnvType": "EnvSecretReference", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "username/powermax-creds", + "DefaultValueForNode": "username/powermax-creds" + }, + { + "Name": "X_CSI_POWERMAX_PASSWORD", + "CSIEnvType": "EnvSecretReference", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "password/powermax-creds", + "DefaultValueForNode": "password/powermax-creds" + }, + { + "Name": "X_CSI_POWERMAX_ISCSI_CHAP_PASSWORD", + "CSIEnvType": "EnvSecretReference", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "chapsecret/powermax-creds" + }, + { + "Name": "X_CSI_POWERMAX_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "false", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_POWERMAX_PORTGROUPS", + "CSIEnvType": "List", + "SetForController": true, + "SetForNode": false, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_ISCSI_CHROOT", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/noderoot" + }, + { + "Name": "X_CSI_POWERMAX_ARRAYS", + "CSIEnvType": "List", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_GRPC_MAX_THREADS", + "CSIEnvType": "Int", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "4", + "DefaultValueForNode": "4" + }, + { + "Name": "X_CSI_ENABLE_BLOCK", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_TRANSPORT_PROTOCOL", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_POWERMAX_NODENAME", + "CSIEnvType": "EnvVarReferenceType", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "v1/spec.nodeName" + }, + { + "Name": "X_CSI_PRIVATE_MOUNT_DIR", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/powermax.emc.dell.com/disks" + }, + { + "Name": "X_CSI_POWERMAX_ISCSI_ENABLE_CHAP", + "CSIEnvType": "Boolean", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "false" + }, + { + "Name": "SSL_CERT_DIR", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/certs", + "DefaultValueForNode": "/certs" + }, + { + "Name": "X_CSI_IG_NODENAME_TEMPLATE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_IG_MODIFY_HOSTNAME", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "false", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_POWERMAX_PROXY_SERVICE_NAME", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "none", + "DefaultValueForNode": "none" + }, + { + "Name": "X_CSI_ReplicationContextPrefix", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": false, + "DefaultValueForController": "powermax/", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_ReplicationPrefix", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": false, + "DefaultValueForController": "replication.storage.dell.com/", + "DefaultValueForNode": "" + } + ], + "driverNodeVolumes": [ + { + "hostPath": { + "path": "/var/lib/kubelet/plugins_registry/", + "type": "DirectoryOrCreate" + }, + "name": "registration-dir" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/powermax.emc.dell.com", + "type": "DirectoryOrCreate" + }, + "name": "driver-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "type": "DirectoryOrCreate" + }, + "name": "volumedevices-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/pods", + "type": "Directory" + }, + "name": "pods-path" + }, + { + "hostPath": { + "path": "/dev", + "type": "Directory" + }, + "name": "dev" + }, + { + "hostPath": { + "path": "/sys", + "type": "Directory" + }, + "name": "sys" + }, + { + "hostPath": { + "path": "/", + "type": "Directory" + }, + "name": "noderoot" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "powermax-certs", + "optional": true + } + }, + { + "name": "dbus-socket", + "hostPath": { + "path": "/run/dbus/system_bus_socket", + "type": "Socket" + } + } + ], + "driverControllerVolumes": [ + { + "emptyDir": {}, + "name": "socket-dir" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "powermax-certs", + "optional": true + } + } + ], + "driverControllerVolumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + } + ], + "driverNodeVolumeMounts": [ + { + "mountPath": "/var/lib/kubelet/plugins/powermax.emc.dell.com", + "name": "driver-path" + }, + { + "mountPath": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "mountPropagation": "Bidirectional", + "name": "volumedevices-path" + }, + { + "mountPath": "/var/lib/kubelet/pods", + "mountPropagation": "Bidirectional", + "name": "pods-path" + }, + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/sys", + "name": "sys" + }, + { + "mountPath": "/noderoot", + "name": "noderoot" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "name": "dbus-socket", + "mountPath": "/run/dbus/system_bus_socket" + } + ], + "sidecarParams": [ + { + "name": "provisioner", + "args": [ + "--csi-address=$(ADDRESS)", + "--volume-name-uuid-length=10", + "--timeout=180s", + "--worker-threads=6", + "--v=5", + "--volume-name-prefix=pmax", + "--default-fstype=ext4", + "--leader-election", + "--extra-create-metadata", + "--feature-gates=Topology=true" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "attacher", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--timeout=180s", + "--worker-threads=6", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "snapshotter", + "args": [ + "--v=5", + "--snapshot-name-uuid-length=10", + "--timeout=180s", + "--snapshot-name-prefix=pmsn", + "--csi-address=$(ADDRESS)", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "resizer", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--timeout=180s", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "registrar", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--kubelet-registration-path=/var/lib/kubelet/plugins/powermax.emc.dell.com/csi_sock" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/csi/csi_sock" + }, + { + "name": "KUBE_NODE_NAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/registration", + "name": "registration-dir" + }, + { + "mountPath": "/csi", + "name": "driver-path" + } + ] + } + ], + "storageClassParams": [ + { + "Name": "SYMID", + "Mandatory": true + }, + { + "Name": "SRP", + "Mandatory": true + }, + { + "Name": "ServiceLevel" + }, + { + "Name": "FsType" + } + ], + "storageClassAttrs": [ + { + "name": "allowVolumeExpansion", + "value": true + }, + { + "name": "volumeBindingMode", + "value": "WaitForFirstConsumer" + } + ] + } +} diff --git a/driverconfig/powermax_v5_v120.json b/driverconfig/powermax_v5_v120.json new file mode 100644 index 0000000..08243e2 --- /dev/null +++ b/driverconfig/powermax_v5_v120.json @@ -0,0 +1,516 @@ +{ + "driverConfig": { + "controllerHA" : true, + "nodeTolerations": [ + { + "effect": "NoExecute", + "key": "node.kubernetes.io/memory-pressure", + "operator": "Exists" + }, + { + "effect": "NoExecute", + "key": "node.kubernetes.io/disk-pressure", + "operator": "Exists" + }, + { + "effect": "NoExecute", + "key": "node.kubernetes.io/network-unavailable", + "operator": "Exists" + } + ], + "driverEnvs": [ + { + "Name": "X_CSI_POWERMAX_DRIVER_NAME", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "csi-powermax.dellemc.com", + "DefaultValueForNode": "csi-powermax.dellemc.com" + }, + { + "Name": "CSI_ENDPOINT", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/var/run/csi/csi.sock", + "DefaultValueForNode": "unix:///var/lib/kubelet/plugins/powermax.emc.dell.com/csi_sock" + }, + { + "Name": "X_CSI_POWERMAX_ENDPOINT", + "Mandatory": true, + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_K8S_CLUSTER_PREFIX", + "Mandatory": true, + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_MODE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "controller", + "DefaultValueForNode": "node" + }, + { + "Name": "X_CSI_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_POWERMAX_SKIP_CERTIFICATE_VALIDATION", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_POWERMAX_USER", + "CSIEnvType": "EnvSecretReference", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "username/powermax-creds", + "DefaultValueForNode": "username/powermax-creds" + }, + { + "Name": "X_CSI_POWERMAX_PASSWORD", + "CSIEnvType": "EnvSecretReference", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "password/powermax-creds", + "DefaultValueForNode": "password/powermax-creds" + }, + { + "Name": "X_CSI_POWERMAX_ISCSI_CHAP_PASSWORD", + "CSIEnvType": "EnvSecretReference", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "chapsecret/powermax-creds" + }, + { + "Name": "X_CSI_POWERMAX_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "false", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_POWERMAX_PORTGROUPS", + "CSIEnvType": "List", + "SetForController": true, + "SetForNode": false, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_ISCSI_CHROOT", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/noderoot" + }, + { + "Name": "X_CSI_POWERMAX_ARRAYS", + "CSIEnvType": "List", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_GRPC_MAX_THREADS", + "CSIEnvType": "Int", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "4", + "DefaultValueForNode": "4" + }, + { + "Name": "X_CSI_ENABLE_BLOCK", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_TRANSPORT_PROTOCOL", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_POWERMAX_NODENAME", + "CSIEnvType": "EnvVarReferenceType", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "v1/spec.nodeName" + }, + { + "Name": "X_CSI_PRIVATE_MOUNT_DIR", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/powermax.emc.dell.com/disks" + }, + { + "Name": "X_CSI_POWERMAX_ISCSI_ENABLE_CHAP", + "CSIEnvType": "Boolean", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "false" + }, + { + "Name": "SSL_CERT_DIR", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/certs", + "DefaultValueForNode": "/certs" + }, + { + "Name": "X_CSI_IG_NODENAME_TEMPLATE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_IG_MODIFY_HOSTNAME", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "false", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_POWERMAX_PROXY_SERVICE_NAME", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "none", + "DefaultValueForNode": "none" + }, + { + "Name": "X_CSI_ReplicationContextPrefix", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": false, + "DefaultValueForController": "powermax/", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_ReplicationPrefix", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": false, + "DefaultValueForController": "replication.storage.dell.com/", + "DefaultValueForNode": "" + } + ], + "driverNodeVolumes": [ + { + "hostPath": { + "path": "/var/lib/kubelet/plugins_registry/", + "type": "DirectoryOrCreate" + }, + "name": "registration-dir" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/powermax.emc.dell.com", + "type": "DirectoryOrCreate" + }, + "name": "driver-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "type": "DirectoryOrCreate" + }, + "name": "volumedevices-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/pods", + "type": "Directory" + }, + "name": "pods-path" + }, + { + "hostPath": { + "path": "/dev", + "type": "Directory" + }, + "name": "dev" + }, + { + "hostPath": { + "path": "/sys", + "type": "Directory" + }, + "name": "sys" + }, + { + "hostPath": { + "path": "/", + "type": "Directory" + }, + "name": "noderoot" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "powermax-certs", + "optional": true + } + }, + { + "name": "dbus-socket", + "hostPath": { + "path": "/run/dbus/system_bus_socket", + "type": "Socket" + } + } + ], + "driverControllerVolumes": [ + { + "emptyDir": {}, + "name": "socket-dir" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "powermax-certs", + "optional": true + } + } + ], + "driverControllerVolumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + } + ], + "driverNodeVolumeMounts": [ + { + "mountPath": "/var/lib/kubelet/plugins/powermax.emc.dell.com", + "name": "driver-path" + }, + { + "mountPath": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "mountPropagation": "Bidirectional", + "name": "volumedevices-path" + }, + { + "mountPath": "/var/lib/kubelet/pods", + "mountPropagation": "Bidirectional", + "name": "pods-path" + }, + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/sys", + "name": "sys" + }, + { + "mountPath": "/noderoot", + "name": "noderoot" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "name": "dbus-socket", + "mountPath": "/run/dbus/system_bus_socket" + } + ], + "sidecarParams": [ + { + "name": "provisioner", + "args": [ + "--csi-address=$(ADDRESS)", + "--volume-name-uuid-length=10", + "--timeout=180s", + "--worker-threads=6", + "--v=5", + "--volume-name-prefix=pmax", + "--default-fstype=ext4", + "--leader-election", + "--extra-create-metadata", + "--feature-gates=Topology=true" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "attacher", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--timeout=180s", + "--worker-threads=6", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "snapshotter", + "args": [ + "--v=5", + "--snapshot-name-uuid-length=10", + "--timeout=180s", + "--snapshot-name-prefix=pmsn", + "--csi-address=$(ADDRESS)", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "resizer", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--timeout=180s", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "registrar", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--kubelet-registration-path=/var/lib/kubelet/plugins/powermax.emc.dell.com/csi_sock" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/csi/csi_sock" + }, + { + "name": "KUBE_NODE_NAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/registration", + "name": "registration-dir" + }, + { + "mountPath": "/csi", + "name": "driver-path" + } + ] + } + ], + "storageClassParams": [ + { + "Name": "SYMID", + "Mandatory": true + }, + { + "Name": "SRP", + "Mandatory": true + }, + { + "Name": "ServiceLevel" + }, + { + "Name": "FsType" + } + ], + "storageClassAttrs": [ + { + "name": "allowVolumeExpansion", + "value": true + }, + { + "name": "volumeBindingMode", + "value": "WaitForFirstConsumer" + } + ] + } +} diff --git a/driverconfig/powerstore_v3_v118.json b/driverconfig/powerstore_v3_v118.json new file mode 100644 index 0000000..9acea72 --- /dev/null +++ b/driverconfig/powerstore_v3_v118.json @@ -0,0 +1,423 @@ +{ + "driverConfig": { + "controllerHA": true, + "enableEphemeralVolumes": true, + "driverEnvs": [ + { + "Name": "CSI_ENDPOINT", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/var/run/csi/csi.sock", + "DefaultValueForNode": "unix:///var/lib/kubelet/plugins/csi-powerstore.dellemc.com/csi_sock" + }, + { + "Name": "X_CSI_DRIVER_NAME", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "csi-powerstore.dellemc.com", + "DefaultValueForNode": "csi-powerstore.dellemc.com" + }, + { + "Name": "X_CSI_POWERSTORE_TMP_DIR", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/csi-powerstore.dellemc.com/tmp" + }, + { + "Name": "X_CSI_POWERSTORE_NODENAME", + "CSIEnvType": "EnvVarReferenceType", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "v1/spec.nodeName" + }, + { + "Name": "X_CSI_POWERSTORE_NODE_NAME_PREFIX", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "csi-node" + }, + { + "Name": "X_CSI_POWERSTORE_NODE_ID_PATH", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/node-id" + }, + { + "Name": "X_CSI_POWERSTORE_NODE_CHROOT_PATH", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/noderoot" + }, + { + "Name": "X_CSI_FC_PORTS_FILTER_FILE_PATH", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/etc/fc-ports-filter" + }, + { + "Name": "X_CSI_DEBUG", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_MODE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "controller", + "DefaultValueForNode": "node" + }, + { + "Name": "X_CSI_POWERSTORE_ENABLE_CHAP", + "CSIEnvType": "Boolean", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_POWERSTORE_CONFIG_PATH", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/powerstore-config/config", + "DefaultValueForNode": "/powerstore-config/config" + } + ], + "driverNodeVolumes": [ + { + "hostPath": { + "path": "/var/lib/kubelet/plugins_registry/", + "type": "DirectoryOrCreate" + }, + "name": "registration-dir" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/csi-powerstore.dellemc.com", + "type": "DirectoryOrCreate" + }, + "name": "driver-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/kubernetes.io/csi", + "type": "DirectoryOrCreate" + }, + "name": "csi-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/pods", + "type": "Directory" + }, + "name": "pods-path" + }, + { + "hostPath": { + "path": "/dev", + "type": "Directory" + }, + "name": "dev" + }, + { + "hostPath": { + "path": "/sys", + "type": "Directory" + }, + "name": "sys" + }, + { + "hostPath": { + "path": "/run", + "type": "Directory" + }, + "name": "run" + }, + { + "hostPath": { + "path": "/etc/iscsi", + "type": "DirectoryOrCreate" + }, + "name": "etciscsi" + }, + { + "hostPath": { + "path": "/", + "type": "Directory" + }, + "name": "noderoot" + }, + { + "hostPath": { + "path": "/etc/machine-id", + "type": "File" + }, + "name": "node-id" + }, + { + "hostPath": { + "path": "/etc/multipath.conf", + "type": "FileOrCreate" + }, + "name": "mpath" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "powerstore-certs", + "optional": true + } + }, + { + "name": "powerstore-config", + "secret": { + "defaultMode": 420, + "secretName": "powerstore-config", + "optional": false + } + } + ], + "driverControllerVolumes": [ + { + "emptyDir": {}, + "name": "socket-dir" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "powerstore-certs", + "optional": true + } + }, + { + "name": "powerstore-config", + "secret": { + "defaultMode": 420, + "secretName": "powerstore-config", + "optional": false + } + } + ], + "driverControllerVolumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/powerstore-config", + "name": "powerstore-config", + "readOnly": true + } + ], + "driverNodeVolumeMounts": [ + { + "mountPath": "/var/lib/kubelet/plugins/csi-powerstore.dellemc.com", + "name": "driver-path" + }, + { + "mountPath": "/var/lib/kubelet/plugins/kubernetes.io/csi", + "mountPropagation": "Bidirectional", + "name": "csi-path" + }, + { + "mountPath": "/var/lib/kubelet/pods", + "mountPropagation": "Bidirectional", + "name": "pods-path" + }, + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/sys", + "name": "sys" + }, + { + "mountPath": "/run", + "name": "run" + }, + { + "mountPath": "/etc/iscsi", + "name": "etciscsi" + }, + { + "mountPath": "/noderoot", + "name": "noderoot" + }, + { + "mountPath": "/node-id", + "name": "node-id" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/etc/multipath.conf", + "name": "mpath" + }, + { + "mountPath": "/powerstore-config", + "name": "powerstore-config", + "readOnly": true + } + ], + "sidecarParams": [ + { + "name": "provisioner", + "args": [ + "--csi-address=$(ADDRESS)", + "--volume-name-uuid-length=10", + "--v=5", + "--volume-name-prefix=csi-pstore", + "--leader-election", + "--default-fstype=ext4", + "--extra-create-metadata" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "attacher", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--leader-election", + "--worker-threads=130", + "--resync=10s", + "--timeout=130s" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "resizer", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "snapshotter", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "registrar", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--kubelet-registration-path=/var/lib/kubelet/plugins/csi-powerstore.dellemc.com/csi_sock" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/csi/csi_sock" + }, + { + "name": "KUBE_NODE_NAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/registration", + "name": "registration-dir" + }, + { + "mountPath": "/csi", + "name": "driver-path" + } + ] + } + ], + "storageClassAttrs": [ + { + "name": "allowVolumeExpansion", + "value": true + }, + { + "name": "volumeBindingMode", + "value": "WaitForFirstConsumer" + } + ] + } +} \ No newline at end of file diff --git a/driverconfig/powerstore_v3_v119.json b/driverconfig/powerstore_v3_v119.json new file mode 100644 index 0000000..9acea72 --- /dev/null +++ b/driverconfig/powerstore_v3_v119.json @@ -0,0 +1,423 @@ +{ + "driverConfig": { + "controllerHA": true, + "enableEphemeralVolumes": true, + "driverEnvs": [ + { + "Name": "CSI_ENDPOINT", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/var/run/csi/csi.sock", + "DefaultValueForNode": "unix:///var/lib/kubelet/plugins/csi-powerstore.dellemc.com/csi_sock" + }, + { + "Name": "X_CSI_DRIVER_NAME", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "csi-powerstore.dellemc.com", + "DefaultValueForNode": "csi-powerstore.dellemc.com" + }, + { + "Name": "X_CSI_POWERSTORE_TMP_DIR", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/csi-powerstore.dellemc.com/tmp" + }, + { + "Name": "X_CSI_POWERSTORE_NODENAME", + "CSIEnvType": "EnvVarReferenceType", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "v1/spec.nodeName" + }, + { + "Name": "X_CSI_POWERSTORE_NODE_NAME_PREFIX", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "csi-node" + }, + { + "Name": "X_CSI_POWERSTORE_NODE_ID_PATH", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/node-id" + }, + { + "Name": "X_CSI_POWERSTORE_NODE_CHROOT_PATH", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/noderoot" + }, + { + "Name": "X_CSI_FC_PORTS_FILTER_FILE_PATH", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/etc/fc-ports-filter" + }, + { + "Name": "X_CSI_DEBUG", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_MODE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "controller", + "DefaultValueForNode": "node" + }, + { + "Name": "X_CSI_POWERSTORE_ENABLE_CHAP", + "CSIEnvType": "Boolean", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_POWERSTORE_CONFIG_PATH", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/powerstore-config/config", + "DefaultValueForNode": "/powerstore-config/config" + } + ], + "driverNodeVolumes": [ + { + "hostPath": { + "path": "/var/lib/kubelet/plugins_registry/", + "type": "DirectoryOrCreate" + }, + "name": "registration-dir" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/csi-powerstore.dellemc.com", + "type": "DirectoryOrCreate" + }, + "name": "driver-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/kubernetes.io/csi", + "type": "DirectoryOrCreate" + }, + "name": "csi-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/pods", + "type": "Directory" + }, + "name": "pods-path" + }, + { + "hostPath": { + "path": "/dev", + "type": "Directory" + }, + "name": "dev" + }, + { + "hostPath": { + "path": "/sys", + "type": "Directory" + }, + "name": "sys" + }, + { + "hostPath": { + "path": "/run", + "type": "Directory" + }, + "name": "run" + }, + { + "hostPath": { + "path": "/etc/iscsi", + "type": "DirectoryOrCreate" + }, + "name": "etciscsi" + }, + { + "hostPath": { + "path": "/", + "type": "Directory" + }, + "name": "noderoot" + }, + { + "hostPath": { + "path": "/etc/machine-id", + "type": "File" + }, + "name": "node-id" + }, + { + "hostPath": { + "path": "/etc/multipath.conf", + "type": "FileOrCreate" + }, + "name": "mpath" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "powerstore-certs", + "optional": true + } + }, + { + "name": "powerstore-config", + "secret": { + "defaultMode": 420, + "secretName": "powerstore-config", + "optional": false + } + } + ], + "driverControllerVolumes": [ + { + "emptyDir": {}, + "name": "socket-dir" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "powerstore-certs", + "optional": true + } + }, + { + "name": "powerstore-config", + "secret": { + "defaultMode": 420, + "secretName": "powerstore-config", + "optional": false + } + } + ], + "driverControllerVolumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/powerstore-config", + "name": "powerstore-config", + "readOnly": true + } + ], + "driverNodeVolumeMounts": [ + { + "mountPath": "/var/lib/kubelet/plugins/csi-powerstore.dellemc.com", + "name": "driver-path" + }, + { + "mountPath": "/var/lib/kubelet/plugins/kubernetes.io/csi", + "mountPropagation": "Bidirectional", + "name": "csi-path" + }, + { + "mountPath": "/var/lib/kubelet/pods", + "mountPropagation": "Bidirectional", + "name": "pods-path" + }, + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/sys", + "name": "sys" + }, + { + "mountPath": "/run", + "name": "run" + }, + { + "mountPath": "/etc/iscsi", + "name": "etciscsi" + }, + { + "mountPath": "/noderoot", + "name": "noderoot" + }, + { + "mountPath": "/node-id", + "name": "node-id" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/etc/multipath.conf", + "name": "mpath" + }, + { + "mountPath": "/powerstore-config", + "name": "powerstore-config", + "readOnly": true + } + ], + "sidecarParams": [ + { + "name": "provisioner", + "args": [ + "--csi-address=$(ADDRESS)", + "--volume-name-uuid-length=10", + "--v=5", + "--volume-name-prefix=csi-pstore", + "--leader-election", + "--default-fstype=ext4", + "--extra-create-metadata" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "attacher", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--leader-election", + "--worker-threads=130", + "--resync=10s", + "--timeout=130s" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "resizer", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "snapshotter", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "registrar", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--kubelet-registration-path=/var/lib/kubelet/plugins/csi-powerstore.dellemc.com/csi_sock" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/csi/csi_sock" + }, + { + "name": "KUBE_NODE_NAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/registration", + "name": "registration-dir" + }, + { + "mountPath": "/csi", + "name": "driver-path" + } + ] + } + ], + "storageClassAttrs": [ + { + "name": "allowVolumeExpansion", + "value": true + }, + { + "name": "volumeBindingMode", + "value": "WaitForFirstConsumer" + } + ] + } +} \ No newline at end of file diff --git a/driverconfig/powerstore_v3_v120.json b/driverconfig/powerstore_v3_v120.json new file mode 100644 index 0000000..9acea72 --- /dev/null +++ b/driverconfig/powerstore_v3_v120.json @@ -0,0 +1,423 @@ +{ + "driverConfig": { + "controllerHA": true, + "enableEphemeralVolumes": true, + "driverEnvs": [ + { + "Name": "CSI_ENDPOINT", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/var/run/csi/csi.sock", + "DefaultValueForNode": "unix:///var/lib/kubelet/plugins/csi-powerstore.dellemc.com/csi_sock" + }, + { + "Name": "X_CSI_DRIVER_NAME", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "csi-powerstore.dellemc.com", + "DefaultValueForNode": "csi-powerstore.dellemc.com" + }, + { + "Name": "X_CSI_POWERSTORE_TMP_DIR", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/csi-powerstore.dellemc.com/tmp" + }, + { + "Name": "X_CSI_POWERSTORE_NODENAME", + "CSIEnvType": "EnvVarReferenceType", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "v1/spec.nodeName" + }, + { + "Name": "X_CSI_POWERSTORE_NODE_NAME_PREFIX", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "csi-node" + }, + { + "Name": "X_CSI_POWERSTORE_NODE_ID_PATH", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/node-id" + }, + { + "Name": "X_CSI_POWERSTORE_NODE_CHROOT_PATH", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/noderoot" + }, + { + "Name": "X_CSI_FC_PORTS_FILTER_FILE_PATH", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/etc/fc-ports-filter" + }, + { + "Name": "X_CSI_DEBUG", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_MODE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "controller", + "DefaultValueForNode": "node" + }, + { + "Name": "X_CSI_POWERSTORE_ENABLE_CHAP", + "CSIEnvType": "Boolean", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_POWERSTORE_CONFIG_PATH", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/powerstore-config/config", + "DefaultValueForNode": "/powerstore-config/config" + } + ], + "driverNodeVolumes": [ + { + "hostPath": { + "path": "/var/lib/kubelet/plugins_registry/", + "type": "DirectoryOrCreate" + }, + "name": "registration-dir" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/csi-powerstore.dellemc.com", + "type": "DirectoryOrCreate" + }, + "name": "driver-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/kubernetes.io/csi", + "type": "DirectoryOrCreate" + }, + "name": "csi-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/pods", + "type": "Directory" + }, + "name": "pods-path" + }, + { + "hostPath": { + "path": "/dev", + "type": "Directory" + }, + "name": "dev" + }, + { + "hostPath": { + "path": "/sys", + "type": "Directory" + }, + "name": "sys" + }, + { + "hostPath": { + "path": "/run", + "type": "Directory" + }, + "name": "run" + }, + { + "hostPath": { + "path": "/etc/iscsi", + "type": "DirectoryOrCreate" + }, + "name": "etciscsi" + }, + { + "hostPath": { + "path": "/", + "type": "Directory" + }, + "name": "noderoot" + }, + { + "hostPath": { + "path": "/etc/machine-id", + "type": "File" + }, + "name": "node-id" + }, + { + "hostPath": { + "path": "/etc/multipath.conf", + "type": "FileOrCreate" + }, + "name": "mpath" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "powerstore-certs", + "optional": true + } + }, + { + "name": "powerstore-config", + "secret": { + "defaultMode": 420, + "secretName": "powerstore-config", + "optional": false + } + } + ], + "driverControllerVolumes": [ + { + "emptyDir": {}, + "name": "socket-dir" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "powerstore-certs", + "optional": true + } + }, + { + "name": "powerstore-config", + "secret": { + "defaultMode": 420, + "secretName": "powerstore-config", + "optional": false + } + } + ], + "driverControllerVolumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/powerstore-config", + "name": "powerstore-config", + "readOnly": true + } + ], + "driverNodeVolumeMounts": [ + { + "mountPath": "/var/lib/kubelet/plugins/csi-powerstore.dellemc.com", + "name": "driver-path" + }, + { + "mountPath": "/var/lib/kubelet/plugins/kubernetes.io/csi", + "mountPropagation": "Bidirectional", + "name": "csi-path" + }, + { + "mountPath": "/var/lib/kubelet/pods", + "mountPropagation": "Bidirectional", + "name": "pods-path" + }, + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/sys", + "name": "sys" + }, + { + "mountPath": "/run", + "name": "run" + }, + { + "mountPath": "/etc/iscsi", + "name": "etciscsi" + }, + { + "mountPath": "/noderoot", + "name": "noderoot" + }, + { + "mountPath": "/node-id", + "name": "node-id" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/etc/multipath.conf", + "name": "mpath" + }, + { + "mountPath": "/powerstore-config", + "name": "powerstore-config", + "readOnly": true + } + ], + "sidecarParams": [ + { + "name": "provisioner", + "args": [ + "--csi-address=$(ADDRESS)", + "--volume-name-uuid-length=10", + "--v=5", + "--volume-name-prefix=csi-pstore", + "--leader-election", + "--default-fstype=ext4", + "--extra-create-metadata" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "attacher", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--leader-election", + "--worker-threads=130", + "--resync=10s", + "--timeout=130s" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "resizer", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "snapshotter", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "registrar", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--kubelet-registration-path=/var/lib/kubelet/plugins/csi-powerstore.dellemc.com/csi_sock" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/csi/csi_sock" + }, + { + "name": "KUBE_NODE_NAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/registration", + "name": "registration-dir" + }, + { + "mountPath": "/csi", + "name": "driver-path" + } + ] + } + ], + "storageClassAttrs": [ + { + "name": "allowVolumeExpansion", + "value": true + }, + { + "name": "volumeBindingMode", + "value": "WaitForFirstConsumer" + } + ] + } +} \ No newline at end of file diff --git a/driverconfig/unity_v4_v118.json b/driverconfig/unity_v4_v118.json new file mode 100644 index 0000000..b7c5c68 --- /dev/null +++ b/driverconfig/unity_v4_v118.json @@ -0,0 +1,413 @@ +{ + "driverConfig": { + "controllerHA": true, + "enableEphemeralVolumes": true, + "driverEnvs": [ + { + "Name": "CSI_ENDPOINT", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/var/run/csi/csi.sock", + "DefaultValueForNode": "unix:///var/lib/kubelet/plugins/unity.emc.dell.com/csi_sock" + }, + { + "Name": "X_CSI_MODE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "controller", + "DefaultValueForNode": "node" + }, + { + "Name": "X_CSI_UNITY_AUTOPROBE", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "GOUNITY_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "false", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_PRIVATE_MOUNT_DIR", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/unity.emc.dell.com/disks" + }, + { + "Name": "X_CSI_EPHEMERAL_STAGING_PATH", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/kubernetes.io/csi/pv/" + }, + { + "Name": "X_CSI_ISCSI_CHROOT", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/noderoot" + }, + { + "Name": "X_CSI_UNITY_NODENAME", + "CSIEnvType": "EnvVarReferenceType", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "v1/spec.nodeName" + }, + { + "Name": "X_CSI_UNITY_NODENAME_PREFIX", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "csi-node" + }, + { + "Name": "SSL_CERT_DIR", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/certs", + "DefaultValueForNode": "/certs" + }, + { + "Name": "X_CSI_UNITY_SYNC_NODEINFO_INTERVAL", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "15" + }, + { + "Name": "X_CSI_UNITY_ALLOW_MULTI_POD_ACCESS", + "CSIEnvType": "Boolean", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "false", + "DefaultValueForNode": "false" + } + ], + "driverArgs": [ + "--driver-name=csi-unity.dellemc.com", + "--driver-config=/unity-config/config" + ], + "driverNodeVolumes": [ + { + "hostPath": { + "path": "/var/lib/kubelet/plugins_registry/", + "type": "DirectoryOrCreate" + }, + "name": "registration-dir" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/unity.emc.dell.com", + "type": "DirectoryOrCreate" + }, + "name": "driver-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/kubernetes.io/csi", + "type": "DirectoryOrCreate" + }, + "name": "volumedevices-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/pods", + "type": "Directory" + }, + "name": "pods-path" + }, + { + "hostPath": { + "path": "/dev", + "type": "Directory" + }, + "name": "dev" + }, + { + "hostPath": { + "path": "/", + "type": "Directory" + }, + "name": "noderoot" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "unity-certs", + "optional": true + } + }, + { + "name": "unity-config", + "secret": { + "defaultMode": 420, + "secretName": "unity-creds", + "optional": true + } + } + ], + "driverControllerVolumes": [ + { + "emptyDir": {}, + "name": "socket-dir" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "unity-certs", + "optional": true + } + }, + { + "name": "unity-config", + "secret": { + "defaultMode": 420, + "secretName": "unity-creds", + "optional": true + } + } + ], + "driverControllerVolumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/unity-config", + "name": "unity-config", + "readOnly": true + } + ], + "driverNodeVolumeMounts": [ + { + "mountPath": "/var/lib/kubelet/plugins/unity.emc.dell.com", + "name": "driver-path" + }, + { + "mountPath": "/var/lib/kubelet/plugins/kubernetes.io/csi", + "mountPropagation": "Bidirectional", + "name": "volumedevices-path" + }, + { + "mountPath": "/var/lib/kubelet/pods", + "mountPropagation": "Bidirectional", + "name": "pods-path" + }, + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/noderoot", + "name": "noderoot" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/unity-config", + "name": "unity-config", + "readOnly": true + } + ], + "sidecarParams": [ + { + "name": "provisioner", + "args": [ + "--csi-address=$(ADDRESS)", + "--timeout=120s", + "--volume-name-uuid-length=10", + "--timeout=180s", + "--worker-threads=6", + "--v=5", + "--volume-name-prefix=csiunity", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "attacher", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--timeout=180s", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "snapshotter", + "args": [ + "--v=5", + "--snapshot-name-uuid-length=10", + "--timeout=360s", + "--csi-address=$(ADDRESS)", + "--snapshot-name-prefix=csi-snap", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "registrar", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--kubelet-registration-path=/var/lib/kubelet/plugins/unity.emc.dell.com/csi_sock" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/csi/csi_sock" + }, + { + "name": "KUBE_NODE_NAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/registration", + "name": "registration-dir" + }, + { + "mountPath": "/csi", + "name": "driver-path" + } + ] + }, + { + "name": "resizer", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + } + ], + "storageClassParams": [ + { + "Name": "storagePool", + "Mandatory": true + }, + { + "Name": "arrayId", + "Mandatory": true + }, + { + "Name": "FsType", + "Mandatory": false + }, + { + "Name": "thinProvisioned" + }, + { + "Name": "isDataReductionEnabled" + }, + { + "Name": "tieringPolicy" + }, + { + "Name": "hostIOLimitName" + }, + { + "Name": "hostIoSize", + "Mandatory": false + } + ], + "storageClassAttrs": [ + { + "name": "allowVolumeExpansion", + "value": true + }, + { + "name": "volumeBindingMode", + "value": "Immediate" + } + ] + } + } + \ No newline at end of file diff --git a/driverconfig/unity_v4_v119.json b/driverconfig/unity_v4_v119.json new file mode 100644 index 0000000..b7c5c68 --- /dev/null +++ b/driverconfig/unity_v4_v119.json @@ -0,0 +1,413 @@ +{ + "driverConfig": { + "controllerHA": true, + "enableEphemeralVolumes": true, + "driverEnvs": [ + { + "Name": "CSI_ENDPOINT", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/var/run/csi/csi.sock", + "DefaultValueForNode": "unix:///var/lib/kubelet/plugins/unity.emc.dell.com/csi_sock" + }, + { + "Name": "X_CSI_MODE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "controller", + "DefaultValueForNode": "node" + }, + { + "Name": "X_CSI_UNITY_AUTOPROBE", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "GOUNITY_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "false", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_PRIVATE_MOUNT_DIR", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/unity.emc.dell.com/disks" + }, + { + "Name": "X_CSI_EPHEMERAL_STAGING_PATH", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/kubernetes.io/csi/pv/" + }, + { + "Name": "X_CSI_ISCSI_CHROOT", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/noderoot" + }, + { + "Name": "X_CSI_UNITY_NODENAME", + "CSIEnvType": "EnvVarReferenceType", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "v1/spec.nodeName" + }, + { + "Name": "X_CSI_UNITY_NODENAME_PREFIX", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "csi-node" + }, + { + "Name": "SSL_CERT_DIR", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/certs", + "DefaultValueForNode": "/certs" + }, + { + "Name": "X_CSI_UNITY_SYNC_NODEINFO_INTERVAL", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "15" + }, + { + "Name": "X_CSI_UNITY_ALLOW_MULTI_POD_ACCESS", + "CSIEnvType": "Boolean", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "false", + "DefaultValueForNode": "false" + } + ], + "driverArgs": [ + "--driver-name=csi-unity.dellemc.com", + "--driver-config=/unity-config/config" + ], + "driverNodeVolumes": [ + { + "hostPath": { + "path": "/var/lib/kubelet/plugins_registry/", + "type": "DirectoryOrCreate" + }, + "name": "registration-dir" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/unity.emc.dell.com", + "type": "DirectoryOrCreate" + }, + "name": "driver-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/kubernetes.io/csi", + "type": "DirectoryOrCreate" + }, + "name": "volumedevices-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/pods", + "type": "Directory" + }, + "name": "pods-path" + }, + { + "hostPath": { + "path": "/dev", + "type": "Directory" + }, + "name": "dev" + }, + { + "hostPath": { + "path": "/", + "type": "Directory" + }, + "name": "noderoot" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "unity-certs", + "optional": true + } + }, + { + "name": "unity-config", + "secret": { + "defaultMode": 420, + "secretName": "unity-creds", + "optional": true + } + } + ], + "driverControllerVolumes": [ + { + "emptyDir": {}, + "name": "socket-dir" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "unity-certs", + "optional": true + } + }, + { + "name": "unity-config", + "secret": { + "defaultMode": 420, + "secretName": "unity-creds", + "optional": true + } + } + ], + "driverControllerVolumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/unity-config", + "name": "unity-config", + "readOnly": true + } + ], + "driverNodeVolumeMounts": [ + { + "mountPath": "/var/lib/kubelet/plugins/unity.emc.dell.com", + "name": "driver-path" + }, + { + "mountPath": "/var/lib/kubelet/plugins/kubernetes.io/csi", + "mountPropagation": "Bidirectional", + "name": "volumedevices-path" + }, + { + "mountPath": "/var/lib/kubelet/pods", + "mountPropagation": "Bidirectional", + "name": "pods-path" + }, + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/noderoot", + "name": "noderoot" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/unity-config", + "name": "unity-config", + "readOnly": true + } + ], + "sidecarParams": [ + { + "name": "provisioner", + "args": [ + "--csi-address=$(ADDRESS)", + "--timeout=120s", + "--volume-name-uuid-length=10", + "--timeout=180s", + "--worker-threads=6", + "--v=5", + "--volume-name-prefix=csiunity", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "attacher", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--timeout=180s", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "snapshotter", + "args": [ + "--v=5", + "--snapshot-name-uuid-length=10", + "--timeout=360s", + "--csi-address=$(ADDRESS)", + "--snapshot-name-prefix=csi-snap", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "registrar", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--kubelet-registration-path=/var/lib/kubelet/plugins/unity.emc.dell.com/csi_sock" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/csi/csi_sock" + }, + { + "name": "KUBE_NODE_NAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/registration", + "name": "registration-dir" + }, + { + "mountPath": "/csi", + "name": "driver-path" + } + ] + }, + { + "name": "resizer", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + } + ], + "storageClassParams": [ + { + "Name": "storagePool", + "Mandatory": true + }, + { + "Name": "arrayId", + "Mandatory": true + }, + { + "Name": "FsType", + "Mandatory": false + }, + { + "Name": "thinProvisioned" + }, + { + "Name": "isDataReductionEnabled" + }, + { + "Name": "tieringPolicy" + }, + { + "Name": "hostIOLimitName" + }, + { + "Name": "hostIoSize", + "Mandatory": false + } + ], + "storageClassAttrs": [ + { + "name": "allowVolumeExpansion", + "value": true + }, + { + "name": "volumeBindingMode", + "value": "Immediate" + } + ] + } + } + \ No newline at end of file diff --git a/driverconfig/unity_v4_v120.json b/driverconfig/unity_v4_v120.json new file mode 100644 index 0000000..b7c5c68 --- /dev/null +++ b/driverconfig/unity_v4_v120.json @@ -0,0 +1,413 @@ +{ + "driverConfig": { + "controllerHA": true, + "enableEphemeralVolumes": true, + "driverEnvs": [ + { + "Name": "CSI_ENDPOINT", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/var/run/csi/csi.sock", + "DefaultValueForNode": "unix:///var/lib/kubelet/plugins/unity.emc.dell.com/csi_sock" + }, + { + "Name": "X_CSI_MODE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "controller", + "DefaultValueForNode": "node" + }, + { + "Name": "X_CSI_UNITY_AUTOPROBE", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "GOUNITY_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "false", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_PRIVATE_MOUNT_DIR", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/unity.emc.dell.com/disks" + }, + { + "Name": "X_CSI_EPHEMERAL_STAGING_PATH", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/kubernetes.io/csi/pv/" + }, + { + "Name": "X_CSI_ISCSI_CHROOT", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/noderoot" + }, + { + "Name": "X_CSI_UNITY_NODENAME", + "CSIEnvType": "EnvVarReferenceType", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "v1/spec.nodeName" + }, + { + "Name": "X_CSI_UNITY_NODENAME_PREFIX", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "csi-node" + }, + { + "Name": "SSL_CERT_DIR", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/certs", + "DefaultValueForNode": "/certs" + }, + { + "Name": "X_CSI_UNITY_SYNC_NODEINFO_INTERVAL", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "15" + }, + { + "Name": "X_CSI_UNITY_ALLOW_MULTI_POD_ACCESS", + "CSIEnvType": "Boolean", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "false", + "DefaultValueForNode": "false" + } + ], + "driverArgs": [ + "--driver-name=csi-unity.dellemc.com", + "--driver-config=/unity-config/config" + ], + "driverNodeVolumes": [ + { + "hostPath": { + "path": "/var/lib/kubelet/plugins_registry/", + "type": "DirectoryOrCreate" + }, + "name": "registration-dir" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/unity.emc.dell.com", + "type": "DirectoryOrCreate" + }, + "name": "driver-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/kubernetes.io/csi", + "type": "DirectoryOrCreate" + }, + "name": "volumedevices-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/pods", + "type": "Directory" + }, + "name": "pods-path" + }, + { + "hostPath": { + "path": "/dev", + "type": "Directory" + }, + "name": "dev" + }, + { + "hostPath": { + "path": "/", + "type": "Directory" + }, + "name": "noderoot" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "unity-certs", + "optional": true + } + }, + { + "name": "unity-config", + "secret": { + "defaultMode": 420, + "secretName": "unity-creds", + "optional": true + } + } + ], + "driverControllerVolumes": [ + { + "emptyDir": {}, + "name": "socket-dir" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "unity-certs", + "optional": true + } + }, + { + "name": "unity-config", + "secret": { + "defaultMode": 420, + "secretName": "unity-creds", + "optional": true + } + } + ], + "driverControllerVolumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/unity-config", + "name": "unity-config", + "readOnly": true + } + ], + "driverNodeVolumeMounts": [ + { + "mountPath": "/var/lib/kubelet/plugins/unity.emc.dell.com", + "name": "driver-path" + }, + { + "mountPath": "/var/lib/kubelet/plugins/kubernetes.io/csi", + "mountPropagation": "Bidirectional", + "name": "volumedevices-path" + }, + { + "mountPath": "/var/lib/kubelet/pods", + "mountPropagation": "Bidirectional", + "name": "pods-path" + }, + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/noderoot", + "name": "noderoot" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/unity-config", + "name": "unity-config", + "readOnly": true + } + ], + "sidecarParams": [ + { + "name": "provisioner", + "args": [ + "--csi-address=$(ADDRESS)", + "--timeout=120s", + "--volume-name-uuid-length=10", + "--timeout=180s", + "--worker-threads=6", + "--v=5", + "--volume-name-prefix=csiunity", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "attacher", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--timeout=180s", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "snapshotter", + "args": [ + "--v=5", + "--snapshot-name-uuid-length=10", + "--timeout=360s", + "--csi-address=$(ADDRESS)", + "--snapshot-name-prefix=csi-snap", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "registrar", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--kubelet-registration-path=/var/lib/kubelet/plugins/unity.emc.dell.com/csi_sock" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/csi/csi_sock" + }, + { + "name": "KUBE_NODE_NAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/registration", + "name": "registration-dir" + }, + { + "mountPath": "/csi", + "name": "driver-path" + } + ] + }, + { + "name": "resizer", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + } + ], + "storageClassParams": [ + { + "Name": "storagePool", + "Mandatory": true + }, + { + "Name": "arrayId", + "Mandatory": true + }, + { + "Name": "FsType", + "Mandatory": false + }, + { + "Name": "thinProvisioned" + }, + { + "Name": "isDataReductionEnabled" + }, + { + "Name": "tieringPolicy" + }, + { + "Name": "hostIOLimitName" + }, + { + "Name": "hostIoSize", + "Mandatory": false + } + ], + "storageClassAttrs": [ + { + "name": "allowVolumeExpansion", + "value": true + }, + { + "name": "volumeBindingMode", + "value": "Immediate" + } + ] + } + } + \ No newline at end of file diff --git a/driverconfig/vxflexos_v4_v118.json b/driverconfig/vxflexos_v4_v118.json new file mode 100644 index 0000000..c87e6c2 --- /dev/null +++ b/driverconfig/vxflexos_v4_v118.json @@ -0,0 +1,515 @@ +{ + "driverConfig": { + "controllerHA" : true, + "enableEphemeralVolumes": true, + "driverEnvs": [ + { + "Name": "CSI_ENDPOINT", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/var/run/csi/csi.sock", + "DefaultValueForNode": "unix:///var/lib/kubelet/plugins/vxflexos.emc.dell.com/csi_sock" + }, + { + "Name": "X_CSI_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_VXFLEXOS_ENABLESNAPSHOTCGDELETE", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": false, + "DefaultValueForController": "false", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_VXFLEXOS_ENABLELISTVOLUMESNAPSHOT", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": false, + "DefaultValueForController": "false", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_MODE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "controller", + "DefaultValueForNode": "node" + }, + { + "Name": "X_CSI_ALLOW_RWO_MULTI_POD_ACCESS", + "CSIEnvType": "Boolean", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_PRIVATE_MOUNT_DIR", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/vxflexos.emc.dell.com/disks" + } + ], + + "driverArgs": [ + "--array-config=/vxflexos-config/config" + ], + + "driverNodeVolumes": [ + { + "hostPath": { + "path": "/var/lib/kubelet/plugins_registry/", + "type": "DirectoryOrCreate" + }, + "name": "registration-dir" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/vxflexos.emc.dell.com", + "type": "DirectoryOrCreate" + }, + "name": "driver-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "type": "DirectoryOrCreate" + }, + "name": "volumedevices-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/pods", + "type": "Directory" + }, + "name": "pods-path" + }, + { + "hostPath": { + "path": "/dev", + "type": "Directory" + }, + "name": "dev" + }, + { + "hostPath": { + "path": "/opt/emc/scaleio/sdc/bin", + "type": "DirectoryOrCreate" + }, + "name": "scaleio-path-opt" + }, + { + "hostPath": { + "path": "/etc/os-release", + "type": "File" + }, + "name": "os-release" + }, + { + "hostPath": { + "path": "/var/emc-scaleio", + "type": "DirectoryOrCreate" + }, + "name": "sdc-storage" + }, + { + "hostPath": { + "path": "/var/sio-config", + "type": "DirectoryOrCreate" + }, + "name": "sdc-config" + }, + { + "hostPath": { + "path": "/etc/udev/rules.d", + "type": "Directory" + }, + "name": "udev-d" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "vxflexos-certs", + "optional": true + } + }, + { + "name": "vxflexos-config", + "secret": { + "defaultMode": 420, + "secretName": "vxflexos-config", + "optional": true + } + } + ], + "driverControllerVolumes": [ + { + "emptyDir": {}, + "name": "socket-dir" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "vxflexos-certs", + "optional": true + } + }, + { + "name": "vxflexos-config", + "secret": { + "defaultMode": 420, + "secretName": "vxflexos-config", + "optional": true + } + } + ], + "driverControllerVolumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/vxflexos-config", + "name": "vxflexos-config", + "readOnly": true + } + ], + "driverNodeVolumeMounts": [ + { + "mountPath": "/var/lib/kubelet/plugins/vxflexos.emc.dell.com", + "name": "driver-path" + }, + { + "mountPath": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "mountPropagation": "Bidirectional", + "name": "volumedevices-path" + }, + { + "mountPath": "/var/lib/kubelet/pods", + "mountPropagation": "Bidirectional", + "name": "pods-path" + }, + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/opt/emc/scaleio/sdc/bin", + "name": "scaleio-path-opt" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/vxflexos-config", + "name": "vxflexos-config", + "readOnly": true + } + + ], + "sidecarParams": [ + { + "name": "provisioner", + "args": [ + "--csi-address=$(ADDRESS)", + "--timeout=120s", + "--volume-name-uuid-length=10", + "--timeout=180s", + "--worker-threads=6", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "attacher", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--timeout=180s", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "snapshotter", + "args": [ + "--csi-address=$(ADDRESS)", + "--timeout=120s", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "registrar", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--kubelet-registration-path=/var/lib/kubelet/plugins/vxflexos.emc.dell.com/csi_sock" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/csi/csi_sock" + }, + { + "name": "KUBE_NODE_NAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/registration", + "name": "registration-dir" + }, + { + "mountPath": "/csi", + "name": "driver-path" + } + ] + }, + { + "name": "resizer", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "sdc-monitor", + "optional": true, + "envs": [ + { + "name": "MDM", + "valueFrom": { + "secretKeyRef": { + "key": "MDM", + "name": "vxflexos-config", + "optional": true + } + } + }, + { + "name": "HOST_PID", + "value": "0" + }, + { + "name": "HOST_NET", + "value": "1" + }, + { + "name": "MODE", + "value": "monitoring" + }, + { + "name": "HOST_DRV_CFG_PATH", + "value": "/opt/emc/scaleio/sdc/bin" + }, + { + "name": "NODENAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/host-os-release", + "name": "os-release" + }, + { + "mountPath": "/rules.d", + "name": "udev-d" + }, + { + "mountPath": "/storage", + "name": "sdc-storage" + }, + { + "mountPath": "/host_drv_cfg_path", + "name": "scaleio-path-opt" + } + ] + } + ], + "storageClassParams": [ + { + "Name": "storagepool", + "Mandatory": true + } + ], + "storageClassAttrs": [ + { + "name": "allowVolumeExpansion", + "value": true + }, + { + "name": "volumeBindingMode", + "value": "WaitForFirstConsumer" + } + ], + "initContainerParams": [ + { + "name": "sdc", + "SetForNode": true, + "envs": [ + { + "name": "MDM", + "valueFrom": { + "secretKeyRef": { + "key": "MDM", + "name": "vxflexos-config", + "optional": true + } + } + }, + { + "name": "HOST_DRV_CFG_PATH", + "value": "/opt/emc/scaleio/sdc/bin" + }, + { + "name": "MODE", + "value": "config" + }, + { + "name": "NODENAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + }, + { + "name": "REPO_ADDRESS", + "value": "" + }, + { + "name": "REPO_USER", + "valueFrom": { + "secretKeyRef": { + "key": "username", + "name": "sdc-repo-creds", + "optional": true + } + } + }, + { + "name": "REPO_PASSWORD", + "valueFrom": { + "secretKeyRef": { + "key": "password", + "name": "sdc-repo-creds", + "optional": true + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/host-os-release", + "name": "os-release" + }, + { + "mountPath": "/rules.d", + "name": "udev-d" + }, + { + "mountPath": "/storage", + "name": "sdc-storage" + }, + { + "mountPath": "/host_drv_cfg_path", + "name": "scaleio-path-opt" + }, + { + "mountPath": "/config", + "name": "sdc-config" + } + ] + } + ] + } +} diff --git a/driverconfig/vxflexos_v4_v119.json b/driverconfig/vxflexos_v4_v119.json new file mode 100644 index 0000000..4773316 --- /dev/null +++ b/driverconfig/vxflexos_v4_v119.json @@ -0,0 +1,515 @@ +{ + "driverConfig": { + "controllerHA" : true, + "enableEphemeralVolumes": true, + "driverEnvs": [ + { + "Name": "CSI_ENDPOINT", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/var/run/csi/csi.sock", + "DefaultValueForNode": "unix:///var/lib/kubelet/plugins/vxflexos.emc.dell.com/csi_sock" + }, + { + "Name": "X_CSI_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_VXFLEXOS_ENABLESNAPSHOTCGDELETE", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": false, + "DefaultValueForController": "false", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_VXFLEXOS_ENABLELISTVOLUMESNAPSHOT", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": false, + "DefaultValueForController": "false", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_MODE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "controller", + "DefaultValueForNode": "node" + }, + { + "Name": "X_CSI_ALLOW_RWO_MULTI_POD_ACCESS", + "CSIEnvType": "Boolean", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_PRIVATE_MOUNT_DIR", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/vxflexos.emc.dell.com/disks" + } + ], + + "driverArgs": [ + "--array-config=/vxflexos-config/config" + ], + + "driverNodeVolumes": [ + { + "hostPath": { + "path": "/var/lib/kubelet/plugins_registry/", + "type": "DirectoryOrCreate" + }, + "name": "registration-dir" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/vxflexos.emc.dell.com", + "type": "DirectoryOrCreate" + }, + "name": "driver-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "type": "DirectoryOrCreate" + }, + "name": "volumedevices-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/pods", + "type": "Directory" + }, + "name": "pods-path" + }, + { + "hostPath": { + "path": "/dev", + "type": "Directory" + }, + "name": "dev" + }, + { + "hostPath": { + "path": "/opt/emc/scaleio/sdc/bin", + "type": "DirectoryOrCreate" + }, + "name": "scaleio-path-opt" + }, + { + "hostPath": { + "path": "/etc/os-release", + "type": "File" + }, + "name": "os-release" + }, + { + "hostPath": { + "path": "/var/emc-scaleio", + "type": "DirectoryOrCreate" + }, + "name": "sdc-storage" + }, + { + "hostPath": { + "path": "/var/sio-config", + "type": "DirectoryOrCreate" + }, + "name": "sdc-config" + }, + { + "hostPath": { + "path": "/etc/udev/rules.d", + "type": "Directory" + }, + "name": "udev-d" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "vxflexos-certs", + "optional": true + } + }, + { + "name": "vxflexos-config", + "secret": { + "defaultMode": 420, + "secretName": "vxflexos-config", + "optional": true + } + } + ], + "driverControllerVolumes": [ + { + "emptyDir": {}, + "name": "socket-dir" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "vxflexos-certs", + "optional": true + } + }, + { + "name": "vxflexos-config", + "secret": { + "defaultMode": 420, + "secretName": "vxflexos-config", + "optional": true + } + } + ], + "driverControllerVolumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/vxflexos-config", + "name": "vxflexos-config", + "readOnly": true + } + ], + "driverNodeVolumeMounts": [ + { + "mountPath": "/var/lib/kubelet/plugins/vxflexos.emc.dell.com", + "name": "driver-path" + }, + { + "mountPath": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "mountPropagation": "Bidirectional", + "name": "volumedevices-path" + }, + { + "mountPath": "/var/lib/kubelet/pods", + "mountPropagation": "Bidirectional", + "name": "pods-path" + }, + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/opt/emc/scaleio/sdc/bin", + "name": "scaleio-path-opt" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/vxflexos-config", + "name": "vxflexos-config", + "readOnly": true + } + + ], + "sidecarParams": [ + { + "name": "provisioner", + "args": [ + "--csi-address=$(ADDRESS)", + "--timeout=120s", + "--volume-name-uuid-length=10", + "--timeout=180s", + "--worker-threads=6", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "attacher", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--timeout=180s", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "snapshotter", + "args": [ + "--csi-address=$(ADDRESS)", + "--timeout=120s", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "registrar", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--kubelet-registration-path=/var/lib/kubelet/plugins/vxflexos.emc.dell.com/csi_sock" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/csi/csi_sock" + }, + { + "name": "KUBE_NODE_NAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/registration", + "name": "registration-dir" + }, + { + "mountPath": "/csi", + "name": "driver-path" + } + ] + }, + { + "name": "resizer", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "sdc-monitor", + "optional": true, + "envs": [ + { + "name": "MDM", + "valueFrom": { + "secretKeyRef": { + "key": "MDM", + "name": "vxflexos-config", + "optional": true + } + } + }, + { + "name": "HOST_PID", + "value": "0" + }, + { + "name": "HOST_NET", + "value": "1" + }, + { + "name": "MODE", + "value": "monitoring" + }, + { + "name": "HOST_DRV_CFG_PATH", + "value": "/opt/emc/scaleio/sdc/bin" + }, + { + "name": "NODENAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/host-os-release", + "name": "os-release" + }, + { + "mountPath": "/rules.d", + "name": "udev-d" + }, + { + "mountPath": "/storage", + "name": "sdc-storage" + }, + { + "mountPath": "/host_drv_cfg_path", + "name": "scaleio-path-opt" + } + ] + } + ], + "storageClassParams": [ + { + "Name": "storagepool", + "Mandatory": true + } + ], + "storageClassAttrs": [ + { + "name": "allowVolumeExpansion", + "value": true + }, + { + "name": "volumeBindingMode", + "value": "WaitForFirstConsumer" + } + ], + "initContainerParams": [ + { + "name": "sdc", + "SetForNode": true, + "envs": [ + { + "name": "MDM", + "valueFrom": { + "secretKeyRef": { + "key": "MDM", + "name": "vxflexos-config", + "optional": true + } + } + }, + { + "name": "HOST_DRV_CFG_PATH", + "value": "/opt/emc/scaleio/sdc/bin" + }, + { + "name": "MODE", + "value": "config" + }, + { + "name": "NODENAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + }, + { + "name": "REPO_ADDRESS", + "value": "" + }, + { + "name": "REPO_USER", + "valueFrom": { + "secretKeyRef": { + "key": "username", + "name": "sdc-repo-creds", + "optional": true + } + } + }, + { + "name": "REPO_PASSWORD", + "valueFrom": { + "secretKeyRef": { + "key": "password", + "name": "sdc-repo-creds", + "optional": true + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/host-os-release", + "name": "os-release" + }, + { + "mountPath": "/rules.d", + "name": "udev-d" + }, + { + "mountPath": "/storage", + "name": "sdc-storage" + }, + { + "mountPath": "/host_drv_cfg_path", + "name": "scaleio-path-opt" + }, + { + "mountPath": "/config", + "name": "sdc-config" + } + ] + } + ] + } +} diff --git a/driverconfig/vxflexos_v4_v120.json b/driverconfig/vxflexos_v4_v120.json new file mode 100644 index 0000000..444573d --- /dev/null +++ b/driverconfig/vxflexos_v4_v120.json @@ -0,0 +1,515 @@ +{ + "driverConfig": { + "controllerHA" : true, + "enableEphemeralVolumes": true, + "driverEnvs": [ + { + "Name": "CSI_ENDPOINT", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "/var/run/csi/csi.sock", + "DefaultValueForNode": "unix:///var/lib/kubelet/plugins/vxflexos.emc.dell.com/csi_sock" + }, + { + "Name": "X_CSI_DEBUG", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "true", + "DefaultValueForNode": "true" + }, + { + "Name": "X_CSI_VXFLEXOS_ENABLESNAPSHOTCGDELETE", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": false, + "DefaultValueForController": "false", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_VXFLEXOS_ENABLELISTVOLUMESNAPSHOT", + "CSIEnvType": "Boolean", + "SetForController": true, + "SetForNode": false, + "DefaultValueForController": "false", + "DefaultValueForNode": "" + }, + { + "Name": "X_CSI_MODE", + "CSIEnvType": "String", + "SetForController": true, + "SetForNode": true, + "DefaultValueForController": "controller", + "DefaultValueForNode": "node" + }, + { + "Name": "X_CSI_ALLOW_RWO_MULTI_POD_ACCESS", + "CSIEnvType": "Boolean", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "false" + }, + { + "Name": "X_CSI_PRIVATE_MOUNT_DIR", + "CSIEnvType": "String", + "SetForController": false, + "SetForNode": true, + "DefaultValueForController": "", + "DefaultValueForNode": "/var/lib/kubelet/plugins/vxflexos.emc.dell.com/disks" + } + ], + + "driverArgs": [ + "--array-config=/vxflexos-config/config" + ], + + "driverNodeVolumes": [ + { + "hostPath": { + "path": "/var/lib/kubelet/plugins_registry/", + "type": "DirectoryOrCreate" + }, + "name": "registration-dir" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/vxflexos.emc.dell.com", + "type": "DirectoryOrCreate" + }, + "name": "driver-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "type": "DirectoryOrCreate" + }, + "name": "volumedevices-path" + }, + { + "hostPath": { + "path": "/var/lib/kubelet/pods", + "type": "Directory" + }, + "name": "pods-path" + }, + { + "hostPath": { + "path": "/dev", + "type": "Directory" + }, + "name": "dev" + }, + { + "hostPath": { + "path": "/opt/emc/scaleio/sdc/bin", + "type": "DirectoryOrCreate" + }, + "name": "scaleio-path-opt" + }, + { + "hostPath": { + "path": "/etc/os-release", + "type": "File" + }, + "name": "os-release" + }, + { + "hostPath": { + "path": "/var/emc-scaleio", + "type": "DirectoryOrCreate" + }, + "name": "sdc-storage" + }, + { + "hostPath": { + "path": "/var/sio-config", + "type": "DirectoryOrCreate" + }, + "name": "sdc-config" + }, + { + "hostPath": { + "path": "/etc/udev/rules.d", + "type": "Directory" + }, + "name": "udev-d" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "vxflexos-certs", + "optional": true + } + }, + { + "name": "vxflexos-config", + "secret": { + "defaultMode": 420, + "secretName": "vxflexos-config", + "optional": true + } + } + ], + "driverControllerVolumes": [ + { + "emptyDir": {}, + "name": "socket-dir" + }, + { + "name": "certs", + "secret": { + "defaultMode": 420, + "secretName": "vxflexos-certs", + "optional": true + } + }, + { + "name": "vxflexos-config", + "secret": { + "defaultMode": 420, + "secretName": "vxflexos-config", + "optional": true + } + } + ], + "driverControllerVolumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/vxflexos-config", + "name": "vxflexos-config", + "readOnly": true + } + ], + "driverNodeVolumeMounts": [ + { + "mountPath": "/var/lib/kubelet/plugins/vxflexos.emc.dell.com", + "name": "driver-path" + }, + { + "mountPath": "/var/lib/kubelet/plugins/kubernetes.io/csi/volumeDevices", + "mountPropagation": "Bidirectional", + "name": "volumedevices-path" + }, + { + "mountPath": "/var/lib/kubelet/pods", + "mountPropagation": "Bidirectional", + "name": "pods-path" + }, + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/opt/emc/scaleio/sdc/bin", + "name": "scaleio-path-opt" + }, + { + "mountPath": "/certs", + "name": "certs", + "readOnly": true + }, + { + "mountPath": "/vxflexos-config", + "name": "vxflexos-config", + "readOnly": true + } + + ], + "sidecarParams": [ + { + "name": "provisioner", + "args": [ + "--csi-address=$(ADDRESS)", + "--timeout=120s", + "--volume-name-uuid-length=10", + "--timeout=180s", + "--worker-threads=6", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "attacher", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--timeout=180s", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "snapshotter", + "args": [ + "--csi-address=$(ADDRESS)", + "--timeout=120s", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "registrar", + "args": [ + "--v=5", + "--csi-address=$(ADDRESS)", + "--kubelet-registration-path=/var/lib/kubelet/plugins/vxflexos.emc.dell.com/csi_sock" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/csi/csi_sock" + }, + { + "name": "KUBE_NODE_NAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/registration", + "name": "registration-dir" + }, + { + "mountPath": "/csi", + "name": "driver-path" + } + ] + }, + { + "name": "resizer", + "args": [ + "--csi-address=$(ADDRESS)", + "--v=5", + "--leader-election" + ], + "envs": [ + { + "name": "ADDRESS", + "value": "/var/run/csi/csi.sock" + } + ], + "volumeMounts": [ + { + "mountPath": "/var/run/csi", + "name": "socket-dir" + } + ] + }, + { + "name": "sdc-monitor", + "optional": true, + "envs": [ + { + "name": "MDM", + "valueFrom": { + "secretKeyRef": { + "key": "MDM", + "name": "vxflexos-config", + "optional": true + } + } + }, + { + "name": "HOST_PID", + "value": "0" + }, + { + "name": "HOST_NET", + "value": "1" + }, + { + "name": "MODE", + "value": "monitoring" + }, + { + "name": "HOST_DRV_CFG_PATH", + "value": "/opt/emc/scaleio/sdc/bin" + }, + { + "name": "NODENAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/host-os-release", + "name": "os-release" + }, + { + "mountPath": "/rules.d", + "name": "udev-d" + }, + { + "mountPath": "/storage", + "name": "sdc-storage" + }, + { + "mountPath": "/host_drv_cfg_path", + "name": "scaleio-path-opt" + } + ] + } + ], + "storageClassParams": [ + { + "Name": "storagepool", + "Mandatory": true + } + ], + "storageClassAttrs": [ + { + "name": "allowVolumeExpansion", + "value": true + }, + { + "name": "volumeBindingMode", + "value": "WaitForFirstConsumer" + } + ], + "initContainerParams": [ + { + "name": "sdc", + "SetForNode": true, + "envs": [ + { + "name": "MDM", + "valueFrom": { + "secretKeyRef": { + "key": "MDM", + "name": "vxflexos-config", + "optional": true + } + } + }, + { + "name": "HOST_DRV_CFG_PATH", + "value": "/opt/emc/scaleio/sdc/bin" + }, + { + "name": "MODE", + "value": "config" + }, + { + "name": "NODENAME", + "valueFrom": { + "fieldRef": { + "apiVersion": "v1", + "fieldPath": "spec.nodeName" + } + } + }, + { + "name": "REPO_ADDRESS", + "value": "" + }, + { + "name": "REPO_USER", + "valueFrom": { + "secretKeyRef": { + "key": "username", + "name": "sdc-repo-creds", + "optional": true + } + } + }, + { + "name": "REPO_PASSWORD", + "valueFrom": { + "secretKeyRef": { + "key": "password", + "name": "sdc-repo-creds", + "optional": true + } + } + } + ], + "volumeMounts": [ + { + "mountPath": "/dev", + "name": "dev" + }, + { + "mountPath": "/host-os-release", + "name": "os-release" + }, + { + "mountPath": "/rules.d", + "name": "udev-d" + }, + { + "mountPath": "/storage", + "name": "sdc-storage" + }, + { + "mountPath": "/host_drv_cfg_path", + "name": "scaleio-path-opt" + }, + { + "mountPath": "/config", + "name": "sdc-config" + } + ] + } + ] + } +} diff --git a/samples/isilon_v150_k8s_118.yaml b/samples/isilon_v150_k8s_118.yaml new file mode 100644 index 0000000..1f7cc9c --- /dev/null +++ b/samples/isilon_v150_k8s_118.yaml @@ -0,0 +1,74 @@ +apiVersion: storage.dell.com/v1 +kind: CSIIsilon +metadata: + name: isilon + namespace: test-isilon +spec: + driver: + # Config version for CSI PowerScale v1.5.0 driver + configVersion: v5 + replicas: 2 + forceUpdate: false + common: + # Image for CSI PowerScale driver v1.5.0 + image: "dellemc/csi-isilon:v1.5.0" + imagePullPolicy: IfNotPresent + envs: + - name: X_CSI_VERBOSE + value: "1" + - name: X_CSI_ISI_PORT + value: "8080" + - name: X_CSI_ISI_PATH + value: "/ifs/data/csi" + - name: X_CSI_ISILON_NO_PROBE_ON_START + value: "false" + - name: X_CSI_ISI_AUTOPROBE + value: "true" + - name: X_CSI_ISI_INSECURE + value: "true" + - name: X_CSI_DEBUG + value: "true" + - name: X_CSI_CUSTOM_TOPOLOGY_ENABLED + value: "false" + controller: + envs: + - name: X_CSI_ISI_QUOTA_ENABLED + value: "true" + - name: X_CSI_ISI_ACCESS_ZONE + value: "System" + node: + envs: + - name: X_CSI_ISILON_NFS_V3 + value: "false" + # Provide them in the following format: "[net1, net2]" + # CIDR format should be used + # eg: 192.168.1.0/24 + - name: X_CSI_ALLOWED_NETWORKS + value: "" + sideCars: + - name: provisioner + args: ["--volume-name-prefix=csipscale"] + storageClass: + # The storageClass name will have a prefix "isilon" + - name: storageclass + reclaimPolicy: "Delete" + allowVolumeExpansion: true + default: true + volumeBindingMode: WaitForFirstConsumer + # If X_CSI_CUSTOM_TOPOLOGY_ENABLED is set to True, please comment out the below + # section related to allowed Topologies. + allowedTopologies: + - matchLabelExpressions: + - key: csi-isilon.dellemc.com/1.1.1.1 + values: + - "csi-isilon.dellemc.com" + parameters: + AccessZone: "System" + IsiPath: "/ifs/data/csi" + AzServiceIP: 1.1.1.1 + RootClientEnabled: "false" + snapshotClass: + # The volumeSnapshotClass name will have a prefix "isilon" + - name: volumesnapshotclass + parameters: + IsiPath: "/ifs/data/csi" diff --git a/samples/isilon_v150_k8s_119.yaml b/samples/isilon_v150_k8s_119.yaml new file mode 100644 index 0000000..1f7cc9c --- /dev/null +++ b/samples/isilon_v150_k8s_119.yaml @@ -0,0 +1,74 @@ +apiVersion: storage.dell.com/v1 +kind: CSIIsilon +metadata: + name: isilon + namespace: test-isilon +spec: + driver: + # Config version for CSI PowerScale v1.5.0 driver + configVersion: v5 + replicas: 2 + forceUpdate: false + common: + # Image for CSI PowerScale driver v1.5.0 + image: "dellemc/csi-isilon:v1.5.0" + imagePullPolicy: IfNotPresent + envs: + - name: X_CSI_VERBOSE + value: "1" + - name: X_CSI_ISI_PORT + value: "8080" + - name: X_CSI_ISI_PATH + value: "/ifs/data/csi" + - name: X_CSI_ISILON_NO_PROBE_ON_START + value: "false" + - name: X_CSI_ISI_AUTOPROBE + value: "true" + - name: X_CSI_ISI_INSECURE + value: "true" + - name: X_CSI_DEBUG + value: "true" + - name: X_CSI_CUSTOM_TOPOLOGY_ENABLED + value: "false" + controller: + envs: + - name: X_CSI_ISI_QUOTA_ENABLED + value: "true" + - name: X_CSI_ISI_ACCESS_ZONE + value: "System" + node: + envs: + - name: X_CSI_ISILON_NFS_V3 + value: "false" + # Provide them in the following format: "[net1, net2]" + # CIDR format should be used + # eg: 192.168.1.0/24 + - name: X_CSI_ALLOWED_NETWORKS + value: "" + sideCars: + - name: provisioner + args: ["--volume-name-prefix=csipscale"] + storageClass: + # The storageClass name will have a prefix "isilon" + - name: storageclass + reclaimPolicy: "Delete" + allowVolumeExpansion: true + default: true + volumeBindingMode: WaitForFirstConsumer + # If X_CSI_CUSTOM_TOPOLOGY_ENABLED is set to True, please comment out the below + # section related to allowed Topologies. + allowedTopologies: + - matchLabelExpressions: + - key: csi-isilon.dellemc.com/1.1.1.1 + values: + - "csi-isilon.dellemc.com" + parameters: + AccessZone: "System" + IsiPath: "/ifs/data/csi" + AzServiceIP: 1.1.1.1 + RootClientEnabled: "false" + snapshotClass: + # The volumeSnapshotClass name will have a prefix "isilon" + - name: volumesnapshotclass + parameters: + IsiPath: "/ifs/data/csi" diff --git a/samples/isilon_v150_k8s_120.yaml b/samples/isilon_v150_k8s_120.yaml new file mode 100644 index 0000000..1f7cc9c --- /dev/null +++ b/samples/isilon_v150_k8s_120.yaml @@ -0,0 +1,74 @@ +apiVersion: storage.dell.com/v1 +kind: CSIIsilon +metadata: + name: isilon + namespace: test-isilon +spec: + driver: + # Config version for CSI PowerScale v1.5.0 driver + configVersion: v5 + replicas: 2 + forceUpdate: false + common: + # Image for CSI PowerScale driver v1.5.0 + image: "dellemc/csi-isilon:v1.5.0" + imagePullPolicy: IfNotPresent + envs: + - name: X_CSI_VERBOSE + value: "1" + - name: X_CSI_ISI_PORT + value: "8080" + - name: X_CSI_ISI_PATH + value: "/ifs/data/csi" + - name: X_CSI_ISILON_NO_PROBE_ON_START + value: "false" + - name: X_CSI_ISI_AUTOPROBE + value: "true" + - name: X_CSI_ISI_INSECURE + value: "true" + - name: X_CSI_DEBUG + value: "true" + - name: X_CSI_CUSTOM_TOPOLOGY_ENABLED + value: "false" + controller: + envs: + - name: X_CSI_ISI_QUOTA_ENABLED + value: "true" + - name: X_CSI_ISI_ACCESS_ZONE + value: "System" + node: + envs: + - name: X_CSI_ISILON_NFS_V3 + value: "false" + # Provide them in the following format: "[net1, net2]" + # CIDR format should be used + # eg: 192.168.1.0/24 + - name: X_CSI_ALLOWED_NETWORKS + value: "" + sideCars: + - name: provisioner + args: ["--volume-name-prefix=csipscale"] + storageClass: + # The storageClass name will have a prefix "isilon" + - name: storageclass + reclaimPolicy: "Delete" + allowVolumeExpansion: true + default: true + volumeBindingMode: WaitForFirstConsumer + # If X_CSI_CUSTOM_TOPOLOGY_ENABLED is set to True, please comment out the below + # section related to allowed Topologies. + allowedTopologies: + - matchLabelExpressions: + - key: csi-isilon.dellemc.com/1.1.1.1 + values: + - "csi-isilon.dellemc.com" + parameters: + AccessZone: "System" + IsiPath: "/ifs/data/csi" + AzServiceIP: 1.1.1.1 + RootClientEnabled: "false" + snapshotClass: + # The volumeSnapshotClass name will have a prefix "isilon" + - name: volumesnapshotclass + parameters: + IsiPath: "/ifs/data/csi" diff --git a/samples/isilon_v140_ops_44.yaml b/samples/isilon_v150_ops_46.yaml similarity index 83% rename from samples/isilon_v140_ops_44.yaml rename to samples/isilon_v150_ops_46.yaml index 5c23306..3002f4d 100644 --- a/samples/isilon_v140_ops_44.yaml +++ b/samples/isilon_v150_ops_46.yaml @@ -1,71 +1,74 @@ -apiVersion: storage.dell.com/v1 -kind: CSIIsilon -metadata: - name: isilon - namespace: test-isilon -spec: - driver: - # Config version for CSI PowerScale v1.4.0 driver - configVersion: v4 - replicas: 2 - forceUpdate: false - common: - # Image for CSI PowerScale driver v1.4.0 - image: "dellemc/csi-isilon:v1.4.0.000R" - imagePullPolicy: IfNotPresent - envs: - - name: X_CSI_VERBOSE - value: "1" - - name: X_CSI_ISI_ENDPOINT - value: 1.1.1.1 - - name: X_CSI_ISI_PORT - value: "8080" - - name: X_CSI_ISI_PATH - value: "/ifs/data/csi" - - name: X_CSI_ISILON_NO_PROBE_ON_START - value: "false" - - name: X_CSI_ISI_AUTOPROBE - value: "true" - - name: X_CSI_ISI_INSECURE - value: "true" - - name: X_CSI_DEBUG - value: "true" - - name: X_CSI_CUSTOM_TOPOLOGY_ENABLED - value: "false" - controller: - envs: - - name: X_CSI_ISI_QUOTA_ENABLED - value: "true" - - name: X_CSI_ISI_ACCESS_ZONE - value: System - node: - envs: - - name: X_CSI_ISILON_NFS_V3 - value: "false" - sideCars: - - name: provisioner - args: ["--volume-name-prefix=csipscale"] - storageClass: - # The storageClass name will have a prefix "isilon" - - name: storageclass - reclaimPolicy: "Delete" - allowVolumeExpansion: true - default: true - volumeBindingMode: WaitForFirstConsumer - # If X_CSI_CUSTOM_TOPOLOGY_ENABLED is set to True, please comment out the below - # section related to allowed Topologies. - allowedTopologies: - - matchLabelExpressions: - - key: csi-isilon.dellemc.com/1.1.1.1 - values: - - "csi-isilon.dellemc.com" - parameters: - AccessZone: "System" - IsiPath: "/ifs/data/csi" - AzServiceIP: 1.1.1.1 - RootClientEnabled: "false" - snapshotClass: - # The volumeSnapshotClass name will have a prefix "isilon" - - name: volumesnapshotclass - parameters: - IsiPath: "/ifs/data/csi" +apiVersion: storage.dell.com/v1 +kind: CSIIsilon +metadata: + name: isilon + namespace: test-isilon +spec: + driver: + # Config version for CSI PowerScale v1.5.0 driver + configVersion: v5 + replicas: 2 + forceUpdate: false + common: + # Image for CSI PowerScale driver v1.5.0 + image: "dellemc/csi-isilon:v1.5.0" + imagePullPolicy: IfNotPresent + envs: + - name: X_CSI_VERBOSE + value: "1" + - name: X_CSI_ISI_PORT + value: "8080" + - name: X_CSI_ISI_PATH + value: "/ifs/data/csi" + - name: X_CSI_ISILON_NO_PROBE_ON_START + value: "false" + - name: X_CSI_ISI_AUTOPROBE + value: "true" + - name: X_CSI_ISI_INSECURE + value: "true" + - name: X_CSI_DEBUG + value: "true" + - name: X_CSI_CUSTOM_TOPOLOGY_ENABLED + value: "false" + controller: + envs: + - name: X_CSI_ISI_QUOTA_ENABLED + value: "true" + - name: X_CSI_ISI_ACCESS_ZONE + value: "System" + node: + envs: + - name: X_CSI_ISILON_NFS_V3 + value: "false" + # Provide them in the following format: "[net1, net2]" + # CIDR format should be used + # eg: 192.168.1.0/24 + - name: X_CSI_ALLOWED_NETWORKS + value: "" + sideCars: + - name: provisioner + args: ["--volume-name-prefix=csipscale"] + storageClass: + # The storageClass name will have a prefix "isilon" + - name: storageclass + reclaimPolicy: "Delete" + allowVolumeExpansion: true + default: true + volumeBindingMode: WaitForFirstConsumer + # If X_CSI_CUSTOM_TOPOLOGY_ENABLED is set to True, please comment out the below + # section related to allowed Topologies. + allowedTopologies: + - matchLabelExpressions: + - key: csi-isilon.dellemc.com/1.1.1.1 + values: + - "csi-isilon.dellemc.com" + parameters: + AccessZone: "System" + IsiPath: "/ifs/data/csi" + AzServiceIP: 1.1.1.1 + RootClientEnabled: "false" + snapshotClass: + # The volumeSnapshotClass name will have a prefix "isilon" + - name: volumesnapshotclass + parameters: + IsiPath: "/ifs/data/csi" diff --git a/samples/isilon_v150_ops_47.yaml b/samples/isilon_v150_ops_47.yaml new file mode 100644 index 0000000..3002f4d --- /dev/null +++ b/samples/isilon_v150_ops_47.yaml @@ -0,0 +1,74 @@ +apiVersion: storage.dell.com/v1 +kind: CSIIsilon +metadata: + name: isilon + namespace: test-isilon +spec: + driver: + # Config version for CSI PowerScale v1.5.0 driver + configVersion: v5 + replicas: 2 + forceUpdate: false + common: + # Image for CSI PowerScale driver v1.5.0 + image: "dellemc/csi-isilon:v1.5.0" + imagePullPolicy: IfNotPresent + envs: + - name: X_CSI_VERBOSE + value: "1" + - name: X_CSI_ISI_PORT + value: "8080" + - name: X_CSI_ISI_PATH + value: "/ifs/data/csi" + - name: X_CSI_ISILON_NO_PROBE_ON_START + value: "false" + - name: X_CSI_ISI_AUTOPROBE + value: "true" + - name: X_CSI_ISI_INSECURE + value: "true" + - name: X_CSI_DEBUG + value: "true" + - name: X_CSI_CUSTOM_TOPOLOGY_ENABLED + value: "false" + controller: + envs: + - name: X_CSI_ISI_QUOTA_ENABLED + value: "true" + - name: X_CSI_ISI_ACCESS_ZONE + value: "System" + node: + envs: + - name: X_CSI_ISILON_NFS_V3 + value: "false" + # Provide them in the following format: "[net1, net2]" + # CIDR format should be used + # eg: 192.168.1.0/24 + - name: X_CSI_ALLOWED_NETWORKS + value: "" + sideCars: + - name: provisioner + args: ["--volume-name-prefix=csipscale"] + storageClass: + # The storageClass name will have a prefix "isilon" + - name: storageclass + reclaimPolicy: "Delete" + allowVolumeExpansion: true + default: true + volumeBindingMode: WaitForFirstConsumer + # If X_CSI_CUSTOM_TOPOLOGY_ENABLED is set to True, please comment out the below + # section related to allowed Topologies. + allowedTopologies: + - matchLabelExpressions: + - key: csi-isilon.dellemc.com/1.1.1.1 + values: + - "csi-isilon.dellemc.com" + parameters: + AccessZone: "System" + IsiPath: "/ifs/data/csi" + AzServiceIP: 1.1.1.1 + RootClientEnabled: "false" + snapshotClass: + # The volumeSnapshotClass name will have a prefix "isilon" + - name: volumesnapshotclass + parameters: + IsiPath: "/ifs/data/csi" diff --git a/samples/powermax_reverseproxy.yaml b/samples/powermax_reverseproxy.yaml index cb379e1..ec4431e 100644 --- a/samples/powermax_reverseproxy.yaml +++ b/samples/powermax_reverseproxy.yaml @@ -5,8 +5,8 @@ metadata: namespace: test-powermax spec: # Image for CSI PowerMax ReverseProxy - image: dellemc/csipowermax-reverseproxy:v1.1.0.000R - imagePullPolicy: Always + image: dellemc/csipowermax-reverseproxy:v1.2.0 + imagePullPolicy: IfNotPresent # TLS secret which contains SSL certificate and private key for the Reverse Proxy server tlsSecret: csirevproxy-tls-secret config: diff --git a/samples/powermax_v160_k8s_118.yaml b/samples/powermax_v160_k8s_118.yaml new file mode 100644 index 0000000..cfd46eb --- /dev/null +++ b/samples/powermax_v160_k8s_118.yaml @@ -0,0 +1,107 @@ +apiVersion: storage.dell.com/v1 +kind: CSIPowerMax +metadata: + name: test-powermax + namespace: test-powermax +spec: + driver: + # Config version for CSI PowerMax v1.6 driver + configVersion: v5 + # Controller count. Don't increase it + replicas: 2 + forceUpdate: false + common: + # Image for CSI PowerMax driver v1.6 + image: dellemc/csi-powermax:v1.6.0 + imagePullPolicy: IfNotPresent + envs: + # Unisphere IP + # If using PowerMax reverseproxy, leave it unchanged + - name: X_CSI_POWERMAX_ENDPOINT + value: "https://0.0.0.0:8443/" + # Change this to a 3 character prefix unique for this cluster + - name: X_CSI_K8S_CLUSTER_PREFIX + value: "XYZ" + # Add a list of comma separated port groups (only for ISCSI) + - name: "X_CSI_POWERMAX_PORTGROUPS" + value: "" + # Optional whitelist of arrays which will be managed by driver + - name: "X_CSI_POWERMAX_ARRAYS" + value: "" + # Preferred transport protocol (FC/ISCSI) + - name: "X_CSI_TRANSPORT_PROTOCOL" + value: "" + # Set this to "powermax-reverseproxy" if you are installing the proxy + - name: "X_CSI_POWERMAX_PROXY_SERVICE_NAME" + value: "" + # Set this value to a higher number (max 50) if you are using the proxy + - name: "X_CSI_GRPC_MAX_THREADS" + value: "4" + node: + envs: + # Enable ISCSI CHAP Authentication + - name: "X_CSI_POWERMAX_ISCSI_ENABLE_CHAP" + value: "false" + storageClass: + - name: bronze + default: false + reclaimPolicy: Delete + volumeBindingMode: "Immediate" + allowVolumeExpansion: false + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + - name: bronze-topology + default: true + reclaimPolicy: Delete + volumeBindingMode: "WaitForFirstConsumer" + allowVolumeExpansion: false + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + allowedTopologies: + - matchLabelExpressions: + - key: csi-powermax.dellemc.com/000000000001 # Replace 000000000001 with the SYMID used above + values: + - csi-powermax.dellemc.com + # Use only one of the following fc or iscsi keys + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with FC connectivity + #- key: csi-powermax.dellemc.com/000000000001.fc + # values: + # - csi-powermax.dellemc.com + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with ISCSI connectivity + #- key: csi-powermax.dellemc.com/000000000001.iscsi + # values: + # - csi-powermax.dellemc.com + - name: bronze-topology-resize + reclaimPolicy: Delete + volumeBindingMode: "WaitForFirstConsumer" + allowVolumeExpansion: true + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + allowedTopologies: + - matchLabelExpressions: + - key: csi-powermax.dellemc.com/000000000001 # Replace 000000000001 with the SYMID used above + values: + - csi-powermax.dellemc.com + # Use only one of the following fc or iscsi keys + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with FC connectivity + #- key: csi-powermax.dellemc.com/000000000001.fc + # values: + # - csi-powermax.dellemc.com + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with ISCSI connectivity + #- key: csi-powermax.dellemc.com/000000000001.iscsi + # values: + # - csi-powermax.dellemc.com + snapshotClass: + - name: powermax-snapclass diff --git a/samples/powermax_v160_k8s_119.yaml b/samples/powermax_v160_k8s_119.yaml new file mode 100644 index 0000000..b8987b1 --- /dev/null +++ b/samples/powermax_v160_k8s_119.yaml @@ -0,0 +1,107 @@ +apiVersion: storage.dell.com/v1 +kind: CSIPowerMax +metadata: + name: test-powermax + namespace: test-powermax +spec: + driver: + # Config version for CSI PowerMax v1.6 driver + configVersion: v5 + # Controller count. Don't increase it + replicas: 2 + forceUpdate: false + common: + # Image for CSI PowerMax driver v1.6 + image: dellemc/csi-powermax:v1.6.0 + imagePullPolicy: IfNotPresent + envs: + # Unisphere IP + # If using PowerMax reverseproxy, leave it unchanged + - name: X_CSI_POWERMAX_ENDPOINT + value: "https://0.0.0.0:8443/" + # Change this to a 3 character prefix unique for this cluster + - name: X_CSI_K8S_CLUSTER_PREFIX + value: "XYZ" + # Add a list of comma separated port groups (only for ISCSI) + - name: "X_CSI_POWERMAX_PORTGROUPS" + value: "" + # Optional whitelist of arrays which will be managed by driver + - name: "X_CSI_POWERMAX_ARRAYS" + value: "" + # Preferred transport protocol (FC/ISCSI) + - name: "X_CSI_TRANSPORT_PROTOCOL" + value: "" + # Set this to "powermax-reverseproxy" if you are installing the proxy + - name: "X_CSI_POWERMAX_PROXY_SERVICE_NAME" + value: "" + # Set this value to a higher number (max 50) if you are using the proxy + - name: "X_CSI_GRPC_MAX_THREADS" + value: "4" + node: + envs: + # Enable ISCSI CHAP Authentication + - name: "X_CSI_POWERMAX_ISCSI_ENABLE_CHAP" + value: "false" + storageClass: + - name: bronze + default: false + reclaimPolicy: Delete + volumeBindingMode: "Immediate" + allowVolumeExpansion: false + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + - name: bronze-topology + default: true + reclaimPolicy: Delete + volumeBindingMode: "WaitForFirstConsumer" + allowVolumeExpansion: false + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + allowedTopologies: + - matchLabelExpressions: + - key: csi-powermax.dellemc.com/000000000001 # Replace 000000000001 with the SYMID used above + values: + - csi-powermax.dellemc.com + # Use only one of the following fc or iscsi keys + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with FC connectivity + #- key: csi-powermax.dellemc.com/000000000001.fc + # values: + # - csi-powermax.dellemc.com + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with ISCSI connectivity + #- key: csi-powermax.dellemc.com/000000000001.iscsi + # values: + # - csi-powermax.dellemc.com + - name: bronze-topology-resize + reclaimPolicy: Delete + volumeBindingMode: "WaitForFirstConsumer" + allowVolumeExpansion: true + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + allowedTopologies: + - matchLabelExpressions: + - key: csi-powermax.dellemc.com/000000000001 # Replace 000000000001 with the SYMID used above + values: + - csi-powermax.dellemc.com + # Use only one of the following fc or iscsi keys + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with FC connectivity + #- key: csi-powermax.dellemc.com/000000000001.fc + # values: + # - csi-powermax.dellemc.com + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with ISCSI connectivity + #- key: csi-powermax.dellemc.com/000000000001.iscsi + # values: + # - csi-powermax.dellemc.com + snapshotClass: + - name: powermax-snapclass diff --git a/samples/powermax_v160_k8s_120.yaml b/samples/powermax_v160_k8s_120.yaml new file mode 100644 index 0000000..b8987b1 --- /dev/null +++ b/samples/powermax_v160_k8s_120.yaml @@ -0,0 +1,107 @@ +apiVersion: storage.dell.com/v1 +kind: CSIPowerMax +metadata: + name: test-powermax + namespace: test-powermax +spec: + driver: + # Config version for CSI PowerMax v1.6 driver + configVersion: v5 + # Controller count. Don't increase it + replicas: 2 + forceUpdate: false + common: + # Image for CSI PowerMax driver v1.6 + image: dellemc/csi-powermax:v1.6.0 + imagePullPolicy: IfNotPresent + envs: + # Unisphere IP + # If using PowerMax reverseproxy, leave it unchanged + - name: X_CSI_POWERMAX_ENDPOINT + value: "https://0.0.0.0:8443/" + # Change this to a 3 character prefix unique for this cluster + - name: X_CSI_K8S_CLUSTER_PREFIX + value: "XYZ" + # Add a list of comma separated port groups (only for ISCSI) + - name: "X_CSI_POWERMAX_PORTGROUPS" + value: "" + # Optional whitelist of arrays which will be managed by driver + - name: "X_CSI_POWERMAX_ARRAYS" + value: "" + # Preferred transport protocol (FC/ISCSI) + - name: "X_CSI_TRANSPORT_PROTOCOL" + value: "" + # Set this to "powermax-reverseproxy" if you are installing the proxy + - name: "X_CSI_POWERMAX_PROXY_SERVICE_NAME" + value: "" + # Set this value to a higher number (max 50) if you are using the proxy + - name: "X_CSI_GRPC_MAX_THREADS" + value: "4" + node: + envs: + # Enable ISCSI CHAP Authentication + - name: "X_CSI_POWERMAX_ISCSI_ENABLE_CHAP" + value: "false" + storageClass: + - name: bronze + default: false + reclaimPolicy: Delete + volumeBindingMode: "Immediate" + allowVolumeExpansion: false + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + - name: bronze-topology + default: true + reclaimPolicy: Delete + volumeBindingMode: "WaitForFirstConsumer" + allowVolumeExpansion: false + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + allowedTopologies: + - matchLabelExpressions: + - key: csi-powermax.dellemc.com/000000000001 # Replace 000000000001 with the SYMID used above + values: + - csi-powermax.dellemc.com + # Use only one of the following fc or iscsi keys + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with FC connectivity + #- key: csi-powermax.dellemc.com/000000000001.fc + # values: + # - csi-powermax.dellemc.com + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with ISCSI connectivity + #- key: csi-powermax.dellemc.com/000000000001.iscsi + # values: + # - csi-powermax.dellemc.com + - name: bronze-topology-resize + reclaimPolicy: Delete + volumeBindingMode: "WaitForFirstConsumer" + allowVolumeExpansion: true + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + allowedTopologies: + - matchLabelExpressions: + - key: csi-powermax.dellemc.com/000000000001 # Replace 000000000001 with the SYMID used above + values: + - csi-powermax.dellemc.com + # Use only one of the following fc or iscsi keys + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with FC connectivity + #- key: csi-powermax.dellemc.com/000000000001.fc + # values: + # - csi-powermax.dellemc.com + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with ISCSI connectivity + #- key: csi-powermax.dellemc.com/000000000001.iscsi + # values: + # - csi-powermax.dellemc.com + snapshotClass: + - name: powermax-snapclass diff --git a/samples/powermax_v160_ops_45.yaml b/samples/powermax_v160_ops_45.yaml new file mode 100644 index 0000000..b8987b1 --- /dev/null +++ b/samples/powermax_v160_ops_45.yaml @@ -0,0 +1,107 @@ +apiVersion: storage.dell.com/v1 +kind: CSIPowerMax +metadata: + name: test-powermax + namespace: test-powermax +spec: + driver: + # Config version for CSI PowerMax v1.6 driver + configVersion: v5 + # Controller count. Don't increase it + replicas: 2 + forceUpdate: false + common: + # Image for CSI PowerMax driver v1.6 + image: dellemc/csi-powermax:v1.6.0 + imagePullPolicy: IfNotPresent + envs: + # Unisphere IP + # If using PowerMax reverseproxy, leave it unchanged + - name: X_CSI_POWERMAX_ENDPOINT + value: "https://0.0.0.0:8443/" + # Change this to a 3 character prefix unique for this cluster + - name: X_CSI_K8S_CLUSTER_PREFIX + value: "XYZ" + # Add a list of comma separated port groups (only for ISCSI) + - name: "X_CSI_POWERMAX_PORTGROUPS" + value: "" + # Optional whitelist of arrays which will be managed by driver + - name: "X_CSI_POWERMAX_ARRAYS" + value: "" + # Preferred transport protocol (FC/ISCSI) + - name: "X_CSI_TRANSPORT_PROTOCOL" + value: "" + # Set this to "powermax-reverseproxy" if you are installing the proxy + - name: "X_CSI_POWERMAX_PROXY_SERVICE_NAME" + value: "" + # Set this value to a higher number (max 50) if you are using the proxy + - name: "X_CSI_GRPC_MAX_THREADS" + value: "4" + node: + envs: + # Enable ISCSI CHAP Authentication + - name: "X_CSI_POWERMAX_ISCSI_ENABLE_CHAP" + value: "false" + storageClass: + - name: bronze + default: false + reclaimPolicy: Delete + volumeBindingMode: "Immediate" + allowVolumeExpansion: false + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + - name: bronze-topology + default: true + reclaimPolicy: Delete + volumeBindingMode: "WaitForFirstConsumer" + allowVolumeExpansion: false + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + allowedTopologies: + - matchLabelExpressions: + - key: csi-powermax.dellemc.com/000000000001 # Replace 000000000001 with the SYMID used above + values: + - csi-powermax.dellemc.com + # Use only one of the following fc or iscsi keys + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with FC connectivity + #- key: csi-powermax.dellemc.com/000000000001.fc + # values: + # - csi-powermax.dellemc.com + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with ISCSI connectivity + #- key: csi-powermax.dellemc.com/000000000001.iscsi + # values: + # - csi-powermax.dellemc.com + - name: bronze-topology-resize + reclaimPolicy: Delete + volumeBindingMode: "WaitForFirstConsumer" + allowVolumeExpansion: true + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + allowedTopologies: + - matchLabelExpressions: + - key: csi-powermax.dellemc.com/000000000001 # Replace 000000000001 with the SYMID used above + values: + - csi-powermax.dellemc.com + # Use only one of the following fc or iscsi keys + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with FC connectivity + #- key: csi-powermax.dellemc.com/000000000001.fc + # values: + # - csi-powermax.dellemc.com + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with ISCSI connectivity + #- key: csi-powermax.dellemc.com/000000000001.iscsi + # values: + # - csi-powermax.dellemc.com + snapshotClass: + - name: powermax-snapclass diff --git a/samples/powermax_v160_ops_46.yaml b/samples/powermax_v160_ops_46.yaml new file mode 100644 index 0000000..b8987b1 --- /dev/null +++ b/samples/powermax_v160_ops_46.yaml @@ -0,0 +1,107 @@ +apiVersion: storage.dell.com/v1 +kind: CSIPowerMax +metadata: + name: test-powermax + namespace: test-powermax +spec: + driver: + # Config version for CSI PowerMax v1.6 driver + configVersion: v5 + # Controller count. Don't increase it + replicas: 2 + forceUpdate: false + common: + # Image for CSI PowerMax driver v1.6 + image: dellemc/csi-powermax:v1.6.0 + imagePullPolicy: IfNotPresent + envs: + # Unisphere IP + # If using PowerMax reverseproxy, leave it unchanged + - name: X_CSI_POWERMAX_ENDPOINT + value: "https://0.0.0.0:8443/" + # Change this to a 3 character prefix unique for this cluster + - name: X_CSI_K8S_CLUSTER_PREFIX + value: "XYZ" + # Add a list of comma separated port groups (only for ISCSI) + - name: "X_CSI_POWERMAX_PORTGROUPS" + value: "" + # Optional whitelist of arrays which will be managed by driver + - name: "X_CSI_POWERMAX_ARRAYS" + value: "" + # Preferred transport protocol (FC/ISCSI) + - name: "X_CSI_TRANSPORT_PROTOCOL" + value: "" + # Set this to "powermax-reverseproxy" if you are installing the proxy + - name: "X_CSI_POWERMAX_PROXY_SERVICE_NAME" + value: "" + # Set this value to a higher number (max 50) if you are using the proxy + - name: "X_CSI_GRPC_MAX_THREADS" + value: "4" + node: + envs: + # Enable ISCSI CHAP Authentication + - name: "X_CSI_POWERMAX_ISCSI_ENABLE_CHAP" + value: "false" + storageClass: + - name: bronze + default: false + reclaimPolicy: Delete + volumeBindingMode: "Immediate" + allowVolumeExpansion: false + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + - name: bronze-topology + default: true + reclaimPolicy: Delete + volumeBindingMode: "WaitForFirstConsumer" + allowVolumeExpansion: false + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + allowedTopologies: + - matchLabelExpressions: + - key: csi-powermax.dellemc.com/000000000001 # Replace 000000000001 with the SYMID used above + values: + - csi-powermax.dellemc.com + # Use only one of the following fc or iscsi keys + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with FC connectivity + #- key: csi-powermax.dellemc.com/000000000001.fc + # values: + # - csi-powermax.dellemc.com + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with ISCSI connectivity + #- key: csi-powermax.dellemc.com/000000000001.iscsi + # values: + # - csi-powermax.dellemc.com + - name: bronze-topology-resize + reclaimPolicy: Delete + volumeBindingMode: "WaitForFirstConsumer" + allowVolumeExpansion: true + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + allowedTopologies: + - matchLabelExpressions: + - key: csi-powermax.dellemc.com/000000000001 # Replace 000000000001 with the SYMID used above + values: + - csi-powermax.dellemc.com + # Use only one of the following fc or iscsi keys + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with FC connectivity + #- key: csi-powermax.dellemc.com/000000000001.fc + # values: + # - csi-powermax.dellemc.com + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with ISCSI connectivity + #- key: csi-powermax.dellemc.com/000000000001.iscsi + # values: + # - csi-powermax.dellemc.com + snapshotClass: + - name: powermax-snapclass diff --git a/samples/powermax_v160_ops_47.yaml b/samples/powermax_v160_ops_47.yaml new file mode 100644 index 0000000..b8987b1 --- /dev/null +++ b/samples/powermax_v160_ops_47.yaml @@ -0,0 +1,107 @@ +apiVersion: storage.dell.com/v1 +kind: CSIPowerMax +metadata: + name: test-powermax + namespace: test-powermax +spec: + driver: + # Config version for CSI PowerMax v1.6 driver + configVersion: v5 + # Controller count. Don't increase it + replicas: 2 + forceUpdate: false + common: + # Image for CSI PowerMax driver v1.6 + image: dellemc/csi-powermax:v1.6.0 + imagePullPolicy: IfNotPresent + envs: + # Unisphere IP + # If using PowerMax reverseproxy, leave it unchanged + - name: X_CSI_POWERMAX_ENDPOINT + value: "https://0.0.0.0:8443/" + # Change this to a 3 character prefix unique for this cluster + - name: X_CSI_K8S_CLUSTER_PREFIX + value: "XYZ" + # Add a list of comma separated port groups (only for ISCSI) + - name: "X_CSI_POWERMAX_PORTGROUPS" + value: "" + # Optional whitelist of arrays which will be managed by driver + - name: "X_CSI_POWERMAX_ARRAYS" + value: "" + # Preferred transport protocol (FC/ISCSI) + - name: "X_CSI_TRANSPORT_PROTOCOL" + value: "" + # Set this to "powermax-reverseproxy" if you are installing the proxy + - name: "X_CSI_POWERMAX_PROXY_SERVICE_NAME" + value: "" + # Set this value to a higher number (max 50) if you are using the proxy + - name: "X_CSI_GRPC_MAX_THREADS" + value: "4" + node: + envs: + # Enable ISCSI CHAP Authentication + - name: "X_CSI_POWERMAX_ISCSI_ENABLE_CHAP" + value: "false" + storageClass: + - name: bronze + default: false + reclaimPolicy: Delete + volumeBindingMode: "Immediate" + allowVolumeExpansion: false + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + - name: bronze-topology + default: true + reclaimPolicy: Delete + volumeBindingMode: "WaitForFirstConsumer" + allowVolumeExpansion: false + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + allowedTopologies: + - matchLabelExpressions: + - key: csi-powermax.dellemc.com/000000000001 # Replace 000000000001 with the SYMID used above + values: + - csi-powermax.dellemc.com + # Use only one of the following fc or iscsi keys + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with FC connectivity + #- key: csi-powermax.dellemc.com/000000000001.fc + # values: + # - csi-powermax.dellemc.com + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with ISCSI connectivity + #- key: csi-powermax.dellemc.com/000000000001.iscsi + # values: + # - csi-powermax.dellemc.com + - name: bronze-topology-resize + reclaimPolicy: Delete + volumeBindingMode: "WaitForFirstConsumer" + allowVolumeExpansion: true + parameters: + # Replace the SYMID with the Symmetrix ID of the PowerMax array + SYMID: "000000000001" + # Replace the SRP with the name of the Storage Resource Pool on the PowerMax array + SRP: DEFAULT_SRP + ServiceLevel: Bronze + allowedTopologies: + - matchLabelExpressions: + - key: csi-powermax.dellemc.com/000000000001 # Replace 000000000001 with the SYMID used above + values: + - csi-powermax.dellemc.com + # Use only one of the following fc or iscsi keys + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with FC connectivity + #- key: csi-powermax.dellemc.com/000000000001.fc + # values: + # - csi-powermax.dellemc.com + # Uncomment the following section (& replace SYMID) if you want PVCs only on nodes with ISCSI connectivity + #- key: csi-powermax.dellemc.com/000000000001.iscsi + # values: + # - csi-powermax.dellemc.com + snapshotClass: + - name: powermax-snapclass diff --git a/samples/powerstore_v110_k8s_117.yaml b/samples/powerstore_v110_k8s_117.yaml deleted file mode 100644 index 2da9cae..0000000 --- a/samples/powerstore_v110_k8s_117.yaml +++ /dev/null @@ -1,41 +0,0 @@ -apiVersion: storage.dell.com/v1 -kind: CSIPowerStore -metadata: - name: test-powerstore - namespace: test-powerstore -spec: - driver: - # Config version for CSI PowerStore v1.1 driver - configVersion: v1 - # Controller count. Don't increase it - replicas: 1 - forceUpdate: false - common: - # Image for CSI PowerStore driver v1.1 - image: "dellemc/csi-powerstore:v1.1.0.000R" - imagePullPolicy: IfNotPresent - envs: - # PowerStore Manager IP - - name: X_CSI_POWERSTORE_ENDPOINT - value: "https://127.0.0.1/api/rest" - - name: X_CSI_POWERSTORE_NODE_NAME_PREFIX - value: "csi" - - name: X_CSI_TRANSPORT_PROTOCOL - value: "ISCSI" - - name: X_CSI_FC_PORTS_FILTER_FILE_PATH - value: "/etc/fc-ports-filter" - storageClass: - - name: powerstore - default: true - reclaimPolicy: "Delete" - - name: powerstore-xfs - reclaimPolicy: "Delete" - parameters: - FsType: xfs - - name: powerstore-nfs - reclaimPolicy: "Delete" - parameters: - FsType: nfs - nasName: nas-server - snapshotClass: - - name: powerstore-snapshot diff --git a/samples/powerstore_v110_k8s_118.yaml b/samples/powerstore_v110_k8s_118.yaml deleted file mode 100644 index 2da9cae..0000000 --- a/samples/powerstore_v110_k8s_118.yaml +++ /dev/null @@ -1,41 +0,0 @@ -apiVersion: storage.dell.com/v1 -kind: CSIPowerStore -metadata: - name: test-powerstore - namespace: test-powerstore -spec: - driver: - # Config version for CSI PowerStore v1.1 driver - configVersion: v1 - # Controller count. Don't increase it - replicas: 1 - forceUpdate: false - common: - # Image for CSI PowerStore driver v1.1 - image: "dellemc/csi-powerstore:v1.1.0.000R" - imagePullPolicy: IfNotPresent - envs: - # PowerStore Manager IP - - name: X_CSI_POWERSTORE_ENDPOINT - value: "https://127.0.0.1/api/rest" - - name: X_CSI_POWERSTORE_NODE_NAME_PREFIX - value: "csi" - - name: X_CSI_TRANSPORT_PROTOCOL - value: "ISCSI" - - name: X_CSI_FC_PORTS_FILTER_FILE_PATH - value: "/etc/fc-ports-filter" - storageClass: - - name: powerstore - default: true - reclaimPolicy: "Delete" - - name: powerstore-xfs - reclaimPolicy: "Delete" - parameters: - FsType: xfs - - name: powerstore-nfs - reclaimPolicy: "Delete" - parameters: - FsType: nfs - nasName: nas-server - snapshotClass: - - name: powerstore-snapshot diff --git a/samples/powerstore_v110_k8s_119.yaml b/samples/powerstore_v110_k8s_119.yaml deleted file mode 100644 index 2da9cae..0000000 --- a/samples/powerstore_v110_k8s_119.yaml +++ /dev/null @@ -1,41 +0,0 @@ -apiVersion: storage.dell.com/v1 -kind: CSIPowerStore -metadata: - name: test-powerstore - namespace: test-powerstore -spec: - driver: - # Config version for CSI PowerStore v1.1 driver - configVersion: v1 - # Controller count. Don't increase it - replicas: 1 - forceUpdate: false - common: - # Image for CSI PowerStore driver v1.1 - image: "dellemc/csi-powerstore:v1.1.0.000R" - imagePullPolicy: IfNotPresent - envs: - # PowerStore Manager IP - - name: X_CSI_POWERSTORE_ENDPOINT - value: "https://127.0.0.1/api/rest" - - name: X_CSI_POWERSTORE_NODE_NAME_PREFIX - value: "csi" - - name: X_CSI_TRANSPORT_PROTOCOL - value: "ISCSI" - - name: X_CSI_FC_PORTS_FILTER_FILE_PATH - value: "/etc/fc-ports-filter" - storageClass: - - name: powerstore - default: true - reclaimPolicy: "Delete" - - name: powerstore-xfs - reclaimPolicy: "Delete" - parameters: - FsType: xfs - - name: powerstore-nfs - reclaimPolicy: "Delete" - parameters: - FsType: nfs - nasName: nas-server - snapshotClass: - - name: powerstore-snapshot diff --git a/samples/powerstore_v110_ops_44.yaml b/samples/powerstore_v110_ops_44.yaml deleted file mode 100644 index 2da9cae..0000000 --- a/samples/powerstore_v110_ops_44.yaml +++ /dev/null @@ -1,41 +0,0 @@ -apiVersion: storage.dell.com/v1 -kind: CSIPowerStore -metadata: - name: test-powerstore - namespace: test-powerstore -spec: - driver: - # Config version for CSI PowerStore v1.1 driver - configVersion: v1 - # Controller count. Don't increase it - replicas: 1 - forceUpdate: false - common: - # Image for CSI PowerStore driver v1.1 - image: "dellemc/csi-powerstore:v1.1.0.000R" - imagePullPolicy: IfNotPresent - envs: - # PowerStore Manager IP - - name: X_CSI_POWERSTORE_ENDPOINT - value: "https://127.0.0.1/api/rest" - - name: X_CSI_POWERSTORE_NODE_NAME_PREFIX - value: "csi" - - name: X_CSI_TRANSPORT_PROTOCOL - value: "ISCSI" - - name: X_CSI_FC_PORTS_FILTER_FILE_PATH - value: "/etc/fc-ports-filter" - storageClass: - - name: powerstore - default: true - reclaimPolicy: "Delete" - - name: powerstore-xfs - reclaimPolicy: "Delete" - parameters: - FsType: xfs - - name: powerstore-nfs - reclaimPolicy: "Delete" - parameters: - FsType: nfs - nasName: nas-server - snapshotClass: - - name: powerstore-snapshot diff --git a/samples/powerstore_v120_ops_44.yaml b/samples/powerstore_v130_k8s_118.yaml similarity index 61% rename from samples/powerstore_v120_ops_44.yaml rename to samples/powerstore_v130_k8s_118.yaml index 39b0084..41365c5 100644 --- a/samples/powerstore_v120_ops_44.yaml +++ b/samples/powerstore_v130_k8s_118.yaml @@ -1,58 +1,53 @@ -apiVersion: storage.dell.com/v1 -kind: CSIPowerStore -metadata: - name: test-powerstore - namespace: test-powerstore -spec: - driver: - # Config version for CSI PowerStore v1.2 driver - configVersion: v2 - # Controller count - replicas: 2 - forceUpdate: false - common: - # Image for CSI PowerStore driver v1.2 - image: "dellemc/csi-powerstore:v1.2.0.000R" - imagePullPolicy: IfNotPresent - envs: - # PowerStore Manager IP - - name: X_CSI_POWERSTORE_ENDPOINT - value: "https://127.0.0.1/api/rest" - - name: X_CSI_POWERSTORE_NODE_NAME_PREFIX - value: "csi" - # Either "ISCSI", "FC", "auto" or "None" - - name: X_CSI_TRANSPORT_PROTOCOL - value: "ISCSI" - - name: X_CSI_FC_PORTS_FILTER_FILE_PATH - value: "/etc/fc-ports-filter" - node: - envs: - # Set to "true" to enable ISCSI CHAP Authentication - # Be sure that you have chapuser and chapsecret set in powerstore-creds in that case - - name: "X_CSI_POWERSTORE_ENABLE_CHAP" - value: "true" - storageClass: - - name: powerstore - default: true - reclaimPolicy: "Delete" - parameters: - csi.storage.k8s.io/fstype: ext4 - - name: powerstore-xfs - reclaimPolicy: "Delete" - parameters: - csi.storage.k8s.io/fstype: xfs - - name: powerstore-nfs - reclaimPolicy: "Delete" - parameters: - csi.storage.k8s.io/fstype: nfs - nasName: nas-server - # Copy to other storage classes if you want to configure topology constraints for them - allowedTopologies: - - matchLabelExpressions: - # Replace 127.0.0.1 with PowerStore endpoint IP with its value - # And append -nfs, -fc or -iscsi at the end of it - - key: csi-powerstore.dellemc.com/127.0.0.1-nfs - values: - - "true" - snapshotClass: - - name: powerstore-snapshot +apiVersion: storage.dell.com/v1 +kind: CSIPowerStore +metadata: + name: test-powerstore + namespace: test-powerstore +spec: + driver: + # Config version for CSI PowerStore v1.3 driver + configVersion: v3 + # Controller count + replicas: 2 + forceUpdate: false + common: + # Image for CSI PowerStore driver v1.3 + image: "dellemc/csi-powerstore:v1.3.0" + imagePullPolicy: IfNotPresent + envs: + - name: X_CSI_POWERSTORE_NODE_NAME_PREFIX + value: "csi" + - name: X_CSI_FC_PORTS_FILTER_FILE_PATH + value: "/etc/fc-ports-filter" + node: + envs: + # Set to "true" to enable ISCSI CHAP Authentication + # CHAP password will be autogenerated by driver + - name: "X_CSI_POWERSTORE_ENABLE_CHAP" + value: "true" + storageClass: + - name: powerstore + default: true + reclaimPolicy: "Delete" + parameters: + FsType: ext4 + - name: powerstore-xfs + reclaimPolicy: "Delete" + parameters: + FsType: xfs + arrayIP: "127.0.0.1" + - name: powerstore-nfs + reclaimPolicy: "Delete" + parameters: + FsType: nfs + arrayIP: "127.0.0.1" + # Copy to other storage classes if you want to configure topology constraints for them + allowedTopologies: + - matchLabelExpressions: + # Replace 127.0.0.1 with PowerStore same array IP you specified for this storage class in arrayIP: parameter + # And append -nfs, -fc or -iscsi at the end of it + - key: csi-powerstore.dellemc.com/127.0.0.1-nfs + values: + - "true" + snapshotClass: + - name: powerstore-snapshot diff --git a/samples/powerstore_v130_k8s_119.yaml b/samples/powerstore_v130_k8s_119.yaml new file mode 100644 index 0000000..41365c5 --- /dev/null +++ b/samples/powerstore_v130_k8s_119.yaml @@ -0,0 +1,53 @@ +apiVersion: storage.dell.com/v1 +kind: CSIPowerStore +metadata: + name: test-powerstore + namespace: test-powerstore +spec: + driver: + # Config version for CSI PowerStore v1.3 driver + configVersion: v3 + # Controller count + replicas: 2 + forceUpdate: false + common: + # Image for CSI PowerStore driver v1.3 + image: "dellemc/csi-powerstore:v1.3.0" + imagePullPolicy: IfNotPresent + envs: + - name: X_CSI_POWERSTORE_NODE_NAME_PREFIX + value: "csi" + - name: X_CSI_FC_PORTS_FILTER_FILE_PATH + value: "/etc/fc-ports-filter" + node: + envs: + # Set to "true" to enable ISCSI CHAP Authentication + # CHAP password will be autogenerated by driver + - name: "X_CSI_POWERSTORE_ENABLE_CHAP" + value: "true" + storageClass: + - name: powerstore + default: true + reclaimPolicy: "Delete" + parameters: + FsType: ext4 + - name: powerstore-xfs + reclaimPolicy: "Delete" + parameters: + FsType: xfs + arrayIP: "127.0.0.1" + - name: powerstore-nfs + reclaimPolicy: "Delete" + parameters: + FsType: nfs + arrayIP: "127.0.0.1" + # Copy to other storage classes if you want to configure topology constraints for them + allowedTopologies: + - matchLabelExpressions: + # Replace 127.0.0.1 with PowerStore same array IP you specified for this storage class in arrayIP: parameter + # And append -nfs, -fc or -iscsi at the end of it + - key: csi-powerstore.dellemc.com/127.0.0.1-nfs + values: + - "true" + snapshotClass: + - name: powerstore-snapshot diff --git a/samples/powerstore_v130_k8s_120.yaml b/samples/powerstore_v130_k8s_120.yaml new file mode 100644 index 0000000..41365c5 --- /dev/null +++ b/samples/powerstore_v130_k8s_120.yaml @@ -0,0 +1,53 @@ +apiVersion: storage.dell.com/v1 +kind: CSIPowerStore +metadata: + name: test-powerstore + namespace: test-powerstore +spec: + driver: + # Config version for CSI PowerStore v1.3 driver + configVersion: v3 + # Controller count + replicas: 2 + forceUpdate: false + common: + # Image for CSI PowerStore driver v1.3 + image: "dellemc/csi-powerstore:v1.3.0" + imagePullPolicy: IfNotPresent + envs: + - name: X_CSI_POWERSTORE_NODE_NAME_PREFIX + value: "csi" + - name: X_CSI_FC_PORTS_FILTER_FILE_PATH + value: "/etc/fc-ports-filter" + node: + envs: + # Set to "true" to enable ISCSI CHAP Authentication + # CHAP password will be autogenerated by driver + - name: "X_CSI_POWERSTORE_ENABLE_CHAP" + value: "true" + storageClass: + - name: powerstore + default: true + reclaimPolicy: "Delete" + parameters: + FsType: ext4 + - name: powerstore-xfs + reclaimPolicy: "Delete" + parameters: + FsType: xfs + arrayIP: "127.0.0.1" + - name: powerstore-nfs + reclaimPolicy: "Delete" + parameters: + FsType: nfs + arrayIP: "127.0.0.1" + # Copy to other storage classes if you want to configure topology constraints for them + allowedTopologies: + - matchLabelExpressions: + # Replace 127.0.0.1 with PowerStore same array IP you specified for this storage class in arrayIP: parameter + # And append -nfs, -fc or -iscsi at the end of it + - key: csi-powerstore.dellemc.com/127.0.0.1-nfs + values: + - "true" + snapshotClass: + - name: powerstore-snapshot diff --git a/samples/powerstore_v130_ops_46.yaml b/samples/powerstore_v130_ops_46.yaml new file mode 100644 index 0000000..41365c5 --- /dev/null +++ b/samples/powerstore_v130_ops_46.yaml @@ -0,0 +1,53 @@ +apiVersion: storage.dell.com/v1 +kind: CSIPowerStore +metadata: + name: test-powerstore + namespace: test-powerstore +spec: + driver: + # Config version for CSI PowerStore v1.3 driver + configVersion: v3 + # Controller count + replicas: 2 + forceUpdate: false + common: + # Image for CSI PowerStore driver v1.3 + image: "dellemc/csi-powerstore:v1.3.0" + imagePullPolicy: IfNotPresent + envs: + - name: X_CSI_POWERSTORE_NODE_NAME_PREFIX + value: "csi" + - name: X_CSI_FC_PORTS_FILTER_FILE_PATH + value: "/etc/fc-ports-filter" + node: + envs: + # Set to "true" to enable ISCSI CHAP Authentication + # CHAP password will be autogenerated by driver + - name: "X_CSI_POWERSTORE_ENABLE_CHAP" + value: "true" + storageClass: + - name: powerstore + default: true + reclaimPolicy: "Delete" + parameters: + FsType: ext4 + - name: powerstore-xfs + reclaimPolicy: "Delete" + parameters: + FsType: xfs + arrayIP: "127.0.0.1" + - name: powerstore-nfs + reclaimPolicy: "Delete" + parameters: + FsType: nfs + arrayIP: "127.0.0.1" + # Copy to other storage classes if you want to configure topology constraints for them + allowedTopologies: + - matchLabelExpressions: + # Replace 127.0.0.1 with PowerStore same array IP you specified for this storage class in arrayIP: parameter + # And append -nfs, -fc or -iscsi at the end of it + - key: csi-powerstore.dellemc.com/127.0.0.1-nfs + values: + - "true" + snapshotClass: + - name: powerstore-snapshot diff --git a/samples/powerstore_v130_ops_47.yaml b/samples/powerstore_v130_ops_47.yaml new file mode 100644 index 0000000..41365c5 --- /dev/null +++ b/samples/powerstore_v130_ops_47.yaml @@ -0,0 +1,53 @@ +apiVersion: storage.dell.com/v1 +kind: CSIPowerStore +metadata: + name: test-powerstore + namespace: test-powerstore +spec: + driver: + # Config version for CSI PowerStore v1.3 driver + configVersion: v3 + # Controller count + replicas: 2 + forceUpdate: false + common: + # Image for CSI PowerStore driver v1.3 + image: "dellemc/csi-powerstore:v1.3.0" + imagePullPolicy: IfNotPresent + envs: + - name: X_CSI_POWERSTORE_NODE_NAME_PREFIX + value: "csi" + - name: X_CSI_FC_PORTS_FILTER_FILE_PATH + value: "/etc/fc-ports-filter" + node: + envs: + # Set to "true" to enable ISCSI CHAP Authentication + # CHAP password will be autogenerated by driver + - name: "X_CSI_POWERSTORE_ENABLE_CHAP" + value: "true" + storageClass: + - name: powerstore + default: true + reclaimPolicy: "Delete" + parameters: + FsType: ext4 + - name: powerstore-xfs + reclaimPolicy: "Delete" + parameters: + FsType: xfs + arrayIP: "127.0.0.1" + - name: powerstore-nfs + reclaimPolicy: "Delete" + parameters: + FsType: nfs + arrayIP: "127.0.0.1" + # Copy to other storage classes if you want to configure topology constraints for them + allowedTopologies: + - matchLabelExpressions: + # Replace 127.0.0.1 with PowerStore same array IP you specified for this storage class in arrayIP: parameter + # And append -nfs, -fc or -iscsi at the end of it + - key: csi-powerstore.dellemc.com/127.0.0.1-nfs + values: + - "true" + snapshotClass: + - name: powerstore-snapshot diff --git a/samples/unity_v130_k8s_117.yaml b/samples/unity_v130_k8s_117.yaml deleted file mode 100644 index 6e5ba34..0000000 --- a/samples/unity_v130_k8s_117.yaml +++ /dev/null @@ -1,49 +0,0 @@ -apiVersion: storage.dell.com/v1 -kind: CSIUnity -metadata: - name: test-unity - namespace: test-unity -spec: - driver: - configVersion: v2 - replicas: 1 - common: - image: "dellemc/csi-unity:v1.3.0.000R" - imagePullPolicy: IfNotPresent - envs: - - name: X_CSI_UNITY_DEBUG - value: "true" - sideCars: - - name: provisioner - args: ["--volume-name-prefix=csiunity"] - - name: snapshotter - args: ["--snapshot-name-prefix=csiunitysnap"] - storageClass: - - name: virt2016****-fc - default: true - reclaimPolicy: "Delete" - allowVolumeExpansion: true - parameters: - storagePool: pool_1 - arrayId: "VIRT2016****" - protocol: "FC" - - name: virt2017****-iscsi - reclaimPolicy: "Delete" - allowVolumeExpansion: true - parameters: - storagePool: pool_1 - arrayId: "VIRT2017****" - protocol: "iSCSI" - - name: virt2017****-nfs - reclaimPolicy: "Delete" - allowVolumeExpansion: true - parameters: - storagePool: pool_1 - arrayId: "VIRT2017****" - protocol: "NFS" - hostIoSize: "8192" - nasServer: nas_1 - snapshotClass: - - name: test-snap - parameters: - retentionDuration: "" diff --git a/samples/unity_v140_ops_45.yaml b/samples/unity_v150_k8s_118.yaml similarity index 92% rename from samples/unity_v140_ops_45.yaml rename to samples/unity_v150_k8s_118.yaml index 835f76a..8a5a205 100644 --- a/samples/unity_v140_ops_45.yaml +++ b/samples/unity_v150_k8s_118.yaml @@ -5,14 +5,16 @@ metadata: namespace: test-unity spec: driver: - configVersion: v3 + configVersion: v4 replicas: 2 common: - image: "dellemc/csi-unity:v1.4.0.000R" + image: "dellemc/csi-unity:v1.5.0" imagePullPolicy: IfNotPresent envs: - name: X_CSI_UNITY_DEBUG value: "true" + - name: X_CSI_UNITY_ALLOW_MULTI_POD_ACCESS + value: "false" sideCars: - name: provisioner args: ["--volume-name-prefix=csiunity"] diff --git a/samples/unity_v140_ops_44.yaml b/samples/unity_v150_k8s_119.yaml similarity index 92% rename from samples/unity_v140_ops_44.yaml rename to samples/unity_v150_k8s_119.yaml index 835f76a..8a5a205 100644 --- a/samples/unity_v140_ops_44.yaml +++ b/samples/unity_v150_k8s_119.yaml @@ -5,14 +5,16 @@ metadata: namespace: test-unity spec: driver: - configVersion: v3 + configVersion: v4 replicas: 2 common: - image: "dellemc/csi-unity:v1.4.0.000R" + image: "dellemc/csi-unity:v1.5.0" imagePullPolicy: IfNotPresent envs: - name: X_CSI_UNITY_DEBUG value: "true" + - name: X_CSI_UNITY_ALLOW_MULTI_POD_ACCESS + value: "false" sideCars: - name: provisioner args: ["--volume-name-prefix=csiunity"] diff --git a/samples/unity_v140_k8s_117.yaml b/samples/unity_v150_k8s_120.yaml similarity index 92% rename from samples/unity_v140_k8s_117.yaml rename to samples/unity_v150_k8s_120.yaml index 835f76a..8a5a205 100644 --- a/samples/unity_v140_k8s_117.yaml +++ b/samples/unity_v150_k8s_120.yaml @@ -5,14 +5,16 @@ metadata: namespace: test-unity spec: driver: - configVersion: v3 + configVersion: v4 replicas: 2 common: - image: "dellemc/csi-unity:v1.4.0.000R" + image: "dellemc/csi-unity:v1.5.0" imagePullPolicy: IfNotPresent envs: - name: X_CSI_UNITY_DEBUG value: "true" + - name: X_CSI_UNITY_ALLOW_MULTI_POD_ACCESS + value: "false" sideCars: - name: provisioner args: ["--volume-name-prefix=csiunity"] diff --git a/samples/unity_v130_ops_44.yaml b/samples/unity_v150_ops_46.yaml similarity index 67% rename from samples/unity_v130_ops_44.yaml rename to samples/unity_v150_ops_46.yaml index 8c76144..8a5a205 100644 --- a/samples/unity_v130_ops_44.yaml +++ b/samples/unity_v150_ops_46.yaml @@ -5,14 +5,16 @@ metadata: namespace: test-unity spec: driver: - configVersion: v2 - replicas: 1 + configVersion: v4 + replicas: 2 common: - image: "dellemc/csi-unity:v1.4.0.000R" + image: "dellemc/csi-unity:v1.5.0" imagePullPolicy: IfNotPresent envs: - name: X_CSI_UNITY_DEBUG value: "true" + - name: X_CSI_UNITY_ALLOW_MULTI_POD_ACCESS + value: "false" sideCars: - name: provisioner args: ["--volume-name-prefix=csiunity"] @@ -43,6 +45,19 @@ spec: protocol: "NFS" hostIoSize: "8192" nasServer: nas_1 + - name: virt2017****-iscsi-topology + reclaimPolicy: "Delete" + allowVolumeExpansion: true + volumeBindingMode: WaitForFirstConsumer + allowedTopologies: + - matchLabelExpressions: + - key: csi-unity.dellemc.com/virt2017****-iscsi + values: + - "true" + parameters: + storagePool: pool_1 + arrayId: "VIRT2017****" + protocol: "iSCSI" snapshotClass: - name: test-snap parameters: diff --git a/samples/unity_v150_ops_47.yaml b/samples/unity_v150_ops_47.yaml new file mode 100644 index 0000000..8a5a205 --- /dev/null +++ b/samples/unity_v150_ops_47.yaml @@ -0,0 +1,64 @@ +apiVersion: storage.dell.com/v1 +kind: CSIUnity +metadata: + name: test-unity + namespace: test-unity +spec: + driver: + configVersion: v4 + replicas: 2 + common: + image: "dellemc/csi-unity:v1.5.0" + imagePullPolicy: IfNotPresent + envs: + - name: X_CSI_UNITY_DEBUG + value: "true" + - name: X_CSI_UNITY_ALLOW_MULTI_POD_ACCESS + value: "false" + sideCars: + - name: provisioner + args: ["--volume-name-prefix=csiunity"] + - name: snapshotter + args: ["--snapshot-name-prefix=csiunitysnap"] + storageClass: + - name: virt2016****-fc + default: true + reclaimPolicy: "Delete" + allowVolumeExpansion: true + parameters: + storagePool: pool_1 + arrayId: "VIRT2016****" + protocol: "FC" + - name: virt2017****-iscsi + reclaimPolicy: "Delete" + allowVolumeExpansion: true + parameters: + storagePool: pool_1 + arrayId: "VIRT2017****" + protocol: "iSCSI" + - name: virt2017****-nfs + reclaimPolicy: "Delete" + allowVolumeExpansion: true + parameters: + storagePool: pool_1 + arrayId: "VIRT2017****" + protocol: "NFS" + hostIoSize: "8192" + nasServer: nas_1 + - name: virt2017****-iscsi-topology + reclaimPolicy: "Delete" + allowVolumeExpansion: true + volumeBindingMode: WaitForFirstConsumer + allowedTopologies: + - matchLabelExpressions: + - key: csi-unity.dellemc.com/virt2017****-iscsi + values: + - "true" + parameters: + storagePool: pool_1 + arrayId: "VIRT2017****" + protocol: "iSCSI" + snapshotClass: + - name: test-snap + parameters: + retentionDuration: "" diff --git a/samples/vxflex_140_k8s_118.yaml b/samples/vxflex_140_k8s_118.yaml new file mode 100644 index 0000000..f1b3ff5 --- /dev/null +++ b/samples/vxflex_140_k8s_118.yaml @@ -0,0 +1,65 @@ +apiVersion: storage.dell.com/v1 +kind: CSIVXFlexOS +metadata: + name: test-vxflexos + namespace: test-vxflexos +spec: + driver: + configVersion: v4 + replicas: 1 + forceUpdate: false + common: + image: "dellemc/csi-vxflexos:v1.4.0" + imagePullPolicy: IfNotPresent + envs: + - name: X_CSI_VXFLEXOS_ENABLELISTVOLUMESNAPSHOT + value: "false" + - name: X_CSI_VXFLEXOS_ENABLESNAPSHOTCGDELETE + value: "false" + - name: X_CSI_DEBUG + value: "true" + - name: X_CSI_ALLOW_RWO_MULTI_POD_ACCESS + value: "false" + #sideCars: + # Uncomment the following section if you want to run the monitoring sidecar + # - name: sdc-monitor + # envs: + # - name: HOST_PID + # value: "1" + # - name: MDM + # value: "" + initContainers: + - image: dellemc/sdc:3.5.1.1-1 + imagePullPolicy: IfNotPresent + name: sdc + envs: + - name: MDM + value: "" + storageClass: + - name: vxflexos + default: true + reclaimPolicy: Delete + allowVolumeExpansion: true + parameters: + storagepool: pool1 + allowedTopologies: + - matchLabelExpressions: + # Replace X_CSI_VXFLEXOS_SYSTEMNAME with its value + - key: csi-vxflexos.dellemc.com/X_CSI_VXFLEXOS_SYSTEMNAME + values: + - csi-vxflexos.dellemc.com + - name: vxflexos-xfs + default: false + reclaimPolicy: Delete + allowVolumeExpansion: true + parameters: + storagepool: pool1 + FsType: xfs + allowedTopologies: + - matchLabelExpressions: + # Replace X_CSI_VXFLEXOS_SYSTEMNAME with its value + - key: csi-vxflexos.dellemc.com/X_CSI_VXFLEXOS_SYSTEMNAME + values: + - csi-vxflexos.dellemc.com + snapshotClass: + - name: vxflexos-snapclass diff --git a/samples/vxflex_140_k8s_119.yaml b/samples/vxflex_140_k8s_119.yaml new file mode 100644 index 0000000..f1b3ff5 --- /dev/null +++ b/samples/vxflex_140_k8s_119.yaml @@ -0,0 +1,65 @@ +apiVersion: storage.dell.com/v1 +kind: CSIVXFlexOS +metadata: + name: test-vxflexos + namespace: test-vxflexos +spec: + driver: + configVersion: v4 + replicas: 1 + forceUpdate: false + common: + image: "dellemc/csi-vxflexos:v1.4.0" + imagePullPolicy: IfNotPresent + envs: + - name: X_CSI_VXFLEXOS_ENABLELISTVOLUMESNAPSHOT + value: "false" + - name: X_CSI_VXFLEXOS_ENABLESNAPSHOTCGDELETE + value: "false" + - name: X_CSI_DEBUG + value: "true" + - name: X_CSI_ALLOW_RWO_MULTI_POD_ACCESS + value: "false" + #sideCars: + # Uncomment the following section if you want to run the monitoring sidecar + # - name: sdc-monitor + # envs: + # - name: HOST_PID + # value: "1" + # - name: MDM + # value: "" + initContainers: + - image: dellemc/sdc:3.5.1.1-1 + imagePullPolicy: IfNotPresent + name: sdc + envs: + - name: MDM + value: "" + storageClass: + - name: vxflexos + default: true + reclaimPolicy: Delete + allowVolumeExpansion: true + parameters: + storagepool: pool1 + allowedTopologies: + - matchLabelExpressions: + # Replace X_CSI_VXFLEXOS_SYSTEMNAME with its value + - key: csi-vxflexos.dellemc.com/X_CSI_VXFLEXOS_SYSTEMNAME + values: + - csi-vxflexos.dellemc.com + - name: vxflexos-xfs + default: false + reclaimPolicy: Delete + allowVolumeExpansion: true + parameters: + storagepool: pool1 + FsType: xfs + allowedTopologies: + - matchLabelExpressions: + # Replace X_CSI_VXFLEXOS_SYSTEMNAME with its value + - key: csi-vxflexos.dellemc.com/X_CSI_VXFLEXOS_SYSTEMNAME + values: + - csi-vxflexos.dellemc.com + snapshotClass: + - name: vxflexos-snapclass diff --git a/samples/vxflex_140_k8s_120.yaml b/samples/vxflex_140_k8s_120.yaml new file mode 100644 index 0000000..f1b3ff5 --- /dev/null +++ b/samples/vxflex_140_k8s_120.yaml @@ -0,0 +1,65 @@ +apiVersion: storage.dell.com/v1 +kind: CSIVXFlexOS +metadata: + name: test-vxflexos + namespace: test-vxflexos +spec: + driver: + configVersion: v4 + replicas: 1 + forceUpdate: false + common: + image: "dellemc/csi-vxflexos:v1.4.0" + imagePullPolicy: IfNotPresent + envs: + - name: X_CSI_VXFLEXOS_ENABLELISTVOLUMESNAPSHOT + value: "false" + - name: X_CSI_VXFLEXOS_ENABLESNAPSHOTCGDELETE + value: "false" + - name: X_CSI_DEBUG + value: "true" + - name: X_CSI_ALLOW_RWO_MULTI_POD_ACCESS + value: "false" + #sideCars: + # Uncomment the following section if you want to run the monitoring sidecar + # - name: sdc-monitor + # envs: + # - name: HOST_PID + # value: "1" + # - name: MDM + # value: "" + initContainers: + - image: dellemc/sdc:3.5.1.1-1 + imagePullPolicy: IfNotPresent + name: sdc + envs: + - name: MDM + value: "" + storageClass: + - name: vxflexos + default: true + reclaimPolicy: Delete + allowVolumeExpansion: true + parameters: + storagepool: pool1 + allowedTopologies: + - matchLabelExpressions: + # Replace X_CSI_VXFLEXOS_SYSTEMNAME with its value + - key: csi-vxflexos.dellemc.com/X_CSI_VXFLEXOS_SYSTEMNAME + values: + - csi-vxflexos.dellemc.com + - name: vxflexos-xfs + default: false + reclaimPolicy: Delete + allowVolumeExpansion: true + parameters: + storagepool: pool1 + FsType: xfs + allowedTopologies: + - matchLabelExpressions: + # Replace X_CSI_VXFLEXOS_SYSTEMNAME with its value + - key: csi-vxflexos.dellemc.com/X_CSI_VXFLEXOS_SYSTEMNAME + values: + - csi-vxflexos.dellemc.com + snapshotClass: + - name: vxflexos-snapclass diff --git a/samples/vxflex_140_ops_46.yaml b/samples/vxflex_140_ops_46.yaml new file mode 100644 index 0000000..dae0cf7 --- /dev/null +++ b/samples/vxflex_140_ops_46.yaml @@ -0,0 +1,66 @@ +apiVersion: storage.dell.com/v1 +kind: CSIVXFlexOS +metadata: + name: test-vxflexos + namespace: test-vxflexos +spec: + driver: + configVersion: v4 + replicas: 1 + forceUpdate: false + common: + image: "dellemc/csi-vxflexos:v1.4.0" + imagePullPolicy: IfNotPresent + envs: + - name: X_CSI_VXFLEXOS_ENABLELISTVOLUMESNAPSHOT + value: "false" + - name: X_CSI_VXFLEXOS_ENABLESNAPSHOTCGDELETE + value: "false" + - name: X_CSI_DEBUG + value: "true" + - name: X_CSI_ALLOW_RWO_MULTI_POD_ACCESS + value: "false" + sideCars: + # Uncomment the following section if you want to run the monitoring sidecar + - name: sdc-monitor + envs: + - name: HOST_PID + value: "1" + - name: MDM + value: "" + initContainers: + - image: dellemc/sdc:3.5.1.1-1 + imagePullPolicy: IfNotPresent + name: sdc + envs: + - name: MDM + value: "" + + storageClass: + - name: vxflexos + default: true + reclaimPolicy: Delete + allowVolumeExpansion: true + parameters: + storagepool: pool1 + allowedTopologies: + - matchLabelExpressions: + # Replace X_CSI_VXFLEXOS_SYSTEMNAME with its value + - key: csi-vxflexos.dellemc.com/X_CSI_VXFLEXOS_SYSTEMNAME + values: + - csi-vxflexos.dellemc.com + - name: vxflexos-xfs + default: false + reclaimPolicy: Delete + allowVolumeExpansion: true + parameters: + storagepool: pool1 + FsType: xfs + allowedTopologies: + - matchLabelExpressions: + # Replace X_CSI_VXFLEXOS_SYSTEMNAME with its value + - key: csi-vxflexos.dellemc.com/X_CSI_VXFLEXOS_SYSTEMNAME + values: + - csi-vxflexos.dellemc.com + snapshotClass: + - name: vxflexos-snapclass diff --git a/samples/vxflex_140_ops_47.yaml b/samples/vxflex_140_ops_47.yaml new file mode 100644 index 0000000..a70e630 --- /dev/null +++ b/samples/vxflex_140_ops_47.yaml @@ -0,0 +1,66 @@ +apiVersion: storage.dell.com/v1 +kind: CSIVXFlexOS +metadata: + name: test-vxflexos + namespace: test-vxflexos +spec: + driver: + configVersion: v4 + replicas: 1 + forceUpdate: false + common: + image: "dellemc/csi-vxflexos:v1.4.0" + imagePullPolicy: IfNotPresent + envs: + - name: X_CSI_VXFLEXOS_ENABLELISTVOLUMESNAPSHOT + value: "false" + - name: X_CSI_VXFLEXOS_ENABLESNAPSHOTCGDELETE + value: "false" + - name: X_CSI_DEBUG + value: "true" + - name: X_CSI_ALLOW_RWO_MULTI_POD_ACCESS + value: "false" + #sideCars: + # Uncomment the following section if you want to run the monitoring sidecar + # - name: sdc-monitor + # envs: + # - name: HOST_PID + # value: "1" + # - name: MDM + # value: "" + initContainers: + - image: dellemc/sdc:3.5.1.1-1 + imagePullPolicy: IfNotPresent + name: sdc + envs: + - name: MDM + value: "" + + storageClass: + - name: vxflexos + default: true + reclaimPolicy: Delete + allowVolumeExpansion: true + parameters: + storagepool: pool1 + allowedTopologies: + - matchLabelExpressions: + # Replace X_CSI_VXFLEXOS_SYSTEMNAME with its value + - key: csi-vxflexos.dellemc.com/X_CSI_VXFLEXOS_SYSTEMNAME + values: + - csi-vxflexos.dellemc.com + - name: vxflexos-xfs + default: false + reclaimPolicy: Delete + allowVolumeExpansion: true + parameters: + storagepool: pool1 + FsType: xfs + allowedTopologies: + - matchLabelExpressions: + # Replace X_CSI_VXFLEXOS_SYSTEMNAME with its value + - key: csi-vxflexos.dellemc.com/X_CSI_VXFLEXOS_SYSTEMNAME + values: + - csi-vxflexos.dellemc.com + snapshotClass: + - name: vxflexos-snapclass diff --git a/scripts/csi-offline-bundle.sh b/scripts/csi-offline-bundle.sh index 997b4c0..8d02c55 100755 --- a/scripts/csi-offline-bundle.sh +++ b/scripts/csi-offline-bundle.sh @@ -243,7 +243,6 @@ if [ "${MODE}" == "helm" ]; then REQUIRED_FILES=( "${HELMDIR}" "${INSTALLERDIR}" - "${REPODIR}/*.pdf" "${REPODIR}/*.md" "${REPODIR}/LICENSE" ) diff --git a/scripts/install.sh b/scripts/install.sh index fe0a5ab..33de5b7 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -4,7 +4,6 @@ VERIFYSCRIPT="verify.sh" SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" PROG="${0}" ROOTDIR="$(dirname "$SCRIPTDIR")" -SNAPCLASSDIR="$ROOTDIR/deploy/beta-snapshot-crds" DEPLOYDIR="$ROOTDIR/deploy" CONFIGDIR="$ROOTDIR/config" POWERMAX_CRD="csipowermaxes.storage.dell.com" @@ -24,7 +23,6 @@ function usage() { echo "Options:" echo " Optional" echo " --upgrade Perform an upgrade of the specified driver, default is false" - echo " --snapshot-crd Install snapshot CRDs. Default will not install beta snapshot crds." echo " -h Help" echo @@ -76,14 +74,10 @@ function verify_kubernetes() { if [ ! -f "${SCRIPTDIR}/${VERIFYSCRIPT}" ]; then log error "Unable to locate ${VERIFYSCRIPT} script in ${SCRIPTDIR}" fi - if [ "$INSTALL_CRD" == "yes" ]; then - bash "${SCRIPTDIR}/${VERIFYSCRIPT}" --skip-betacrd-validation - else - bash "${SCRIPTDIR}/${VERIFYSCRIPT}" - fi + bash "${SCRIPTDIR}/${VERIFYSCRIPT}" case $? in 0) ;; - + 1) warning "Kubernetes validation failed but installation can continue. " \ "This may affect driver installation." @@ -144,41 +138,6 @@ function check_for_operator() { fi } -function install_beta_snapshot_crd() { - declare -A SNAPCLASSES=( - ["volumesnapshotclasses"]="snapshot.storage.k8s.io_volumesnapshotclasses.yaml" - ["volumesnapshotcontents"]="snapshot.storage.k8s.io_volumesnapshotcontents.yaml" - ["volumesnapshots"]="snapshot.storage.k8s.io_volumesnapshots.yaml" - ) - for C in "${!SNAPCLASSES[@]}"; do - if [ ! -f "${SNAPCLASSDIR}/${SNAPCLASSES[$C]}" ]; then - echo "Unable to to find Snapshot Classes CRD file at ${SNAPCLASSDIR}" - exit 1 - fi - kubectl get crd | grep "${C}" --quiet - if [[ $? -ne 0 ]]; then - # make sure CRD exists - log step "Installing CRD: $C" - # create the custom resource - kubectl create -f "${SNAPCLASSDIR}/${SNAPCLASSES[$C]}" > /dev/null 2>&1 - if [ $? -ne 0 ]; then - log step_failure - log error "Failed to install $CRD" - else - log step_success - fi - else - log step "Updating CRD: $C" - kubectl apply -f "${SNAPCLASSDIR}/${SNAPCLASSES[$C]}" > /dev/null 2>&1 - if [ $? -ne 0 ]; then - log error "Failed to update $CRD" - fi - log step_success - fi - done - sleep 3s -} - function install_or_update_driver_crd() { log step "Install/Update CRDs" kubectl apply -f ${DEPLOYDIR}/crds/storage.dell.com.crds.all.yaml 2>&1 >/dev/null @@ -261,10 +220,6 @@ while getopts ":h-:" optchar; do case "${optchar}" in -) case "${OPTARG}" in - # SNAPSHOT_CRD - snapshot-crd) - INSTALL_CRD="yes" - ;; upgrade) MODE="upgrade" ;; @@ -292,9 +247,6 @@ header check_for_kubectl check_for_operator verify_kubernetes -if [ "$INSTALL_CRD" == "yes" ]; then - install_beta_snapshot_crd -fi install_operator check_progress diff --git a/scripts/verify.sh b/scripts/verify.sh index 36b401b..daa04cb 100755 --- a/scripts/verify.sh +++ b/scripts/verify.sh @@ -2,19 +2,6 @@ SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -skip_beta_crd_flag="" -if [ $# -ne 0 ]; then - skip_beta_crd_flag=$1 -fi - -if [ "$skip_beta_crd_flag" == "--skip-betacrd-validation" ]; then - skip_beta_crd_validation=true -fi - -VOLUMESNAPSHOTCLASSCRD="volumesnapshotclasses.snapshot.storage.k8s.io" -VOLUMESNAPSHOTCONTENTCRD="volumesnapshotcontents.snapshot.storage.k8s.io" -VOLUMESNAPSHOTSCRD="volumesnapshots.snapshot.storage.k8s.io" - # print header information function header() { echo @@ -35,7 +22,7 @@ function verify_min_k8s_version() { if [[ "${2}" -gt "${kMinorVersion}" ]]; then RESULT_K8S_MIN_VER="Failed" AddError "Kubernetes version, ${kMajorVersion}.${kMinorVersion}, is too old. Minimum required version is: ${1}.${2}" - fi + fi if [ $RESULT_K8S_MIN_VER == "Failed" ]; then log step_failure else @@ -62,41 +49,38 @@ function verify_max_k8s_version() { fi } -# verify that the alpha snap CRDs are not installed -verify_beta_snap_crds() { - # check for the beta snapshot CRDs. These shouldn't be present for installation to proceed with - if [ "$skip_beta_crd_validation" == true ]; then - echo "Skipping check to see if beta snapshot CRDs are installed" - else +# verify that the snap CRDs are installed +function verify_snap_crds() { + # check for the snapshot CRDs. CRDS=("VolumeSnapshotClasses" "VolumeSnapshotContents" "VolumeSnapshots") for C in "${CRDS[@]}"; do - log step "Checking for beta $C CRD" - # Verify that beta snapshot related CRDs/CRs are not there on the system. - kubectl explain ${C} 2> /dev/null | grep "^VERSION.*v1beta1$" --quiet + log step "Checking $C CRD" + # Verify that snapshot related CRDs/CRs exist on the system. + kubectl explain ${C} > /dev/null 2>&1 if [ $? -ne 0 ]; then - AddError "The beta CRD for ${C} is not installed. Please install it" - RESULT_BETA_SNAP_CRDS="Failed" + AddError "The CRD for ${C} is not Found. These need to be installed by the Kubernetes administrator" + RESULT_SNAP_CRDS="Failed" log step_failure else log step_success fi done - fi } -function verify_beta_snapshot_controller() { +function verify_snapshot_controller() { log step "Checking if snapshot controller is deployed" # check for the snapshot-controller. These are strongly suggested but not required kubectl get pods -A | grep snapshot-controller --quiet if [ $? -ne 0 ]; then - AddWarning "The Snapshot Controller does not seem to be deployed" - RESULT_BETA_SNAP_CONTROLLER="Failed" + AddWarning "The Snapshot Controller was not found on the system. These need to be installed by the Kubernetes administrator." + RESULT_SNAP_CONTROLLER="Failed" log step_failure else log step_success fi } + # error, installation will not continue function AddError() { for N in "$@"; do @@ -144,17 +128,10 @@ function summary() { log step "Kubernetes Max version:" log ${RESULT_K8S_MAX_VER} - if [[ "$kMinorVersion" -gt 16 ]]; then - log step "Beta Snapshot CRDs:" - if [ "$skip_beta_crd_validation" == true ]; then - log step_warning - log warning "Skipped because of user request" - else - log ${RESULT_BETA_SNAP_CRDS} - fi - log step "Beta Snapshot Controller:" - log ${RESULT_BETA_SNAP_CONTROLLER} - fi + log step "Snapshot CRDs:" + log ${RESULT_SNAP_CRDS} + log step "Snapshot Controller:" + log ${RESULT_SNAP_CONTROLLER} echo } @@ -165,9 +142,8 @@ function summary() { # default values RESULT_K8S_MIN_VER="Passed" RESULT_K8S_MAX_VER="Passed" -RESULT_ALPHA_SNAP_CRDS="Passed" -RESULT_BETA_SNAP_CRDS="Passed" -RESULT_BETA_SNAP_CONTROLLER="Passed" +RESULT_SNAP_CRDS="Passed" +RESULT_SNAP_CONTROLLER="Passed" # exit codes EXIT_SUCCESS=0 @@ -189,13 +165,14 @@ header log separator verify_min_k8s_version "1" "17" verify_max_k8s_version "1" "20" +verify_snap_crds +verify_snapshot_controller log separator summary -if [ ${RESULT_BETA_SNAP_CRDS} == "Failed" ]; then - echo "Please install CSI VolumeSnapshot Beta CRDs before continuing." - echo "Run the install script with the option --snapshot-crd to install the beta snapshot CRD" +if [ ${RESULT_SNAP_CRDS} == "Failed" ]; then + echo "Some of the CRDs are not found on the system. These need to be installed by the Kubernetes administrator." fi echo exit $RC \ No newline at end of file