From 0a526bc22358197d5516c2a1370514d4053d9477 Mon Sep 17 00:00:00 2001 From: Michael Mattsson Date: Fri, 5 Aug 2022 09:52:05 -0700 Subject: [PATCH 1/2] rancher-c1 Signed-off-by: Michael Mattsson --- .../generated-changes/overlay/questions.yml | 60 +++++++++---------- .../generated-changes/patch/Chart.yaml.patch | 45 +++++--------- packages/hpe-csi-driver/package.yaml | 4 +- 3 files changed, 48 insertions(+), 61 deletions(-) diff --git a/packages/hpe-csi-driver/generated-changes/overlay/questions.yml b/packages/hpe-csi-driver/generated-changes/overlay/questions.yml index 3c5cd2a8c..fa860cfdc 100644 --- a/packages/hpe-csi-driver/generated-changes/overlay/questions.yml +++ b/packages/hpe-csi-driver/generated-changes/overlay/questions.yml @@ -1,6 +1,18 @@ labels: io.rancher.certified: partner questions: +- variable: disableNodeConformance + label: "Disable automatic installation of iSCSI/Multipath Packages" + type: boolean + default: false + description: "Disable automatic installation of iSCSI/Multipath Packages" + group: "HPE CSI Driver settings" +- variable: disableNodeGetVolumeStats + label: "Disable NoteGetVolumeStats" + type: boolean + default: false + description: "Disable NodeGetVolumeStats call to CSI driver" + group: "HPE CSI Driver settings" - variable: imagePullPolicy label: "ImagePullPolicy" default: "IfNotPresent" @@ -11,12 +23,6 @@ questions: - "Never" description: "ImagePullPolicy for all CSI driver images" group: "HPE CSI Driver settings" -- variable: disableNodeConformance - label: "Disable automatic installation of iSCSI/Multipath Packages" - type: boolean - default: false - description: "Disable automatic installation of iSCSI/Multipath Packages" - group: "HPE CSI Driver settings" - variable: iscsi.chapUser label: "iSCSI CHAP Username" type: string @@ -31,12 +37,30 @@ questions: required: false description: "Specify password for iSCSI CHAP authentication" group: "HPE iSCSI settings" +- variable: logLevel + label: "Set log level" + default: "info" + type: enum + options: + - "info" + - "debug" + - "trace" + - "warn" + - "error" + description: "Sets the CSI driver and sidecar log level" + group: "HPE CSI Driver settings" - variable: registry label: "Registry" type: string default: "quay.io" description: "Specify registry prefix (hostname[:port]) for CSI driver images" group: "HPE CSI Driver settings" +- variable: kubeletRootDir + label: "Set kubeletRootDir" + type: string + default: "/var/lib/kubelet" + description: "The kubelet root directory path" + group: "HPE CSI Driver settings" - variable: disable.nimble label: "Disable Nimble" type: boolean @@ -61,27 +85,3 @@ questions: default: false description: "Disable HPE Alletra 9000 CSP Service" group: "Disable Container Storage Providers" -- variable: disableNodeGetVolumeStats - label: "Disable NoteGetVolumeStats" - type: boolean - default: false - description: "Disable NodeGetVolumeStats call to CSI driver" - group: "HPE CSI Driver settings" -- variable: kubeletRootDir - label: "Set kubeletRootDir" - type: string - default: "/var/lib/kubelet" - description: "The kubelet root directory path" - group: "HPE CSI Driver settings" -- variable: logLevel - label: "Set log level" - default: "info" - type: enum - options: - - "info" - - "debug" - - "trace" - - "warn" - - "error" - description: "Sets the CSI driver and sidecar log level" - group: "HPE CSI Driver settings" diff --git a/packages/hpe-csi-driver/generated-changes/patch/Chart.yaml.patch b/packages/hpe-csi-driver/generated-changes/patch/Chart.yaml.patch index f0d2c05da..231a81227 100644 --- a/packages/hpe-csi-driver/generated-changes/patch/Chart.yaml.patch +++ b/packages/hpe-csi-driver/generated-changes/patch/Chart.yaml.patch @@ -1,42 +1,29 @@ --- charts-original/Chart.yaml +++ charts/Chart.yaml -@@ -1,23 +1,27 @@ -+apiVersion: v1 -+version: "2.1.1" -+appVersion: "2.1.1" - annotations: -+ artifacthub.io/prerelease: "false" - artifacthub.io/license: Apache-2.0 - artifacthub.io/links: | +@@ -4,6 +4,12 @@ - name: Documentation url: https://scod.hpedev.io/csi_driver -- artifacthub.io/prerelease: "false" --apiVersion: v1 --appVersion: 2.1.1 + artifacthub.io/prerelease: "false" + catalog.cattle.io/certified: partner -+ catalog.cattle.io/release-name: hpe-csi-driver + catalog.cattle.io/display-name: HPE CSI Driver for Kubernetes ++ catalog.cattle.io/release-name: hpe-csi-driver ++ catalog.cattle.io/namespace: hpe-storage ++ catalog.cattle.io/os: linux ++description: A Helm chart for installing the HPE CSI Driver for Kubernetes + apiVersion: v1 + appVersion: 2.2.0 description: A Helm chart for installing the HPE CSI Driver for Kubernetes --home: https://hpe.com/storage/containers - icon: https://raw.githubusercontent.com/hpe-storage/co-deployments/master/docs/assets/hpedev.png --keywords: --- HPE --- Storage --- CSI +@@ -14,10 +20,11 @@ + - Storage + - CSI maintainers: -- email: hpe-containers-dev@hpe.com - name: raunakkumar --name: hpe-csi-driver -+- name: datamattsson -+ email: datamattsson@hpe.com ++- email: datamattsson@hpe.com ++ name: datamattsson + name: hpe-csi-driver sources: - https://github.com/hpe-storage/co-deployments - https://github.com/hpe-storage/csi-driver --version: 2.1.1-0 -+name: hpe-csi-driver -+home: https://hpe.com/storage/containers -+keywords: -+ - HPE -+ - Storage -+ - CSI -+kubeVersion: "1.21 - 1.23" + version: 2.2.0 ++kubeVersion: 1.21 - 1.24 diff --git a/packages/hpe-csi-driver/package.yaml b/packages/hpe-csi-driver/package.yaml index d271db07c..f8a0a7434 100644 --- a/packages/hpe-csi-driver/package.yaml +++ b/packages/hpe-csi-driver/package.yaml @@ -1,2 +1,2 @@ -url: https://hpe-storage.github.io/co-deployments/hpe-csi-driver-2.1.1-0.tgz -version: "2.1.1" +url: https://hpe-storage.github.io/co-deployments/hpe-csi-driver-2.2.0.tgz +version: "2.2.0" From c2fc26fa23811560b6af1cd8ddef570bd5bdb9cf Mon Sep 17 00:00:00 2001 From: Michael Mattsson Date: Fri, 5 Aug 2022 09:52:35 -0700 Subject: [PATCH 2/2] rancher-c2 Signed-off-by: Michael Mattsson --- .../hpe-csi-driver/hpe-csi-driver-2.2.0.tgz | Bin 0 -> 17150 bytes .../hpe-csi-driver/2.2.0/Chart.yaml | 29 + .../hpe-csi-driver/2.2.0/README.md | 166 +++++ .../hpe-csi-driver/2.2.0/app-readme.md | 3 + .../2.2.0/crds/hpe-nodeinfo-crd.yaml | 70 +++ .../crds/hpereplicated_deviceinfo_v2_crd.yaml | 115 ++++ .../crds/hpevolumegroupinfos_v2_crd.yaml | 124 ++++ .../2.2.0/crds/hpevolumeinfos_v2_crd.yaml | 68 +++ .../2.2.0/crds/snapshotgroupinfos_v2_crd.yaml | 112 ++++ .../storage.hpe.com_snapshotgroupclasses.yaml | 60 ++ ...storage.hpe.com_snapshotgroupcontents.yaml | 104 ++++ .../crds/storage.hpe.com_snapshotgroups.yaml | 83 +++ .../storage.hpe.com_volumegroupclasses.yaml | 60 ++ .../storage.hpe.com_volumegroupcontents.yaml | 96 +++ .../crds/storage.hpe.com_volumegroups.yaml | 69 +++ .../hpe-csi-driver/2.2.0/files/config.json | 405 +++++++++++++ .../hpe-csi-driver/2.2.0/questions.yml | 87 +++ .../hpe-csi-driver/2.2.0/templates/NOTES.txt | 0 .../2.2.0/templates/_helpers.tpl | 32 + .../2.2.0/templates/csi-driver-crd.yaml | 24 + .../2.2.0/templates/hpe-csi-controller.yaml | 246 ++++++++ .../2.2.0/templates/hpe-csi-node.yaml | 207 +++++++ .../2.2.0/templates/hpe-csi-rbac.yaml | 565 ++++++++++++++++++ .../2.2.0/templates/hpe-linux-config.yaml | 13 + .../2.2.0/templates/nimble-csp.yaml | 94 +++ .../2.2.0/templates/primera-3par-csp.yaml | 103 ++++ .../hpe-csi-driver/2.2.0/test_values.yaml | 155 +++++ .../hpe-csi-driver/2.2.0/values.schema.json | 274 +++++++++ .../hpe-csi-driver/2.2.0/values.yaml | 73 +++ index.yaml | 33 + 30 files changed, 3470 insertions(+) create mode 100644 assets/hpe-csi-driver/hpe-csi-driver-2.2.0.tgz create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/Chart.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/README.md create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/app-readme.md create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/hpe-nodeinfo-crd.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/hpereplicated_deviceinfo_v2_crd.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/hpevolumegroupinfos_v2_crd.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/hpevolumeinfos_v2_crd.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/snapshotgroupinfos_v2_crd.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_snapshotgroupclasses.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_snapshotgroupcontents.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_snapshotgroups.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_volumegroupclasses.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_volumegroupcontents.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_volumegroups.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/files/config.json create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/questions.yml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/NOTES.txt create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/_helpers.tpl create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/csi-driver-crd.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/hpe-csi-controller.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/hpe-csi-node.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/hpe-csi-rbac.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/hpe-linux-config.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/nimble-csp.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/primera-3par-csp.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/test_values.yaml create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/values.schema.json create mode 100644 charts/hpe-csi-driver/hpe-csi-driver/2.2.0/values.yaml diff --git a/assets/hpe-csi-driver/hpe-csi-driver-2.2.0.tgz b/assets/hpe-csi-driver/hpe-csi-driver-2.2.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0d39c7390987264bd940a4d0fa4aa4819e951a1a GIT binary patch literal 17150 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 1.18 +- Most Kubernetes distributions are supported +- Recent Ubuntu, SLES, CentOS or RHEL compute nodes connected to their respective official package repositories +- Helm 3 (Version >= 3.2.0 required) + +Depending on which [Container Storage Provider](https://scod.hpedev.io/container_storage_provider/index.html) (CSP) is being used, other prerequisites and requirements may apply, such as storage platform OS and features. + +- [HPE Alletra 6000 and Nimble Storage](https://scod.hpedev.io/container_storage_provider/hpe_nimble_storage/index.html) +- [HPE Alletra 9000, Primera and 3PAR](https://scod.hpedev.io/container_storage_provider/hpe_3par_primera/index.html) + +## Configuration and installation + +The following table lists the configurable parameters of the chart and their default values. + +| Parameter | Description | Default | +|---------------------------|------------------------------------------------------------------------|------------------| +| disable.nimble | Disable HPE Nimble Storage CSP `Service`. | false | +| disable.primera | Disable HPE Primera (and 3PAR) CSP `Service`. | false | +| disable.alletra6000 | Disable HPE Alletra 6000 CSP `Service`. | false | +| disable.alletra9000 | Disable HPE Alletra 9000 CSP `Service`. | false | +| disableNodeConformance | Disable automatic installation of iSCSI/Multipath Packages. | false | +| disableNodeGetVolumeStats | Disable NodeGetVolumeStats call to CSI driver. | false | +| imagePullPolicy | Image pull policy (`Always`, `IfNotPresent`, `Never`). | IfNotPresent | +| iscsi.chapUser | Username for iSCSI CHAP authentication. | "" | +| iscsi.chapPassword | Password for iSCSI CHAP authentication. | "" | +| logLevel | Log level. Can be one of `info`, `debug`, `trace`, `warn` and `error`. | info | +| registry | Registry to pull HPE CSI Driver container images from. | quay.io | +| kubeletRootDir | The kubelet root directory path. | /var/lib/kubelet | +| controller.labels | Additional labels for HPE CSI Driver controller Pods. | {} | +| controller.nodeSelector | Node labels for HPE CSI Driver controller Pods assignment. | {} | +| controller.affinity | Affinity rules for the HPE CSI Driver controller Pods. | {} | +| controller.tolerations | Node taints to tolerate for the HPE CSI Driver controller Pods. | [] | +| csp.labels | Additional labels for CSP Pods. | {} | +| csp.nodeSelector | Node labels for CSP Pods assignment. | {} | +| csp.affinity | Affinity rules for the CSP Pods. | {} | +| csp.tolerations | Node taints to tolerate for the CSP Pods. | [] | +| node.labels | Additional labels for HPE CSI Driver node Pods. | {} | +| node.nodeSelector | Node labels for HPE CSI Driver node Pods assignment. | {} | +| node.affinity | Affinity rules for the HPE CSI Driver node Pods. | {} | +| node.tolerations | Node taints to tolerate for the HPE CSI Driver node Pods. | [] | + +It's recommended to create a [values.yaml](https://github.com/hpe-storage/co-deployments/blob/master/helm/values/csi-driver) file from the corresponding release of the chart and edit it to fit the environment the chart is being deployed to. Download and edit [a sample file](https://github.com/hpe-storage/co-deployments/blob/master/helm/values/csi-driver). + +These are the bare minimum required parameters for a successful deployment to an iSCSI environment if CHAP authentication is required. + +``` +iscsi: + chapUser: "" + chapPassword: "" +``` + +Tweak any additional parameters to suit the environment or as prescribed by HPE. + +### Installing the chart + +To install the chart with the name `my-hpe-csi-driver`: + +Add HPE helm repo: + +``` +helm repo add hpe-storage https://hpe-storage.github.io/co-deployments/ +helm repo update +``` + +Install the latest chart: + +``` +kubectl create ns hpe-storage +helm install my-hpe-csi-driver hpe-storage/hpe-csi-driver -n hpe-storage -f myvalues.yaml +``` + +**Note**: `myvalues.yaml` is optional if no parameters are overridden from defaults. Also pay attention to what the latest version of the chart is. If it's labeled with `prerelease` and a "beta" tag, add `--version X.Y.Z` to install a "stable" chart. + +### Upgrading the chart + +Due to the [helm limitation](https://helm.sh/docs/chart_best_practices/custom_resource_definitions/#some-caveats-and-explanations) to not support upgrade of CRDs between different chart versions, helm chart upgrade is not supported. +Our recommendation is to uninstall the existing chart and install the chart with the desired version. CRDs will be preserved between uninstall and install. + +#### Upgrading 2.0.0 to 2.1.0 + +Before version 2.0.0 is uninstalled, the following CRDs needs to be updated. + +**Important:** If there are HPE Alletra 9000, Primera or 3PAR Remote Copy Groups configured on the cluster, follow the [next steps](#update-rcg-info) before uninstallation. + +##### Update RCG Info + +This step is only necessary if there are HPE Alletra 9000, Primera or 3PAR Remote Copy Groups configured on the cluster. If there are none, proceed to the [next step](#update-crds). + +Change kubectl context into the Namespace where the HPE CSI Driver is installed. The most common is "hpe-storage". + +``` +kubectl config set-context --current --namespace=hpe-storage +``` + +Create the Job using the below commands, which will modify the "rcg-info" record to the new key "RCGCreatedByCSP". + +``` +kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/rcg-info/v1.0.0/convert-rcg-info.yaml +``` + +Completion of job status can be verified using the below command. + +``` +kubectl wait --for=condition=complete --timeout=600s job/primera3par-rcg-info +``` + +Continue to [update the CRDs](#update-crds) followed by [uninstalling the chart](#uninstalling-the-chart). + +##### Update CRDs + +Before reinstallation of the driver, apply the new CRDs. + +``` +kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/helm/charts/hpe-csi-driver/crds/hpevolumeinfos_v2_crd.yaml +kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/helm/charts/hpe-csi-driver/crds/hpevolumegroupinfos_v2_crd.yaml +kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/helm/charts/hpe-csi-driver/crds/snapshotgroupinfos_v2_crd.yaml +kubectl apply -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/helm/charts/hpe-csi-driver/crds/hpereplicated_deviceinfo_v2_crd.yaml +``` + +#### Uninstalling the chart + +To uninstall the `my-hpe-csi-driver` chart: + +``` +helm uninstall my-hpe-csi-driver -n hpe-storage +``` + +**Note**: Due to a limitation in Helm, CRDs are not deleted as part of the chart uninstall. + +### Alternative install method + +In some cases it's more practical to provide the local configuration via the `helm` CLI directly. Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. These will take precedence over entries in [values.yaml](https://github.com/hpe-storage/co-deployments/blob/master/helm/values/csi-driver). For example: + +``` +helm install my-hpe-csi-driver hpe-storage/hpe-csi-driver -n hpe-storage \ + --set iscsi.chapUsername=admin \ + --set iscsi.chapPassword=xxxxxxxx +``` + +## Using persistent storage with Kubernetes + +Enable dynamic provisioning of persistent storage by creating a `StorageClass` API object that references a `Secret` which maps to a supported HPE primary storage backend. Refer to the [HPE CSI Driver for Kubernetes](https://scod.hpedev.io/csi_driver/deployment.html#add_a_hpe_storage_backend) documentation on [HPE Storage Container Orchestration Documentation](https://scod.hpedev.io/). Also, it's helpful to be familiar with [persistent storage concepts](https://kubernetes.io/docs/concepts/storage/volumes/) in Kubernetes prior to deploying stateful workloads. + +## Support + +The HPE CSI Driver for Kubernetes Helm chart is fully supported by HPE. + +Formal support statements for each HPE supported CSP is [available on SCOD](https://scod.hpedev.io/legal/support). Use this facility for formal support of your HPE storage products, including the Helm chart. + +## Community + +Please file any issues, questions or feature requests you may have [here](https://github.com/hpe-storage/co-deployments/issues) (do not use this facility for support inquiries of your HPE storage product, see [SCOD](https://scod.hpedev.io/legal/support) for support). You may also join our Slack community to chat with HPE folks close to this project. We hang out in `#NimbleStorage`, `#3par-primera`, and `#Kubernetes`. Sign up at [slack.hpedev.io](https://slack.hpedev.io/) and login at [hpedev.slack.com](https://hpedev.slack.com/) + +## Contributing + +We value all feedback and contributions. If you find any issues or want to contribute, please feel free to open an issue or file a PR. More details in [CONTRIBUTING.md](https://github.com/hpe-storage/co-deployments/blob/master/CONTRIBUTING.md) + +## License + +This is open source software licensed using the Apache License 2.0. Please see [LICENSE](https://github.com/hpe-storage/co-deployments/blob/master/LICENSE) for details. diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/app-readme.md b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/app-readme.md new file mode 100644 index 000000000..29ca912cb --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/app-readme.md @@ -0,0 +1,3 @@ +# HPE CSI Driver for Kubernetes + +The [HPE CSI Driver for Kubernetes](https://github.com/hpe-storage/csi-driver) leverages HPE storage platforms to provide scalable and persistent storage for stateful applications. diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/hpe-nodeinfo-crd.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/hpe-nodeinfo-crd.yaml new file mode 100644 index 000000000..86c60cf34 --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/hpe-nodeinfo-crd.yaml @@ -0,0 +1,70 @@ +--- +############################################# +############ HPE Node Info CRD ############ +############################################# +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: hpenodeinfos.storage.hpe.com +spec: + group: storage.hpe.com + names: + kind: HPENodeInfo + plural: hpenodeinfos + scope: Cluster + versions: + - name: v1 + # Each version can be enabled/disabled by Served flag. + served: true + # One and only one version must be marked as the storage version. + storage: true + schema: + openAPIV3Schema: + properties: + apiVersion: + description: "APIVersion defines the versioned schema of this representation of an object." + type: string + kind: + description: "Kind is a string value representing the REST resource this object represents" + type: string + spec: + description: "spec defines the desired characteristics of a HPE nodeinfo requested by a user." + properties: + chapPassword: + description: "The CHAP Password" + type: string + chapUser: + description: "The CHAP User Name" + type: string + iqns: + description: "List of IQNs configured on the node." + items: + type: string + type: array + networks: + description: "List of networks configured on the node." + items: + type: string + type: array + uuid: + description: "The UUID of the node." + type: string + wwpns: + description: "List of WWPNs configured on the node." + items: + type: string + type: array + required: + - uuid + - networks + type: object + required: + - spec + type: object +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] \ No newline at end of file diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/hpereplicated_deviceinfo_v2_crd.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/hpereplicated_deviceinfo_v2_crd.yaml new file mode 100644 index 000000000..b95a9eef9 --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/hpereplicated_deviceinfo_v2_crd.yaml @@ -0,0 +1,115 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: hpereplicationdeviceinfos.storage.hpe.com +spec: + group: storage.hpe.com + names: + kind: HPEReplicationDeviceInfo + plural: hpereplicationdeviceinfos + shortNames: + - hperdi + + scope: Cluster + versions: + - name: v1 + # Each version can be enabled/disabled by Served flag. + served: true + # One and only one version must be marked as the storage version. + storage: false + schema: + openAPIV3Schema: + type: object + #x-kubernetes-preserve-unknown-fields: true + properties: + hpeReplicationDeviceInfos: + description: List of HPE Replicated Device Information + type: object + items: + type: object + properties: + targets: + description: List of Target Array Details + type: object + items: + description: Target Array Details + type: object + properties: + targetName: + description: Target Name of the array + type: string + targetCpg: + description: Target CPG of the array + type: string + targetSnapCpg: + description: Target Snap CPG of the array + type: string + targetSecret: + description: Secret of the replicated array + type: string + targetMode: + description: Replication Mode + type: string + targetSecretNamespace: + description: Namespace of secret + type: string + required: + - targetName + - targetCpg + - targetSecret + - targetSecretNamespace + - name: v2 + # Each version can be enabled/disabled by Served flag. + served: true + # One and only one version must be marked as the storage version. + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true + properties: + hpeReplicationDeviceInfos: + description: List of HPE Replicated Device Information + type: object + items: + type: object + properties: + targets: + description: List of Target Array Details + type: object + items: + description: Target Array Details + type: object + properties: + targetName: + description: Target Name of the array + type: string + targetCpg: + description: Target CPG of the array + type: string + targetSnapCpg: + description: Target Snap CPG of the array + type: string + targetSecret: + description: Secret of the replicated array + type: string + targetMode: + description: Replication Mode + type: string + targetSecretNamespace: + description: Namespace of secret + type: string + required: + - targetName + - targetCpg + - targetSecret + - targetSecretNamespace +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] + + diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/hpevolumegroupinfos_v2_crd.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/hpevolumegroupinfos_v2_crd.yaml new file mode 100644 index 000000000..2803998be --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/hpevolumegroupinfos_v2_crd.yaml @@ -0,0 +1,124 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: hpevolumegroupinfos.storage.hpe.com +spec: + group: storage.hpe.com + names: + kind: HPEVolumeGroupInfo + plural: hpevolumegroupinfos + shortNames: + - hpevgi + scope: Cluster + versions: + - name: v1 + # Each version can be enabled/disabled by Served flag. + served: true + # One and only one version must be marked as the storage version. + storage: false + schema: + openAPIV3Schema: + type: object + #x-kubernetes-preserve-unknown-fields: true + properties: + hpeVolumeGroupInfos: + description: List of HPE volume groups configured for 3PAR/Primera arrays. + items: + type: object + properties: + uuid: + description: The UUID of the node. + type: string + + record: + description: Metadata for the volume group + type: object + + snapshotGroups: + description: Snapshot groups that are linked to this volume group + items: + type: object + properties: + id: + description: ID of the snapshot group + type: string + + name: + description: Name of the snapshot group + type: string + type: object + volumes: + description: Volumes that are members in this volume group + + items: + type: object + properties: + volumeId: + description: ID of the member volume + type: string + + volumeName: + description: Name of the member volume + type: string + type: object + type: object + - name: v2 + # Each version can be enabled/disabled by Served flag. + served: true + # One and only one version must be marked as the storage version. + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true + properties: + hpeVolumeGroupInfos: + description: List of HPE volume groups configured for 3PAR/Primera arrays. + items: + type: object + properties: + uuid: + description: The UUID of the node. + type: string + + record: + description: Metadata for the volume group + type: object + + snapshotGroups: + description: Snapshot groups that are linked to this volume group + items: + type: object + properties: + id: + description: ID of the snapshot group + type: string + + name: + description: Name of the snapshot group + type: string + type: object + volumes: + description: Volumes that are members in this volume group + + items: + type: object + properties: + volumeId: + description: ID of the member volume + type: string + + volumeName: + description: Name of the member volume + type: string + type: object + type: object + +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] + diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/hpevolumeinfos_v2_crd.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/hpevolumeinfos_v2_crd.yaml new file mode 100644 index 000000000..7f995a724 --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/hpevolumeinfos_v2_crd.yaml @@ -0,0 +1,68 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: hpevolumeinfos.storage.hpe.com +spec: + group: storage.hpe.com + names: + kind: HPEVolumeInfo + plural: hpevolumeinfos + scope: Cluster + # list of versions supported by this CustomResourceDefinition + versions: + - name: v1 + # Each version can be enabled/disabled by Served flag. + served: true + # One and only one version must be marked as the storage version. + storage: false + schema: + openAPIV3Schema: + type: object + #x-kubernetes-preserve-unknown-fields: true + properties: + hpeVolumes: + description: List of HPE volumes configured for 3PAR/Primera arrays. + type: object + items: + type: object + properties: + uuid: + description: The UUID of the node. + type: string + + record: + description: Metadata for the volume + type: object + - name: v2 + # Each version can be enabled/disabled by Served flag. + served: true + # One and only one version must be marked as the storage version. + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true + + properties: + hpeVolumes: + description: List of HPE volumes configured for 3PAR/Primera arrays. + type: object + items: + type: object + properties: + uuid: + description: The UUID of the node. + type: string + + record: + description: Metadata for the volume + type: object + +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] + diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/snapshotgroupinfos_v2_crd.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/snapshotgroupinfos_v2_crd.yaml new file mode 100644 index 000000000..6fc351999 --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/snapshotgroupinfos_v2_crd.yaml @@ -0,0 +1,112 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + name: hpesnapshotgroupinfos.storage.hpe.com +spec: + group: storage.hpe.com + names: + kind: HPESnapshotGroupInfo + plural: hpesnapshotgroupinfos + shortNames: + - hpesgi + scope: Cluster + versions: + - name: v1 + # Each version can be enabled/disabled by Served flag. + served: true + # One and only one version must be marked as the storage version. + storage: false + schema: + openAPIV3Schema: + type: object + #x-kubernetes-preserve-unknown-fields: true + properties: + hpeSnapshotGroupInfos: + description: List of HPE snapshot groups created for 3PAR/Primera arrays. + type: object + items: + type: object + properties: + uuid: + description: The UUID of the node. + type: string + + record: + description: Metadata for the volume group + type: object + + snapshotVolumes: + description: Snapshot volumes that are part of this snapshot group + type: object + items: + type: object + properties: + srcVolumeId: + description: ID of the volume that is the source of this snapshot volume + type: string + + srcVolumeName: + description: Name of the volume that is the source of this snapshot volume + type: string + + snapshotId: + description: Snapshot volume Id + type: string + + snapshotName: + description: Snapshot volume name + type: string + - name: v2 + # Each version can be enabled/disabled by Served flag. + served: true + # One and only one version must be marked as the storage version. + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true + properties: + hpeSnapshotGroupInfos: + description: List of HPE snapshot groups created for 3PAR/Primera arrays. + type: object + items: + type: object + properties: + uuid: + description: The UUID of the node. + type: string + + record: + description: Metadata for the volume group + type: object + + snapshotVolumes: + description: Snapshot volumes that are part of this snapshot group + type: object + items: + type: object + properties: + srcVolumeId: + description: ID of the volume that is the source of this snapshot volume + type: string + + srcVolumeName: + description: Name of the volume that is the source of this snapshot volume + type: string + + snapshotId: + description: Snapshot volume Id + type: string + + snapshotName: + description: Snapshot volume name + type: string + +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] + diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_snapshotgroupclasses.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_snapshotgroupclasses.yaml new file mode 100644 index 000000000..b58878471 --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_snapshotgroupclasses.yaml @@ -0,0 +1,60 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: snapshotgroupclasses.storage.hpe.com +spec: + conversion: + strategy: None + group: storage.hpe.com + names: + kind: SnapshotGroupClass + listKind: SnapshotGroupClassList + plural: snapshotgroupclasses + singular: snapshotgroupclass + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: SnapshotGroupClass specifies parameters that a underlying + storage system uses when creating a volumegroup snapshot. A specific SnapshotGroupClass + is used by specifying its name in a VolumeGroupSnapshot object. SnapshotGroupClasses + are non-namespaced + properties: + apiVersion: + description: APIVersion defines the versioned schema of this representation + of an object. + type: string + deletionPolicy: + description: deletionPolicy determines whether a SnapshotGroupContent + created through the SnapshotGroupClass should be deleted when its + bound SnapshotGroup is deleted. Supported values are "Retain" and + "Delete". "Retain" means that the SnapshotGroupContent and its physical + snapshotGroup on underlying storage system are kept. "Delete" means that + the SnapshotGroupContent and its physical snapshotGroup on underlying + storage system are deleted. Required. + enum: + - Delete + - Retain + type: string + snapshotter: + description: snapshotter is the name of the storage driver that handles this + SnapshotGroupClass. Required. + type: string + kind: + description: Kind is a string value representing the REST resource + this object represents. + type: string + parameters: + additionalProperties: + type: string + description: parameters is a key-value map with storage driver specific + parameters for creating snapshotGroups. These values are opaque to Kubernetes. + type: object + required: + - deletionPolicy + - snapshotter + type: object + served: true + storage: true \ No newline at end of file diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_snapshotgroupcontents.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_snapshotgroupcontents.yaml new file mode 100644 index 000000000..a7132c59e --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_snapshotgroupcontents.yaml @@ -0,0 +1,104 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: snapshotgroupcontents.storage.hpe.com +spec: + conversion: + strategy: None + group: storage.hpe.com + names: + kind: SnapshotGroupContent + listKind: SnapshotGroupContentList + plural: snapshotgroupcontents + singular: snapshotgroupcontent + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: SnapshotGroupContent represents the actual "on-disk" snapshotGroup + 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/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/api-conventions.md#types-kinds' + type: string + spec: + description: spec defines properties of a SnapshotGroupContent created + by the underlying storage system. Required. + properties: + deletionPolicy: + description: deletionPolicy determines whether this SnapshotGroupContent + and its physical snapshotgroup on the underlying storage system should + be deleted when its bound SnapshotGroup is deleted. Supported + values are "Retain" and "Delete". "Retain" means that the SnapshotGroupContent + and its physical snapshotGroup on underlying storage system are kept. + "Delete" means that the SnapshotGroupContent and its physical + snapshotGroup on underlying storage system are deleted. + Required. + enum: + - Delete + - Retain + type: string + source: + description: source specifies from where a snapshotGroup will be created.Required. + properties: + snapshotGroupHandle: + description: snapshotGroupHandle specifies the snapshotGroup Id + of a pre-existing snapshotGroup on the underlying storage system. + This field is immutable. + type: string + type: object + snapshotGroupClassName: + description: name of the SnapshotGroupClass to which this snapshotGroup belongs. + type: string + snapshotGroupRef: + description: snapshotGroupRef specifies the SnapshotGroup object + to which this SnapshotGroupContent object is bound. SnapshotGroup.Spec.SnapshotGroupContentName + field must reference to this SnapshotGroupContent's name for + the bidirectional binding to be valid. + Required. + properties: + apiVersion: + description: API version of the referent. + type: string + kind: + description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/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/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 + volumeSnapshotContentNames: + description: list of volumeSnapshotContentNames associated with this snapshotGroups + type: array + items: + type: string + required: + - deletionPolicy + - source + - snapshotGroupClassName + type: object + required: + - spec + type: object + served: true + storage: true \ No newline at end of file diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_snapshotgroups.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_snapshotgroups.yaml new file mode 100644 index 000000000..3372a7db7 --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_snapshotgroups.yaml @@ -0,0 +1,83 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: snapshotgroups.storage.hpe.com +spec: + conversion: + strategy: None + group: storage.hpe.com + names: + kind: SnapshotGroup + listKind: SnapshotGroupList + plural: snapshotgroups + singular: snapshotgroup + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: SnapshotGroup is a user's request for creating a snapshotgroup + properties: + apiVersion: + description: APIVersion defines the versioned schema of this representation + of an object. + type: string + kind: + description: 'Kind is a string value representing the REST resource + this object represents' + type: string + spec: + description: spec defines the desired characteristics of a snapshotGroup + requested by a user. + Required. + properties: + source: + description: source specifies where a snapshotGroup will be created. + This field is immutable after creation. Required. + properties: + kind: + description: kind of the source (VolumeGroup) is the only supported one. + type: string + apiGroup: + description: apiGroup of the source. Current supported is storage.hpe.com + type: string + name: + description: name specifies the volumeGroupName of the VolumeGroup object in the same namespace as the SnapshotGroup object where the snapshotGroup should be dynamically taken from. This field is immutable. + type: string + type: object + volumeSnapshotClassName: + description: name of the volumeSnapshotClass to create pre-provisioned snapshots + type: string + snapshotGroupClassName: + description: snapshotGroupClassName is the name of the SnapshotGroupClass requested by the SnapshotGroup. + type: string + snapshotGroupContentName: + description: snapshotGroupContentName is the name of the snapshotGroupContent the snapshotGroup is bound. + type: string + required: + - source + - volumeSnapshotClassName + - snapshotGroupClassName + type: object + status: + description: status represents the current information of a snapshotGroup. + properties: + creationTime: + description: creationTime is the timestamp when the point-in-time + snapshotGroup is taken by the underlying storage system. + format: date-time + type: string + phase: + description: the state of the snapshotgroup + enum: + - Pending + - Ready + - Failed + type: string + type: object + required: + - spec + type: object + served: true + storage: true \ No newline at end of file diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_volumegroupclasses.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_volumegroupclasses.yaml new file mode 100644 index 000000000..e201ec94e --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_volumegroupclasses.yaml @@ -0,0 +1,60 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: volumegroupclasses.storage.hpe.com +spec: + conversion: + strategy: None + group: storage.hpe.com + names: + kind: VolumeGroupClass + listKind: VolumeGroupClassList + plural: volumegroupclasses + singular: volumegroupclass + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: VolumeGroupClass specifies parameters that a underlying + storage system uses when creating a volumegroup. A specific VolumeGroupClass + is used by specifying its name in a VolumeGroup object. VolumeGroupClasses + are non-namespaced + properties: + apiVersion: + description: APIVersion defines the versioned schema of this representation + of an object. + type: string + deletionPolicy: + description: deletionPolicy determines whether a VolumeGroupContent + created through the VolumeGroupClass should be deleted when its + bound VolumeGroup is deleted. Supported values are "Retain" and + "Delete". "Retain" means that the VolumeGroupContent and its physical + volumeGroup on underlying storage system are kept. "Delete" means that + the VolumeGroupContent and its physical volumeGroup on underlying + storage system are deleted. Required. + enum: + - Delete + - Retain + type: string + provisioner: + description: provisioner is the name of the storage driver that handles this + VolumeGroupClass. Required. + type: string + kind: + description: Kind is a string value representing the REST resource + this object represents. + type: string + parameters: + additionalProperties: + type: string + description: parameters is a key-value map with storage driver specific + parameters for creating volumeGroups. These values are opaque to Kubernetes. + type: object + required: + - deletionPolicy + - provisioner + type: object + served: true + storage: true \ No newline at end of file diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_volumegroupcontents.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_volumegroupcontents.yaml new file mode 100644 index 000000000..d944909eb --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_volumegroupcontents.yaml @@ -0,0 +1,96 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: volumegroupcontents.storage.hpe.com +spec: + conversion: + strategy: None + group: storage.hpe.com + names: + kind: VolumeGroupContent + listKind: VolumeGroupContentList + plural: volumegroupcontents + singular: volumegroupcontent + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: VolumeGroupContent represents the actual "on-disk" volumeGroup + object in the underlying storage system + properties: + apiVersion: + description: APIVersion defines the versioned schema of this representation + of an object. + type: string + kind: + description: Kind is a string value representing the REST resource + this object represents. + type: string + spec: + description: spec defines properties of a VolumeGroupContent created + by the underlying storage system. Required. + properties: + deletionPolicy: + description: deletionPolicy determines whether this VolumeGroupContent + and its physical volumegroup on the underlying storage system should + be deleted when its bound VolumeGroup is deleted. Supported + values are "Retain" and "Delete". "Retain" means that the VolumeGroupContent + and its physical volumeGroup on underlying storage system are kept. + "Delete" means that the VolumeGroupContent and its physical + volumeGroup on underlying storage system are deleted. + Required. + enum: + - Delete + - Retain + type: string + source: + description: source specifies from where a volumeGroup will be created.Required. + properties: + volumeGroupHandle: + description: volumeGroupHandle specifies the volumeGroup Id + of a pre-existing volumeGroup on the underlying storage system. + This field is immutable. + type: string + type: object + volumeGroupClassName: + description: name of the VolumeGroupClass to which this volumeGroup belongs. + type: string + volumeGroupRef: + description: volumeGroupRef specifies the VolumeGroup object + to which this VolumeGroupContent object is bound. VolumeGroup.Spec.VolumeGroupContentName + field must reference to this VolumeGroupContent's name for + the bidirectional binding to be valid. + Required. + properties: + apiVersion: + description: API version of the referent. + type: string + kind: + description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/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/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 + - source + - volumeGroupClassName + type: object + required: + - spec + type: object + served: true + storage: true \ No newline at end of file diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_volumegroups.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_volumegroups.yaml new file mode 100644 index 000000000..862b4398a --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/crds/storage.hpe.com_volumegroups.yaml @@ -0,0 +1,69 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: volumegroups.storage.hpe.com +spec: + conversion: + strategy: None + group: storage.hpe.com + names: + kind: VolumeGroup + listKind: VolumeGroupList + plural: volumegroups + singular: volumegroup + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: VolumeGroup is a user's request for creating a volumegroup + properties: + apiVersion: + description: APIVersion defines the versioned schema of this representation + of an object. + type: string + kind: + description: 'Kind is a string value representing the REST resource + this object represents' + type: string + spec: + description: spec defines the desired characteristics of a volumeGroup + requested by a user. + Required. + properties: + volumeGroupClassName: + description: name of the volumeGroupClassName to create volumeGroups + type: string + persistentVolumeClaimNames: + description: persistentVolumeClaimNames are the name of the PVC associated with this volumeGroup. + type: array + items: + type: string + volumeGroupContentName: + description: volumeGroupContentName is the name of the volumeGroupContent to which the volumeGroup is bound. + type: string + required: + - volumeGroupClassName + type: object + status: + description: status represents the current information of a volumeGroup. + properties: + creationTime: + description: creationTime is the timestamp when the point-in-time + volumeGroup is taken by the underlying storage system. + format: date-time + type: string + phase: + description: the state of the volumegroup + enum: + - Pending + - Ready + - Failed + type: string + type: object + required: + - spec + type: object + served: true + storage: true \ No newline at end of file diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/files/config.json b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/files/config.json new file mode 100644 index 000000000..d7f893b2a --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/files/config.json @@ -0,0 +1,405 @@ +{ + "Nimble": { + "Default": [ + { + "category": "iscsi", + "severity": "warning", + "description": "Manual startup of iSCSI nodes on boot. Can be set in /etc/iscsi/iscsid.conf", + "parameter": "startup", + "recommendation": "manual" + }, + { + "category": "iscsi", + "severity": "warning", + "description": "Replacement_timeout of 10 seconds is recommended for faster failover of I/O by multipath on path failures. Can be set in /etc/iscsi/iscsid.conf", + "parameter": "replacement_timeout", + "recommendation": "10" + }, + { + "category": "iscsi", + "severity": "warning", + "description": "Minimum login timeout of 15 seconds is recommended with iSCSI. Can be set in /etc/iscsi/iscsid.conf", + "parameter": "login_timeout", + "recommendation": "15" + }, + { + "category": "iscsi", + "severity": "warning", + "description": "Minimum timeout of 10 seconds is recommended with noop requests. Can be set in /etc/iscsi/iscsid.conf", + "parameter": "noop_out_timeout", + "recommendation": "10" + }, + { + "category": "iscsi", + "severity": "warning", + "description": "Minimum cmds_max of 512 is recommended for each session if handling multiple LUN's. Can be set in /etc/iscsi/iscsid.conf", + "parameter": "cmds_max", + "recommendation": "512" + }, + { + "category": "iscsi", + "severity": "warning", + "description": "Minimum queue_depth of 256 is recommended for each iSCSI session/path. Can be set in /etc/iscsi/iscsid.conf", + "parameter": "queue_depth", + "recommendation": "256" + }, + { + "category": "iscsi", + "severity": "warning", + "description": "Minimum number of sessions per iSCSI login is recommended to be 1 by default. If additional sessions are needed this can be set in /etc/iscsi/iscsid.conf. If NCM is running, please change min_session_per_array in /etc/ncm.conf and restart nlt service instead", + "parameter": "nr_sessions", + "recommendation": "1" + }, + { + "category": "multipath", + "severity": "critical", + "description": "product attribute recommended to be set to Server in /etc/multipath.conf", + "parameter": "product", + "recommendation": "\"Server\"" + }, + { + "category": "multipath", + "severity": "critical", + "description": "alua prioritizer is recommended. Can be set in /etc/multipath.conf", + "parameter": "prio", + "recommendation": "alua" + }, + { + "category": "multipath", + "severity": "critical", + "description": "scsi_dh_alua device handler is recommended. Can be set in /etc/multipath.conf", + "parameter": "hardware_handler", + "recommendation": "\"1 alua\"" + }, + { + "category": "multipath", + "severity": "warning", + "description": "immediate failback setting is recommended. Can be set in /etc/multipath.conf", + "parameter": "failback", + "recommendation": "immediate" + }, + { + "category": "multipath", + "severity": "critical", + "description": "immediately fail i/o on transient path failures to retry on other paths, value=1. Can be set in /etc/multipath.conf", + "parameter": "fast_io_fail_tmo", + "recommendation": "5" + }, + { + "category": "multipath", + "severity": "critical", + "description": "queueing is recommended for 150 seconds, with no_path_retry value of 30. Can be set in /etc/multipath.conf", + "parameter": "no_path_retry", + "recommendation": "30" + }, + { + "category": "multipath", + "severity": "warning", + "description": "service-time path selector is recommended. Can be set in /etc/multipath.conf", + "parameter": "path_selector", + "recommendation": "\"service-time 0\"" + }, + { + "category": "multipath", + "severity": "critical", + "description": "vendor attribute recommended to be set to Nimble in /etc/multipath.conf", + "parameter": "vendor", + "recommendation": "\"Nimble\"" + }, + { + "category": "multipath", + "severity": "critical", + "description": "group paths according to ALUA path priority of active/standby. Recommended to be set to group_by_prio in /etc/multipath.conf", + "parameter": "path_grouping_policy", + "recommendation": "group_by_prio" + }, + { + "category": "multipath", + "severity": "critical", + "description": "tur path checker is recommended. Can be set in /etc/multipath.conf", + "parameter": "path_checker", + "recommendation": "tur" + }, + { + "category": "multipath", + "severity": "critical", + "description": "infinite value is recommended for timeout in cases of device loss for FC. Can be set in /etc/multipath.conf", + "parameter": "dev_loss_tmo", + "recommendation": "infinity" + } + ], + "Ubuntu": null + }, + "3PARdata": { + "Default": [ + { + "category": "iscsi", + "severity": "warning", + "description": "Manual startup of iSCSI nodes on boot. Can be set in /etc/iscsi/iscsid.conf", + "parameter": "startup", + "recommendation": "manual" + }, + { + "category": "iscsi", + "severity": "warning", + "description": "Replacement_timeout of 10 seconds is recommended for faster failover of I/O by multipath on path failures. Can be set in /etc/iscsi/iscsid.conf", + "parameter": "replacement_timeout", + "recommendation": "10" + }, + { + "category": "iscsi", + "severity": "warning", + "description": "Minimum login timeout of 15 seconds is recommended with iSCSI. Can be set in /etc/iscsi/iscsid.conf", + "parameter": "login_timeout", + "recommendation": "15" + }, + { + "category": "iscsi", + "severity": "warning", + "description": "Minimum timeout of 10 seconds is recommended with noop requests. Can be set in /etc/iscsi/iscsid.conf", + "parameter": "noop_out_timeout", + "recommendation": "10" + }, + { + "category": "iscsi", + "severity": "warning", + "description": "Minimum cmds_max of 512 is recommended for each session if handling multiple LUN's. Can be set in /etc/iscsi/iscsid.conf", + "parameter": "cmds_max", + "recommendation": "512" + }, + { + "category": "iscsi", + "severity": "warning", + "description": "Minimum queue_depth of 256 is recommended for each iSCSI session/path. Can be set in /etc/iscsi/iscsid.conf", + "parameter": "queue_depth", + "recommendation": "256" + }, + { + "category": "iscsi", + "severity": "warning", + "description": "Minimum number of sessions per iSCSI login is recommended to be 1 by default. If additional sessions are needed this can be set in /etc/iscsi/iscsid.conf. If NCM is running, please change min_session_per_array in /etc/ncm.conf and restart nlt service instead", + "parameter": "nr_sessions", + "recommendation": "1" + }, + { + "category": "multipath", + "severity": "critical", + "description": "product attribute recommended to be set to VV in /etc/multipath.conf", + "parameter": "product", + "recommendation": "\"VV\"" + }, + { + "category": "multipath", + "severity": "critical", + "description": "alua prioritizer is recommended. Can be set in /etc/multipath.conf", + "parameter": "prio", + "recommendation": "alua" + }, + { + "category": "multipath", + "severity": "critical", + "description": "scsi_dh_alua device handler is recommended. Can be set in /etc/multipath.conf", + "parameter": "hardware_handler", + "recommendation": "\"1 alua\"" + }, + { + "category": "multipath", + "severity": "warning", + "description": "immediate failback setting is recommended. Can be set in /etc/multipath.conf", + "parameter": "failback", + "recommendation": "immediate" + }, + { + "category": "multipath", + "severity": "critical", + "description": "immediately fail i/o on transient path failures to retry on other paths, value=1. Can be set in /etc/multipath.conf", + "parameter": "fast_io_fail_tmo", + "recommendation": "10" + }, + { + "category": "multipath", + "severity": "critical", + "description": "queueing is recommended for 150 seconds, with no_path_retry value of 18. Can be set in /etc/multipath.conf", + "parameter": "no_path_retry", + "recommendation": "18" + }, + { + "category": "multipath", + "severity": "warning", + "description": "round-robin 0 path selector is recommended. Can be set in /etc/multipath.conf", + "parameter": "path_selector", + "recommendation": "\"round-robin 0\"" + }, + { + "category": "multipath", + "severity": "critical", + "description": "vendor attribute recommended to be set to 3PARdata. Can be set in /etc/multipath.conf", + "parameter": "vendor", + "recommendation": "\"3PARdata\"" + }, + { + "category": "multipath", + "severity": "critical", + "description": "group paths according to ALUA path priority of active/standby. Recommended to be set to group_by_prio in /etc/multipath.conf", + "parameter": "path_grouping_policy", + "recommendation": "group_by_prio" + }, + { + "category": "multipath", + "severity": "critical", + "description": "infinite value is recommended for timeout in cases of device loss for FC. Can be set in /etc/multipath.conf", + "parameter": "dev_loss_tmo", + "recommendation": "infinity" + }, + { + "category": "multipath", + "severity": "critical", + "description": "tur path checker is recommended. Can be set in /etc/multipath.conf", + "parameter": "path_checker", + "recommendation": "tur" + }, + { + "category": "multipath", + "severity": "critical", + "description": "0 value is recommended for features. Can be set in /etc/multipath.conf", + "parameter": "features", + "recommendation": "\"0\"" + }, + { + "category": "multipath", + "severity": "critical", + "description": "uniform rr_weight is recommended. Can be set in /etc/multipath.conf", + "parameter": "rr_weight", + "recommendation": "\"uniform\"" + }, + { + "category": "multipath", + "severity": "critical", + "description": "rr_min_io_rq 1 is recommended. Can be set in /etc/multipath.conf", + "parameter": "rr_min_io_rq", + "recommendation": "1" + }, + { + "category": "multipath", + "severity": "critical", + "description": "detect_prio yes is recommended. Can be set in /etc/multipath.conf", + "parameter": "detect_prio", + "recommendation": "yes" + } + ], + "Ubuntu": [ + { + "category": "iscsi", + "severity": "warning", + "description": "Automatic startup of iSCSI nodes on boot. Can be set in /etc/iscsi/iscsid.conf", + "parameter": "startup", + "recommendation": "automatic" + }, + { + "category": "iscsi", + "severity": "warning", + "description": "Replacement_timeout of 10 seconds is recommended for faster failover of I/O by multipath on path failures. Can be set in /etc/iscsi/iscsid.conf", + "parameter": "replacement_timeout", + "recommendation": "10" + }, + { + "category": "iscsi", + "severity": "warning", + "description": "Minimum interval of 10 seconds is recommended with noop requests. Can be set in /etc/iscsi/iscsid.conf", + "parameter": "noop_out_interval", + "recommendation": "10" + }, + { + "category": "multipath", + "severity": "critical", + "description": "product attribute recommended to be set to VV in /etc/multipath.conf", + "parameter": "product", + "recommendation": "\"VV\"" + }, + { + "category": "multipath", + "severity": "critical", + "description": "alua prioritizer is recommended. Can be set in /etc/multipath.conf", + "parameter": "prio", + "recommendation": "alua" + }, + { + "category": "multipath", + "severity": "critical", + "description": "scsi_dh_alua device handler is recommended. Can be set in /etc/multipath.conf", + "parameter": "hardware_handler", + "recommendation": "\"1 alua\"" + }, + { + "category": "multipath", + "severity": "warning", + "description": "immediate failback setting is recommended. Can be set in /etc/multipath.conf", + "parameter": "failback", + "recommendation": "immediate" + }, + { + "category": "multipath", + "severity": "critical", + "description": "queueing is recommended for 150 seconds, with no_path_retry value of 18. Can be set in /etc/multipath.conf", + "parameter": "no_path_retry", + "recommendation": "18" + }, + { + "category": "multipath", + "severity": "warning", + "description": "round-robin 0 path selector is recommended. Can be set in /etc/multipath.conf", + "parameter": "path_selector", + "recommendation": "\"round-robin 0\"" + }, + { + "category": "multipath", + "severity": "critical", + "description": "vendor attribute recommended to be set to 3PARdata in /etc/multipath.conf", + "parameter": "vendor", + "recommendation": "\"3PARdata\"" + }, + { + "category": "multipath", + "severity": "critical", + "description": "group paths according to ALUA path priority of active/standby. Recommended to be set to group_by_prio in /etc/multipath.conf", + "parameter": "path_grouping_policy", + "recommendation": "group_by_prio" + }, + { + "category": "multipath", + "severity": "critical", + "description": "getuid_callout whitelist is recommended. Can be set in /etc/multipath.conf", + "parameter": "getuid_callout", + "recommendation": "\"/lib/udev/scsi_id --whitelisted --device=/dev/%n\"" + }, + { + "category": "multipath", + "severity": "critical", + "description": "rr_min_io is recommended with value as 100. Can be set in /etc/multipath.conf", + "parameter": "rr_min_io", + "recommendation": "100" + }, + { + "category": "multipath", + "severity": "critical", + "description": " tur checker is recommended. Can be set in /etc/multipath.conf", + "parameter": "checker", + "recommendation": "tur" + }, + { + "category": "multipath", + "severity": "critical", + "description": " tur path checker is recommended. Can be set in /etc/multipath.conf", + "parameter": "path_checker", + "recommendation": "tur" + }, + { + "category": "multipath", + "severity": "critical", + "description": " features 0 is recommended. Can be set in /etc/multipath.conf", + "parameter": "features", + "recommendation": "\"0\"" + } + ] + } +} \ No newline at end of file diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/questions.yml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/questions.yml new file mode 100644 index 000000000..fa860cfdc --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/questions.yml @@ -0,0 +1,87 @@ +labels: + io.rancher.certified: partner +questions: +- variable: disableNodeConformance + label: "Disable automatic installation of iSCSI/Multipath Packages" + type: boolean + default: false + description: "Disable automatic installation of iSCSI/Multipath Packages" + group: "HPE CSI Driver settings" +- variable: disableNodeGetVolumeStats + label: "Disable NoteGetVolumeStats" + type: boolean + default: false + description: "Disable NodeGetVolumeStats call to CSI driver" + group: "HPE CSI Driver settings" +- variable: imagePullPolicy + label: "ImagePullPolicy" + default: "IfNotPresent" + type: enum + options: + - "IfNotPresent" + - "Always" + - "Never" + description: "ImagePullPolicy for all CSI driver images" + group: "HPE CSI Driver settings" +- variable: iscsi.chapUser + label: "iSCSI CHAP Username" + type: string + required: false + description: "Specify username for iSCSI CHAP authentication" + group: "HPE iSCSI settings" +- variable: iscsi.chapPassword + label: "iSCSI CHAP Password" + type: password + min_length: 12 + max_length: 16 + required: false + description: "Specify password for iSCSI CHAP authentication" + group: "HPE iSCSI settings" +- variable: logLevel + label: "Set log level" + default: "info" + type: enum + options: + - "info" + - "debug" + - "trace" + - "warn" + - "error" + description: "Sets the CSI driver and sidecar log level" + group: "HPE CSI Driver settings" +- variable: registry + label: "Registry" + type: string + default: "quay.io" + description: "Specify registry prefix (hostname[:port]) for CSI driver images" + group: "HPE CSI Driver settings" +- variable: kubeletRootDir + label: "Set kubeletRootDir" + type: string + default: "/var/lib/kubelet" + description: "The kubelet root directory path" + group: "HPE CSI Driver settings" +- variable: disable.nimble + label: "Disable Nimble" + type: boolean + default: false + description: "Disable HPE Nimble Storage CSP Service" + group: "Disable Container Storage Providers" +- variable: disable.primera + label: "Disable Primera" + type: boolean + default: false + description: "Disable HPE Primera (and 3PAR) CSP Service" + group: "Disable Container Storage Providers" +- variable: disable.alletra6000 + label: "Disable Alletra 6000" + type: boolean + default: false + description: "Disable HPE Alletra 6000 CSP Service" + group: "Disable Container Storage Providers" +- variable: disable.alletra9000 + label: "Disable Alletra 9000" + type: boolean + default: false + description: "Disable HPE Alletra 9000 CSP Service" + group: "Disable Container Storage Providers" diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/NOTES.txt b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/NOTES.txt new file mode 100644 index 000000000..e69de29bb diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/_helpers.tpl b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/_helpers.tpl new file mode 100644 index 000000000..165840d52 --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/_helpers.tpl @@ -0,0 +1,32 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "hpe-csi-storage.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "hpe-csi-storage.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "hpe-csi-storage.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/csi-driver-crd.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/csi-driver-crd.yaml new file mode 100644 index 000000000..61275fffa --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/csi-driver-crd.yaml @@ -0,0 +1,24 @@ + + + +--- + +################# CSI Driver ########### +{{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "18") }} +apiVersion: storage.k8s.io/v1 +{{- else if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "14") }} +apiVersion: storage.k8s.io/v1beta1 +{{- end }} + +{{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "14") }} +kind: CSIDriver +metadata: + name: csi.hpe.com +spec: + podInfoOnMount: true + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "16") }} + volumeLifecycleModes: + - Persistent + - Ephemeral + {{- end }} +{{- end }} \ No newline at end of file diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/hpe-csi-controller.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/hpe-csi-controller.yaml new file mode 100644 index 000000000..1d7ed2bf7 --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/hpe-csi-controller.yaml @@ -0,0 +1,246 @@ +--- + +############################################# +############ Controller driver ############ +############################################# + +kind: Deployment +apiVersion: apps/v1 +metadata: + name: hpe-csi-controller + namespace: {{ .Release.Namespace }} +spec: + replicas: 1 + selector: + matchLabels: + app: hpe-csi-controller + template: + metadata: + labels: + app: hpe-csi-controller + role: hpe-csi + {{- if .Values.controller.labels }} +{{ toYaml .Values.controller.labels | indent 8 }} + {{- end }} + spec: + serviceAccountName: hpe-csi-controller-sa + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "17") }} + priorityClassName: system-cluster-critical + {{- end }} + hostNetwork: true + dnsPolicy: ClusterFirstWithHostNet + dnsConfig: + options: + - name: ndots + value: "1" + containers: + - name: csi-provisioner + {{- if and (.Values.registry) (eq .Values.registry "quay.io") }} + image: k8s.gcr.io/sig-storage/csi-provisioner:v3.1.0 + {{- else if .Values.registry }} + image: {{ .Values.registry }}/sig-storage/csi-provisioner:v3.1.0 + {{- else }} + image: k8s.gcr.io/sig-storage/csi-provisioner:v3.1.0 + {{- end }} + args: + - "--csi-address=$(ADDRESS)" + - "--v=5" + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "13") }} + - "--timeout=30s" + - "--worker-threads=16" + {{- end }} + env: + - name: ADDRESS + value: /var/lib/csi/sockets/pluginproxy/csi.sock + imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + volumeMounts: + - name: socket-dir + mountPath: /var/lib/csi/sockets/pluginproxy + - name: csi-attacher + {{- if and (.Values.registry) (eq .Values.registry "quay.io") }} + image: k8s.gcr.io/sig-storage/csi-attacher:v3.4.0 + {{- else if .Values.registry }} + image: {{ .Values.registry }}/sig-storage/csi-attacher:v3.4.0 + {{- else }} + image: k8s.gcr.io/sig-storage/csi-attacher:v3.4.0 + {{- end }} + args: + - "--v=5" + - "--csi-address=$(ADDRESS)" + {{- if and ( or (eq .Values.disable.primera false) (eq .Values.disable.alletra9000 false) ) ( or (eq .Values.disable.nimble true) (eq .Values.disable.alletra6000 true) ) }} + - "--timeout=180s" + {{- end }} + env: + - name: ADDRESS + value: /var/lib/csi/sockets/pluginproxy/csi.sock + imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + volumeMounts: + - name: socket-dir + mountPath: /var/lib/csi/sockets/pluginproxy + - name: csi-snapshotter + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "20") }} + {{- if and (.Values.registry) (eq .Values.registry "quay.io") }} + image: k8s.gcr.io/sig-storage/csi-snapshotter:v5.0.1 + {{- else if .Values.registry }} + image: {{ .Values.registry }}/sig-storage/csi-snapshotter:v5.0.1 + {{- else }} + image: k8s.gcr.io/sig-storage/csi-snapshotter:v5.0.1 + {{- end }} + {{- else if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "17") }} + {{- if .Values.registry }} + image: {{ .Values.registry }}/k8scsi/csi-snapshotter:v3.0.3 + {{- else }} + image: quay.io/k8scsi/csi-snapshotter:v3.0.3 + {{- end }} + {{- end }} + args: + - "--v=5" + - "--csi-address=$(ADDRESS)" + env: + - name: ADDRESS + value: /var/lib/csi/sockets/pluginproxy/csi.sock + imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + volumeMounts: + - name: socket-dir + mountPath: /var/lib/csi/sockets/pluginproxy/ + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "15") }} + - name: csi-resizer + {{- if and (.Values.registry) (eq .Values.registry "quay.io") }} + image: k8s.gcr.io/sig-storage/csi-resizer:v1.4.0 + {{- else if .Values.registry }} + image: {{ .Values.registry }}/sig-storage/csi-resizer:v1.4.0 + {{- else }} + image: k8s.gcr.io/sig-storage/csi-resizer:v1.4.0 + {{- end }} + args: + - "--csi-address=$(ADDRESS)" + - "--v=5" + env: + - name: ADDRESS + value: /var/lib/csi/sockets/pluginproxy/csi.sock + imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + volumeMounts: + - name: socket-dir + mountPath: /var/lib/csi/sockets/pluginproxy + {{- end }} + - name: hpe-csi-driver + {{- if .Values.registry }} + image: {{ .Values.registry }}/hpestorage/csi-driver:v2.2.0 + {{- else }} + image: quay.io/hpestorage/csi-driver:v2.2.0 + {{- end }} + args : + - "--endpoint=$(CSI_ENDPOINT)" + - "--flavor=kubernetes" + - "--pod-monitor" + - "--pod-monitor-interval=30" + env: + - name: CSI_ENDPOINT + value: unix:///var/lib/csi/sockets/pluginproxy/csi.sock + - name: LOG_LEVEL + value: {{ .Values.logLevel }} + imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + volumeMounts: + - name: socket-dir + mountPath: /var/lib/csi/sockets/pluginproxy + - name: log-dir + mountPath: /var/log + - name: k8s + mountPath: /etc/kubernetes + - name: hpeconfig + mountPath: /etc/hpe-storage + - name: root-dir + mountPath: /host + - name: csi-volume-mutator + {{- if .Values.registry }} + image: {{ .Values.registry }}/hpestorage/volume-mutator:v1.3.2 + {{- else }} + image: quay.io/hpestorage/volume-mutator:v1.3.2 + {{- end }} + args: + - "--v=5" + - "--csi-address=$(ADDRESS)" + env: + - name: ADDRESS + value: /var/lib/csi/sockets/pluginproxy/csi-extensions.sock + imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + volumeMounts: + - name: socket-dir + mountPath: /var/lib/csi/sockets/pluginproxy/ + - name: csi-volume-group-snapshotter + {{- if .Values.registry }} + image: {{ .Values.registry }}/hpestorage/volume-group-snapshotter:v1.0.2 + {{- else }} + image: quay.io/hpestorage/volume-group-snapshotter:v1.0.2 + {{- end }} + args: + - "--v=5" + - "--csi-address=$(ADDRESS)" + env: + - name: ADDRESS + value: /var/lib/csi/sockets/pluginproxy/csi-extensions.sock + imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + volumeMounts: + - name: socket-dir + mountPath: /var/lib/csi/sockets/pluginproxy/ + - name: csi-volume-group-provisioner + {{- if .Values.registry }} + image: {{ .Values.registry }}/hpestorage/volume-group-provisioner:v1.0.2 + {{- else }} + image: quay.io/hpestorage/volume-group-provisioner:v1.0.2 + {{- end }} + args: + - "--v=5" + - "--csi-address=$(ADDRESS)" + env: + - name: ADDRESS + value: /var/lib/csi/sockets/pluginproxy/csi-extensions.sock + imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + volumeMounts: + - name: socket-dir + mountPath: /var/lib/csi/sockets/pluginproxy/ + - name: csi-extensions + {{- if .Values.registry }} + image: {{ .Values.registry }}/hpestorage/csi-extensions:v1.2.2 + {{- else }} + image: quay.io/hpestorage/csi-extensions:v1.2.2 + {{- end }} + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + env: + - name: CSI_ENDPOINT + value: unix:///var/lib/csi/sockets/pluginproxy/csi-extensions.sock + - name: LOG_LEVEL + value: {{ .Values.logLevel }} + imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + volumeMounts: + - name: socket-dir + mountPath: /var/lib/csi/sockets/pluginproxy/ + volumes: + - name: socket-dir + emptyDir: {} + - name: log-dir + hostPath: + path: /var/log + - name: k8s + hostPath: + path: /etc/kubernetes + - name: hpeconfig + hostPath: + path: /etc/hpe-storage + - name: root-dir + hostPath: + path: / + {{- if .Values.controller.nodeSelector }} + nodeSelector: +{{ toYaml .Values.controller.nodeSelector | indent 8 }} + {{- end }} + {{- if .Values.controller.tolerations }} + tolerations: +{{ toYaml .Values.controller.tolerations | indent 8 }} + {{- end }} + {{- if .Values.controller.affinity }} + affinity: +{{ toYaml .Values.controller.affinity | indent 8 }} + {{- end }} diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/hpe-csi-node.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/hpe-csi-node.yaml new file mode 100644 index 000000000..2ee6ab6f5 --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/hpe-csi-node.yaml @@ -0,0 +1,207 @@ +--- + +####################################### +############ Node driver ############ +####################################### + +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: hpe-csi-node + namespace: {{ .Release.Namespace }} +spec: + selector: + matchLabels: + app: hpe-csi-node + template: + metadata: + labels: + app: hpe-csi-node + role: hpe-csi + {{- if .Values.node.labels }} +{{ toYaml .Values.node.labels | indent 8 }} + {{- end }} + spec: + serviceAccountName: hpe-csi-node-sa + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "17") }} + priorityClassName: system-node-critical + {{- end }} + hostNetwork: true + dnsPolicy: ClusterFirstWithHostNet + dnsConfig: + options: + - name: ndots + value: "1" + containers: + - name: csi-node-driver-registrar + {{- if and (.Values.registry) (eq .Values.registry "quay.io") }} + image: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.5.0 + {{- else if .Values.registry }} + image: {{ .Values.registry }}/sig-storage/csi-node-driver-registrar:v2.5.0 + {{- else }} + image: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.5.0 + {{- end}} + args: + - "--csi-address=$(ADDRESS)" + - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" + - "--v=5" + env: + - name: ADDRESS + value: /csi/csi.sock + - name: DRIVER_REG_SOCK_PATH + {{- if .Values.kubeletRootDir }} + value: {{ .Values.kubeletRootDir }}/plugins/csi.hpe.com/csi.sock + {{- else }} + value: /var/lib/kubelet/plugins/csi.hpe.com/csi.sock + {{- end }} + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( eq ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "12") }} + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + {{- end }} + imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + volumeMounts: + - name: plugin-dir + mountPath: /csi + - name: registration-dir + mountPath: /registration + - name: hpe-csi-driver + {{- if .Values.registry }} + image: {{ .Values.registry }}/hpestorage/csi-driver:v2.2.0 + {{- else }} + image: quay.io/hpestorage/csi-driver:v2.2.0 + {{- end}} + args : + - "--endpoint=$(CSI_ENDPOINT)" + - "--node-service" + - "--flavor=kubernetes" + env: + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + - name: LOG_LEVEL + value: {{ .Values.logLevel }} + - name: NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + {{ if and .Values.iscsi.chapUser .Values.iscsi.chapPassword }} + - name: CHAP_USER + value: {{ .Values.iscsi.chapUser }} + - name: CHAP_PASSWORD + value: {{ .Values.iscsi.chapPassword }} + {{- end }} + {{ if .Values.disableNodeConformance -}} + - name: DISABLE_NODE_CONFORMANCE + value: "true" + {{- end }} + {{- if .Values.kubeletRootDir }} + - name: KUBELET_ROOT_DIR + value: {{ .Values.kubeletRootDir }} + {{- end }} + {{ if .Values.disableNodeGetVolumeStats -}} + - name: DISABLE_NODE_GET_VOLUMESTATS + value: "true" + {{- end }} + imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + securityContext: + privileged: true + capabilities: + add: ["SYS_ADMIN"] + allowPrivilegeEscalation: true + volumeMounts: + - name: plugin-dir + mountPath: /csi + - name: pods-mount-dir + {{- if .Values.kubeletRootDir }} + mountPath: {{ .Values.kubeletRootDir }} + {{- else }} + mountPath: /var/lib/kubelet + {{- end }} + # needed so that any mounts setup inside this container are + # propagated back to the host machine. + mountPropagation: "Bidirectional" + - name: root-dir + mountPath: /host + mountPropagation: "Bidirectional" + - name: device-dir + mountPath: /dev + - name: log-dir + mountPath: /var/log + - name: etc-hpe-storage-dir + mountPath: /etc/hpe-storage + - name: etc-kubernetes + mountPath: /etc/kubernetes + - name: sys + mountPath: /sys + - name: runsystemd + mountPath: /run/systemd + - name: etcsystemd + mountPath: /etc/systemd/system + - name: linux-config-file + mountPath: /opt/hpe-storage/nimbletune/config.json + subPath: config.json + volumes: + - name: registration-dir + hostPath: + {{ if .Values.kubeletRootDir }} + path: {{ .Values.kubeletRootDir }}/plugins_registry + {{- else }} + path: /var/lib/kubelet/plugins_registry + {{- end }} + type: Directory + - name: plugin-dir + hostPath: + {{ if .Values.kubeletRootDir }} + path: {{ .Values.kubeletRootDir }}/plugins/csi.hpe.com + {{- else }} + path: /var/lib/kubelet/plugins/csi.hpe.com + {{- end }} + type: DirectoryOrCreate + - name: pods-mount-dir + hostPath: + {{ if .Values.kubeletRootDir }} + path: {{ .Values.kubeletRootDir }} + {{- else }} + path: /var/lib/kubelet + {{- end }} + - name: root-dir + hostPath: + path: / + - name: device-dir + hostPath: + path: /dev + - name: log-dir + hostPath: + path: /var/log + - name: etc-hpe-storage-dir + hostPath: + path: /etc/hpe-storage + - name: etc-kubernetes + hostPath: + path: /etc/kubernetes + - name: runsystemd + hostPath: + path: /run/systemd + - name: etcsystemd + hostPath: + path: /etc/systemd/system + - name: sys + hostPath: + path: /sys + - name: linux-config-file + configMap: + name: hpe-linux-config + {{- if .Values.node.nodeSelector }} + nodeSelector: +{{ toYaml .Values.node.nodeSelector | indent 8 }} + {{- end }} + {{- if .Values.node.tolerations }} + tolerations: +{{ toYaml .Values.node.tolerations | indent 8 }} + {{- end }} + {{- if .Values.node.affinity }} + affinity: +{{ toYaml .Values.node.affinity | indent 8 }} + {{- end }} diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/hpe-csi-rbac.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/hpe-csi-rbac.yaml new file mode 100644 index 000000000..fd72c9956 --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/hpe-csi-rbac.yaml @@ -0,0 +1,565 @@ +--- + +kind: ServiceAccount +apiVersion: v1 +metadata: + name: hpe-csi-controller-sa + namespace: {{ .Release.Namespace }} + +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-provisioner-role +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list"] + - apiGroups: [""] + resources: ["namespaces"] + verbs: ["get", "list", "create"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list"] + - apiGroups: [""] + resources: ["serviceaccounts"] + verbs: ["get", "list", "create"] + - apiGroups: [""] + resources: ["configmaps"] + verbs: ["get", "create"] + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete", "update"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["create", "get", "list", "watch", "update", "delete"] + - apiGroups: [""] + resources: ["services"] + verbs: ["create", "get", "list", "watch", "update", "delete"] + - apiGroups: ["apps"] + resources: ["deployments"] + verbs: ["create", "get", "list", "watch", "update", "delete"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] +{{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "17") }} + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshots"] + verbs: ["get", "list"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotcontents"] + verbs: ["get", "list"] +{{- end }} + - apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list", "delete"] + - apiGroups: ["storage.k8s.io"] + resources: ["volumeattachments"] + verbs: ["get", "list", "watch", "update", "patch", "delete"] + +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-provisioner-binding +subjects: + - kind: ServiceAccount + name: hpe-csi-controller-sa + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: hpe-csi-provisioner-role + apiGroup: rbac.authorization.k8s.io + +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-attacher-role +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "update", "patch"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list", "watch"] + - apiGroups: ["storage.k8s.io"] + resources: ["volumeattachments"] + verbs: ["get", "list", "watch", "update", "patch"] + - apiGroups: ["storage.k8s.io"] + resources: ["volumeattachments/status"] + verbs: ["get", "list", "watch", "update", "create", "delete", "patch"] + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "watch", "list"] + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( eq ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "12") }} + resources: ["csinodeinfos"] + verbs: ["get", "list", "watch"] + {{- else if and (eq .Capabilities.KubeVersion.Major "1") ( eq ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "13") }} + - apiGroups: ["csi.storage.k8s.io"] + resources: ["csinodeinfos"] + verbs: ["get", "list", "watch"] + {{ else }} + - apiGroups: ["storage.k8s.io"] + resources: ["csinodes"] + verbs: ["get", "list", "watch"] + {{- end }} + +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-attacher-binding +subjects: + - kind: ServiceAccount + name: hpe-csi-controller-sa + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: hpe-csi-attacher-role + apiGroup: rbac.authorization.k8s.io + + +{{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "17") }} +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-snapshotter-role +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list"] + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch", "update"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshots"] + verbs: ["create", "update", "delete", "get", "list", "watch"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshots/status"] + verbs: ["update"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotcontents"] + verbs: ["create", "update", "delete", "get", "list", "watch", "patch"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotcontents/status"] + verbs: ["create", "get", "list", "watch", "update", "delete", "patch"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: ["apiextensions.k8s.io"] + resources: ["customresourcedefinitions"] + verbs: ["get", "list", "watch", "create", "delete", "update"] + +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-snapshotter-binding +subjects: + - kind: ServiceAccount + name: hpe-csi-controller-sa + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: hpe-csi-snapshotter-role + apiGroup: rbac.authorization.k8s.io + +{{- end }} + +{{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "15") }} +--- +# Resizer must be able to work with PVCs, PVs, SCs. +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: external-resizer-role +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "update", "patch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims/status"] + verbs: ["update", "patch"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-resizer-role +subjects: + - kind: ServiceAccount + name: hpe-csi-controller-sa + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: external-resizer-role + apiGroup: rbac.authorization.k8s.io + +--- + +# Resizer must be able to work with end point in current namespace +# if (and only if) leadership election is enabled +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + namespace: {{ .Release.Namespace }} + name: external-resizer-cfg +rules: + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "watch", "list", "delete", "update", "create"] + +--- + +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-resizer-role-cfg + namespace: {{ .Release.Namespace }} +subjects: + - kind: ServiceAccount + name: hpe-csi-controller-sa + namespace: {{ .Release.Namespace }} +roleRef: + kind: Role + name: external-resizer-cfg + apiGroup: rbac.authorization.k8s.io + + +--- +# cluster role to support volumegroup +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-volumegroup-role +rules: + - apiGroups: ["storage.hpe.com"] + resources: ["volumegroups"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["volumegroupcontents"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["volumegroupclasses"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["volumegroups/status"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["volumegroupcontents/status"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: [""] + resources: ["namespaces"] + verbs: ["get", "list", "create"] + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["create", "get", "list", "watch", "update", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims/status"] + verbs: ["update", "patch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] + - apiGroups: ["apiextensions.k8s.io"] + resources: ["customresourcedefinitions"] + verbs: ["create", "list", "watch", "delete", "get", "update"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "watch", "list", "delete", "update", "create"] + +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-volumegroup-binding +subjects: + - kind: ServiceAccount + name: hpe-csi-controller-sa + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: hpe-csi-volumegroup-role + apiGroup: rbac.authorization.k8s.io + +--- +# cluster role to support snapshotgroup +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-snapshotgroup-role +rules: + - apiGroups: ["storage.hpe.com"] + resources: ["snapshotgroups"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["snapshotgroupcontents"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["snapshotgroupclasses"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["snapshotgroups/status"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["snapshotgroupcontents/status"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: [""] + resources: ["namespaces"] + verbs: ["get", "list", "create"] + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["create", "get", "list", "watch", "update", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims/status"] + verbs: ["update", "patch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] + - apiGroups: ["apiextensions.k8s.io"] + resources: ["customresourcedefinitions"] + verbs: ["create", "list", "watch", "delete", "get", "update"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "watch", "list", "delete", "update", "create"] + - apiGroups: ["storage.hpe.com"] + resources: ["volumegroups"] + verbs: ["get", "list", "watch"] + - apiGroups: ["storage.hpe.com"] + resources: ["volumegroupcontents"] + verbs: ["get", "list", "watch"] + - apiGroups: ["storage.hpe.com"] + resources: ["volumegroupclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotcontents"] + verbs: ["create", "get", "list", "watch", "update", "delete", "patch"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotcontents/status"] + verbs: ["create", "get", "list", "watch", "update", "delete", "patch"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshots"] + verbs: ["create", "get", "list", "watch", "update", "delete"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshots/status"] + verbs: ["update"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotclasses"] + verbs: ["get", "list"] + +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-snapshotgroup-binding +subjects: + - kind: ServiceAccount + name: hpe-csi-controller-sa + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: hpe-csi-snapshotgroup-role + apiGroup: rbac.authorization.k8s.io + +--- +# mutator must be able to work with PVCs, PVs, SCs. +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-mutator-role +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "update", "patch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims/status"] + verbs: ["update", "patch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-mutator-binding +subjects: + - kind: ServiceAccount + name: hpe-csi-controller-sa + # replace with non-default namespace name + namespace: {{ .Release.Namespace }} + +roleRef: + kind: ClusterRole + name: csi-mutator-role + apiGroup: rbac.authorization.k8s.io + +--- +# mutator must be able to work with end point in current namespace +# if (and only if) leadership election is enabled +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + namespace: {{ .Release.Namespace }} + name: csi-mutator-cfg +rules: + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "watch", "list", "delete", "update", "create"] + +--- +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-mutator-role-cfg + namespace: {{ .Release.Namespace }} +subjects: + - kind: ServiceAccount + name: hpe-csi-controller-sa + namespace: {{ .Release.Namespace }} + +roleRef: + kind: Role + name: csi-mutator-cfg + apiGroup: rbac.authorization.k8s.io +{{- end }} + +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-driver-role +rules: + - apiGroups: ["storage.hpe.com"] + resources: ["hpenodeinfos"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["hpevolumeinfos"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["hpereplicationdeviceinfos"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["hpevolumegroupinfos"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: ["storage.hpe.com"] + resources: ["hpesnapshotgroupinfos"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list"] + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list"] + - apiGroups: [""] + resources: ["services"] + verbs: ["get"] + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list"] + - apiGroups: [""] + resources: ["namespaces"] + verbs: ["get", "list"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + +--- + +apiVersion: v1 +kind: ServiceAccount +metadata: + name: hpe-csi-node-sa + namespace: {{ .Release.Namespace }} + +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: hpe-csi-driver-binding +subjects: + - kind: ServiceAccount + name: hpe-csi-controller-sa + namespace: {{ .Release.Namespace }} + - kind: ServiceAccount + name: hpe-csi-node-sa + namespace: {{ .Release.Namespace }} + - kind: ServiceAccount + name: hpe-csp-sa + namespace: {{ .Release.Namespace }} + +roleRef: + kind: ClusterRole + name: hpe-csi-driver-role + apiGroup: rbac.authorization.k8s.io + +--- + +kind: ServiceAccount +apiVersion: v1 +metadata: + name: hpe-csp-sa + namespace: {{ .Release.Namespace }} diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/hpe-linux-config.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/hpe-linux-config.yaml new file mode 100644 index 000000000..5e4c4944a --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/hpe-linux-config.yaml @@ -0,0 +1,13 @@ +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: hpe-linux-config + namespace: {{ .Release.Namespace }} +data: +{{ if and .Values.iscsi.chapUser .Values.iscsi.chapPassword }} + CHAP_USER: {{ .Values.iscsi.chapUser | quote }} + CHAP_PASSWORD: {{ .Values.iscsi.chapPassword | quote }} +{{- end }} + config.json: |- +{{ (.Files.Get "files/config.json") | indent 4 }} \ No newline at end of file diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/nimble-csp.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/nimble-csp.yaml new file mode 100644 index 000000000..248847ef2 --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/nimble-csp.yaml @@ -0,0 +1,94 @@ +{{- if not .Values.disable.alletra6000 }} + +--- +### Alletra 6000 CSP Service ### +kind: Service +apiVersion: v1 +metadata: + name: alletra6000-csp-svc + namespace: {{ .Release.Namespace }} + labels: + app: alletra6000-csp-svc +spec: + ports: + - port: 8080 + protocol: TCP + selector: + app: nimble-csp +{{- end }} + +{{- if not .Values.disable.nimble }} +--- +### Nimble CSP Service ### +kind: Service +apiVersion: v1 +metadata: + name: nimble-csp-svc + namespace: {{ .Release.Namespace }} + labels: + app: nimble-csp-svc +spec: + ports: + - port: 8080 + protocol: TCP + selector: + app: nimble-csp +{{- end }} + + +{{- if or (not .Values.disable.alletra6000) (not .Values.disable.nimble) }} +--- +### CSP deployment ### +kind: Deployment +apiVersion: apps/v1 +metadata: + name: nimble-csp + namespace: {{ .Release.Namespace }} +spec: + selector: + matchLabels: + app: nimble-csp + replicas: 1 + template: + metadata: + labels: + app: nimble-csp + {{- if .Values.csp.labels }} +{{ toYaml .Values.csp.labels | indent 8 }} + {{- end }} + spec: + serviceAccountName: hpe-csp-sa + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "17") }} + priorityClassName: system-cluster-critical + {{- end }} + containers: + - name: nimble-csp + {{- if .Values.registry }} + image: {{ .Values.registry }}/hpestorage/alletra-6000-and-nimble-csp:v2.2.0 + {{- else }} + image: quay.io/hpestorage/alletra-6000-and-nimble-csp:v2.2.0 + {{- end }} + imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + ports: + - containerPort: 8080 + volumeMounts: + - name: log-dir + mountPath: /var/log + volumes: + - name: log-dir + hostPath: + path: /var/log + {{- if .Values.csp.nodeSelector }} + nodeSelector: +{{ toYaml .Values.csp.nodeSelector | indent 8 }} + {{- end }} + {{- if .Values.csp.tolerations }} + tolerations: +{{ toYaml .Values.csp.tolerations | indent 8 }} + {{- end }} + {{- if .Values.csp.affinity }} + affinity: +{{ toYaml .Values.csp.affinity | indent 8 }} + {{- end }} +{{- end }} + diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/primera-3par-csp.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/primera-3par-csp.yaml new file mode 100644 index 000000000..c0f77f70b --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/templates/primera-3par-csp.yaml @@ -0,0 +1,103 @@ +{{- if not .Values.disable.alletra9000 }} +--- +### Alletra9000 CSP Service ### +kind: Service +apiVersion: v1 +metadata: + name: alletra9000-csp-svc + namespace: {{ .Release.Namespace }} + labels: + app: alletra9000-csp-svc +spec: + ports: + - port: 8080 + protocol: TCP + selector: + app: primera3par-csp + +{{- end }} + +{{- if not .Values.disable.primera }} +--- +### Primera3par CSP Service ### +kind: Service +apiVersion: v1 +metadata: + name: primera3par-csp-svc + namespace: {{ .Release.Namespace }} + labels: + app: primera3par-csp-svc +spec: + ports: + - port: 8080 + protocol: TCP + selector: + app: primera3par-csp +{{- end }} + +{{- if or (not .Values.disable.alletra9000) (not .Values.disable.primera) }} + +--- +### CSP deployment ### +kind: Deployment +apiVersion: apps/v1 +metadata: + name: primera3par-csp + labels: + app: primera3par-csp + namespace: {{ .Release.Namespace }} +spec: + selector: + matchLabels: + app: primera3par-csp + replicas: 1 + template: + metadata: + labels: + app: primera3par-csp + {{- if .Values.csp.labels }} +{{ toYaml .Values.csp.labels | indent 8 }} + {{- end }} + spec: + serviceAccountName: hpe-csp-sa + {{- if and (eq .Capabilities.KubeVersion.Major "1") ( ge ( trimSuffix "+" .Capabilities.KubeVersion.Minor ) "17") }} + priorityClassName: system-cluster-critical + {{- end }} + containers: + - name: primera3par-csp + {{- if .Values.registry }} + image: {{ .Values.registry }}/hpestorage/alletra-9000-primera-and-3par-csp:v2.2.0 + {{- else }} + image: quay.io/hpestorage/alletra-9000-primera-and-3par-csp:v2.2.0 + {{- end }} + imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + env: + - name: CRD_CLIENT_CONFIG_QPS + value: "35" + - name: CRD_CLIENT_CONFIG_BURST + value: "20" + ports: + - containerPort: 8080 + volumeMounts: + - name: log-dir + mountPath: /var/log + volumes: + - name: log-dir + hostPath: + path: /var/log + {{- if .Values.csp.nodeSelector }} + nodeSelector: +{{ toYaml .Values.csp.nodeSelector | indent 8 }} + {{- end }} + {{- if .Values.csp.tolerations }} + tolerations: +{{ toYaml .Values.csp.tolerations | indent 8 }} + {{- end }} + {{- if .Values.csp.affinity }} + affinity: +{{ toYaml .Values.csp.affinity | indent 8 }} + {{- end }} +{{- end }} + + + diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/test_values.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/test_values.yaml new file mode 100644 index 000000000..714b55ac7 --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/test_values.yaml @@ -0,0 +1,155 @@ +# Default values for hpe-csi-driver Helm chart +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +# Control CSP Service and Deployments for HPE storage products +disable: + nimble: false + primera: false + alletra6000: false + alletra9000: false + +# For controlling automatic iscsi/multipath package installation +disableNodeConformance: false + +# imagePullPolicy applied for all hpe-csi-driver images +imagePullPolicy: "IfNotPresent" + +# Cluster wide values for CHAP authentication +iscsi: + chapUser: "" + chapPassword: "" + +# Log level for all hpe-csi-driver components +logLevel: "info" + +# Registry prefix for hpe-csi-driver images +registry: "quay.io" + +# Kubelet root directory path +kubeletRootDir: "/var/lib/kubelet/" + +# NodeGetVolumestats will be called by default, set true to disable the call +disableNodeGetVolumeStats: false + +controller: + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + labels: + infra: storage + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + nodeSelector: {} + #disktype: ssd + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + tolerations: [] + + # - effect: NoExecute + # key: node.kubernetes.io/not-ready + # operator: Exists + # tolerationSeconds: 30 + # - effect: NoExecute + # key: node.kubernetes.io/unreachable + # operator: Exists + # tolerationSeconds: 30 + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: disktype + operator: In + values: + - ssd + # nodeAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # nodeSelectorTerms: + # - matchExpressions: + # - key: az + # operator: In + # values: + # - az-east + # - az-west + +csp: + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + labels: + infra: storage + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + nodeSelector: {} + #disktype: ssd + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + tolerations: [] + + # - effect: NoExecute + # key: node.kubernetes.io/not-ready + # operator: Exists + # tolerationSeconds: 30 + # - effect: NoExecute + # key: node.kubernetes.io/unreachable + # operator: Exists + # tolerationSeconds: 30 + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: disktype + operator: In + values: + - ssd + + # nodeAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # nodeSelectorTerms: + # - matchExpressions: + # - key: az + # operator: In + # values: + # - az-east + # - az-west + +node: + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + labels: {} + #infra: storage + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + nodeSelector: {} + #disktype: ssd + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + tolerations: [ ] + + # - effect: NoExecute + # key: node.kubernetes.io/not-ready + # operator: Exists + # tolerationSeconds: 30 + # - effect: NoExecute + # key: node.kubernetes.io/unreachable + # operator: Exists + # tolerationSeconds: 30 + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: disktype + operator: In + values: + - ssd + + # nodeAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # nodeSelectorTerms: + # - matchExpressions: + # - key: az + # operator: In + # values: + # - az-east + # - az-west diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/values.schema.json b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/values.schema.json new file mode 100644 index 000000000..dbe4ea4ae --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/values.schema.json @@ -0,0 +1,274 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "http://example.com/example.json", + "title": "HPE CSI Driver for Kubernetes Helm Chart JSON Schema", + "type": "object", + "default": + { + "disable": { + "nimble": false, + "primera": false, + "alletra6000": false, + "alletra9000": false + }, + "disableNodeConformance": false, + "imagePullPolicy": "IfNotPresent", + "iscsi": { + "chapUser": "", + "chapPassword": "" + }, + "logLevel": "info", + "registry": "quay.io", + "kubeletRootDir": "/var/lib/kubelet/", + "disableNodeGetVolumeStats": false, + "csp": { + "nodeSelector": {}, + "tolerations": [], + "affinity": {}, + "labels": {} + }, + "controller": { + "nodeSelector": {}, + "tolerations": [], + "affinity": {}, + "labels": {} + }, + "node": { + "nodeSelector": {}, + "tolerations": [], + "affinity": {}, + "labels": {} + } + + }, + "required": [ + "disable", + "disableNodeConformance", + "imagePullPolicy", + "iscsi", + "logLevel", + "registry", + "kubeletRootDir", + "disableNodeGetVolumeStats", + "csp", + "controller", + "node" + ], + "properties": { + "disable": { + "$id": "#/properties/disable", + "title": "CSP Deployment and Service backend exclusion", + "description": "All backend Deployments and Services are installed by default.", + "type": "object", + "default": + { + "nimble": false, + "primera": false, + "alletra6000": false, + "alletra9000": false + }, + "required": [ + "nimble", + "primera", + "alletra6000", + "alletra9000" + ], + "properties": { + "nimble": { + "$id": "#/properties/disable/properties/nimble", + "title": "HPE Nimble Storage", + "type": "boolean", + "default": false + }, + "primera": { + "$id": "#/properties/disable/properties/primera", + "title": "HPE Primera", + "type": "boolean", + "default": false + }, + "alletra6000": { + "$id": "#/properties/disable/properties/alletra6000", + "title": "HPE Alletra 6000", + "type": "boolean", + "default": false + }, + "alletra9000": { + "$id": "#/properties/disable/properties/alletra9000", + "title": "HPE Alletra 9000", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "disableNodeConformance": { + "$id": "#/properties/disableNodeConformance", + "title": "Disable node conformance", + "description": "Disabling node conformance forces the cluster administrator to install required packages and ensure the correct node services are started to use external block storage.", + "type": "boolean", + "default": false + }, + "imagePullPolicy": { + "$id": "#/properties/imagePullPolicy", + "title": "CSI driver image pull policy", + "type": "string", + "default": "IfNotPresent", + "enum": [ "Always", "IfNotPresent", "Never" ] + }, + "iscsi": { + "$id": "#/properties/iscsi", + "title": "iSCSI CHAP credentials", + "type": "object", + "default": + { + "chapUser": "", + "chapPassword": "" + }, + "required": [ + "chapUser", + "chapPassword" + ], + "properties": { + "chapUser": { + "$id": "#/properties/iscsi/properties/chapUser", + "title": "CHAP username", + "type": "string", + "default": "" + }, + "chapPassword": { + "$id": "#/properties/iscsi/properties/chapPassword", + "title": "CHAP password", + "description": "Between 12 and 16 characters", + "type": "string", + "default": "", + "pattern": "^$|^[a-zA-Z0-9+_)(*^%$#@!]{12,16}$" + } + }, + "additionalProperties": false + }, + "logLevel": { + "$id": "#/properties/logLevel", + "title": "Set the log level of the HPE CSI Driver images", + "type": "string", + "default": "info", + "enum": [ "info", "debug", "trace", "warn", "error" ] + }, + "registry": { + "$id": "#/properties/registry", + "title": "Pull images from a different registry than default", + "description": "SIG Storage images needs to be mirrored from k8s.gcr.io to this registry if this parameter is changed.", + "type": "string", + "default": "quay.io" + }, + "kubeletRootDir": { + "$id": "#/properties/kubeletRootDir", + "title": "Kubelet root directory", + "description": "Only change this if the kubelet root dir has been altered by the Kubernetes platform installer.", + "type": "string", + "default": "/var/lib/kubelet", + "pattern": "^/" + }, + "disableNodeGetVolumeStats": { + "$id": "#/properties/disableNodeGetVolumeStats", + "title": "Disable the CSI nodeGetVolumeStats call", + "description": "In very large environments, disabling this feature may alleviate pressure on the CSP.", + "type": "boolean", + "default": false + }, + "csp": { + "nodeSelector": { + "$id": "#/properties/csp/properties/nodeSelector", + "title": "Node selector to control the selection of nodes (optional).", + "description": "Selector which must match a node's labels for the pod to be scheduled on that node.", + "type": "object", + "default": {} + }, + "tolerations": { + "$id": "#/properties/csp/properties/tolerations", + "title": "Set tolerations for the csp pods(optional).", + "description": "Tolerations is the list of tolerations for the csp pods.", + "type": "array", + "default": [] + }, + "affinity": { + "$id": "#/properties/csp/properties/affinity", + "title": "Node affinity for csp plugin (optional).", + "description": "Describes node affinity scheduling rules for the pod.", + "type": "object", + "default": {} + }, + "labels": { + "$id": "#/properties/csp/properties/labels", + "title": "labels", + "description": "labels.", + "type": "object", + "default": {} + } + + }, + "controller": { + "nodeSelector": { + "$id": "#/properties/controller/properties/nodeSelector", + "title": "Node selector to control the selection of nodes (optional).", + "description": "Selector which must match a node's labels for the pod to be scheduled on that node.", + "type": "object", + "default": {} + }, + "tolerations": { + "$id": "#/properties/controller/properties/tolerations", + "title": "Set tolerations for the driver pods(optional)", + "description": "Tolerations is the list of tolerations for the driver pods.", + "type": "array", + "default": [] + }, + "affinity": { + "$id": "#/properties/controller/properties/affinity", + "title": "Node affinity for controller plugin (optional).", + "description": "Describes node affinity scheduling rules for the pod.", + "type": "object", + "default": {} + }, + "labels": { + "$id": "#/properties/controller/properties/labels", + "title": "labels", + "description": "labels.", + "type": "object", + "default": {} + } + + }, + "node": { + "nodeSelector": { + "$id": "#/properties/node/properties/nodeSelector", + "title": "Node selector to control the selection of nodes (optional).", + "description": "Selector which must match a node's labels for the pod to be scheduled on that node.", + "type": "object", + "default": {} + }, + "tolerations": { + "$id": "#/properties/node/properties/tolerations", + "title": "Set tolerations for the node pods(optional).", + "description": "Tolerations is the list of tolerations for the node pods.", + "type": "array", + "default": [] + }, + "affinity": { + "$id": "#/properties/node/properties/affinity", + "title": "Node affinity for node plugin (optional).", + "description": "Describes node affinity scheduling rules for the pod.", + "type": "object", + "default": {} + }, + "labels": { + "$id": "#/properties/node/properties/labels", + "title": "labels", + "description": "labels.", + "type": "object", + "default": {} + } + + }, + "global": {} + }, + "additionalProperties": false +} diff --git a/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/values.yaml b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/values.yaml new file mode 100644 index 000000000..e1ad2e3b2 --- /dev/null +++ b/charts/hpe-csi-driver/hpe-csi-driver/2.2.0/values.yaml @@ -0,0 +1,73 @@ +# Default values for hpe-csi-driver Helm chart +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +# Control CSP Service and Deployments for HPE storage products +disable: + nimble: false + primera: false + alletra6000: false + alletra9000: false + +# For controlling automatic iscsi/multipath package installation +disableNodeConformance: false + +# imagePullPolicy applied for all hpe-csi-driver images +imagePullPolicy: "IfNotPresent" + +# Cluster wide values for CHAP authentication +iscsi: + chapUser: "" + chapPassword: "" + +# Log level for all hpe-csi-driver components +logLevel: "info" + +# Registry prefix for hpe-csi-driver images +registry: "quay.io" + +# Kubelet root directory path +kubeletRootDir: "/var/lib/kubelet/" + +# NodeGetVolumestats will be called by default, set true to disable the call +disableNodeGetVolumeStats: false + +controller: + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + labels: {} + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + nodeSelector: {} + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + tolerations: [] + + affinity: {} + + +csp: + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + labels: {} + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + nodeSelector: {} + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + tolerations: [] + + affinity: {} + +node: + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + labels: {} + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + nodeSelector: {} + + # These values map directly to yaml in the deployment spec, see the kubernetes docs for info + tolerations: [] + + affinity: {} diff --git a/index.yaml b/index.yaml index def3fa7e9..0bf8ea237 100755 --- a/index.yaml +++ b/index.yaml @@ -2158,6 +2158,39 @@ entries: - assets/haproxy/haproxy-1.4.300.tgz version: 1.4.300 hpe-csi-driver: + - annotations: + artifacthub.io/license: Apache-2.0 + artifacthub.io/links: | + - name: Documentation + url: https://scod.hpedev.io/csi_driver + artifacthub.io/prerelease: "false" + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: HPE CSI Driver for Kubernetes + catalog.cattle.io/namespace: hpe-storage + catalog.cattle.io/os: linux + catalog.cattle.io/release-name: hpe-csi-driver + apiVersion: v1 + appVersion: 2.2.0 + created: "2022-08-05T09:52:10.361141-07:00" + description: A Helm chart for installing the HPE CSI Driver for Kubernetes + digest: 9ce5321def3a352305ba512454d4ecce0ac8594b7478133b80f83890e8881db5 + home: https://hpe.com/storage/containers + icon: https://raw.githubusercontent.com/hpe-storage/co-deployments/master/docs/assets/hpedev.png + keywords: + - HPE + - Storage + - CSI + kubeVersion: 1.21 - 1.24 + maintainers: + - email: datamattsson@hpe.com + name: datamattsson + name: hpe-csi-driver + sources: + - https://github.com/hpe-storage/co-deployments + - https://github.com/hpe-storage/csi-driver + urls: + - assets/hpe-csi-driver/hpe-csi-driver-2.2.0.tgz + version: 2.2.0 - annotations: artifacthub.io/license: Apache-2.0 artifacthub.io/links: |