diff --git a/.github/workflows/helm-validations.yml b/.github/workflows/helm-validations.yml index f06c35a9..2993841f 100644 --- a/.github/workflows/helm-validations.yml +++ b/.github/workflows/helm-validations.yml @@ -8,7 +8,7 @@ on: - main - karavi-observability-release - csm-authorization-release - - release-v1.7.0 + - release-v* jobs: # This job will check to see if any .yaml file is modified diff --git a/charts/container-storage-modules/Chart.yaml b/charts/container-storage-modules/Chart.yaml index d3a2702a..213917fd 100644 --- a/charts/container-storage-modules/Chart.yaml +++ b/charts/container-storage-modules/Chart.yaml @@ -40,27 +40,27 @@ appVersion: "1.0.1" dependencies: - name: csi-powerstore - version: 2.7.0 + version: 2.8.0 repository: https://dell.github.io/helm-charts condition: csi-powerstore.enabled - name: csi-powermax - version: 2.7.0 + version: 2.8.0 repository: https://dell.github.io/helm-charts condition: csi-powermax.enabled - name: csi-isilon - version: 2.7.0 + version: 2.8.0 repository: https://dell.github.io/helm-charts condition: csi-isilon.enabled - name: csi-vxflexos - version: 2.7.1 + version: 2.8.0 repository: https://dell.github.io/helm-charts condition: csi-vxflexos.enabled - name: csi-unity - version: 2.7.0 + version: 2.8.0 repository: https://dell.github.io/helm-charts condition: csi-unity.enabled diff --git a/charts/container-storage-modules/values.yaml b/charts/container-storage-modules/values.yaml index 2a223911..4be51091 100644 --- a/charts/container-storage-modules/values.yaml +++ b/charts/container-storage-modules/values.yaml @@ -20,7 +20,7 @@ ######################## csi-powerstore: enabled: false - version: "v2.7.0" + version: "v2.8.0" images: driverRepository: dellemc ## Controller ATTRIBUTES @@ -99,6 +99,8 @@ csi-powerstore: - "--driver-config-params=/powerstore-config-params/driver-config-params.yaml" - "--driverPodLabelValue=dell-storage" - "--ignoreVolumelessPods=false" + # maxPowerstoreVolumesPerNode: Specify default value for maximum number of volumes that controller can publish to the node. + maxPowerstoreVolumesPerNode: 0 ## CSI PowerMax ######################## @@ -117,7 +119,7 @@ csi-powermax: - endpoint: https://backup-1.unisphe.re:8443 # - endpoint: https://primary-2.unisphe.re:8443 # - endpoint: https://backup-2.unisphe.re:8443 - version: "v2.7.0" + version: "v2.8.0" images: driverRepository: "dellemc" clusterPrefix: ABC @@ -136,7 +138,7 @@ csi-powermax: enabled: false nodeSelector: csireverseproxy: - image: dellemc/csipowermax-reverseproxy:v2.6.0 + image: dellemc/csipowermax-reverseproxy:v2.7.0 deployAsSidecar: true replication: enabled: false @@ -160,7 +162,7 @@ csi-powermax: ######################## csi-isilon: enabled: false - version: "v2.7.0" + version: "v2.8.0" images: driverRepository: dellemc ## Controller ATTRIBUTES @@ -241,10 +243,10 @@ csi-isilon: ######################## csi-vxflexos: enabled: false - version: v2.7.1 + version: v2.8.0 images: driverRepository: dellemc - powerflexSdc: dellemc/sdc:3.6.0.6 + powerflexSdc: dellemc/sdc:3.6.1 certSecretCount: 0 controller: replication: @@ -282,11 +284,16 @@ csi-vxflexos: # - key: "isilon.podmon.storage.dell.com" # operator: "Exists" # effect: "NoSchedule" + storageCapacity: + enabled: true monitor: enabled: false vgsnapshotter: enabled: false image: dellemc/csi-volumegroup-snapshotter:v1.2.0 + # maxVxflexosVolumesPerNode - Maximum number of volumes that controller can publish to the node. + maxVxflexosVolumesPerNode: 0 + podmon: enabled: false image: dellemc/podmon:v1.6.0 @@ -317,7 +324,7 @@ csi-vxflexos: ######################## csi-unity: enabled: false - version: "v2.7.0" + version: "v2.8.0" # certSecretCount: Represents number of certificate secrets, which user is going to create for # ssl authentication. (unity-cert-0..unity-cert-n) @@ -436,6 +443,11 @@ csi-unity: # tenantName - Tenant name that need to added while adding host entry to the array. tenantName: "" +# Storage Capacity Tracking +# Note: Capacity tracking is supported in kubernetes v1.24 and above, this feature will be automatically disabled in older versions. +storageCapacity: + enabled: true + images: driverRepository: dellemc diff --git a/charts/csi-isilon/Chart.yaml b/charts/csi-isilon/Chart.yaml index 7ec43fe1..870eaa52 100644 --- a/charts/csi-isilon/Chart.yaml +++ b/charts/csi-isilon/Chart.yaml @@ -1,11 +1,11 @@ apiVersion: v2 name: csi-isilon -version: 2.7.0 -appVersion: "2.7.0" -kubeVersion: ">= 1.21.0 < 1.28.0" +version: 2.8.0 +appVersion: "2.8.0" +kubeVersion: ">= 1.21.0 < 1.29.0" #If you are using a complex K8s version like "v1.22.3-mirantis-1", use this kubeVersion check instead #WARNING: this version of the check will allow the use of alpha and beta versions, which is NOT SUPPORTED -#kubeVersion: ">= 1.21.0-0 < 1.28.0-0" +#kubeVersion: ">= 1.21.0-0 < 1.29.0-0" description: | PowerScale CSI (Container Storage Interface) driver Kubernetes integration. This chart includes everything required to provision via CSI as diff --git a/charts/csi-isilon/templates/_helpers.tpl b/charts/csi-isilon/templates/_helpers.tpl index 02b2867e..0bf04fae 100644 --- a/charts/csi-isilon/templates/_helpers.tpl +++ b/charts/csi-isilon/templates/_helpers.tpl @@ -3,7 +3,7 @@ Return the appropriate sidecar images based on k8s version */}} {{- define "csi-isilon.attacherImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-attacher:v4.3.0" -}} {{- end -}} {{- end -}} @@ -11,7 +11,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-isilon.provisionerImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-provisioner:v3.5.0" -}} {{- end -}} {{- end -}} @@ -19,7 +19,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-isilon.snapshotterImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-snapshotter:v6.2.2" -}} {{- end -}} {{- end -}} @@ -27,7 +27,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-isilon.resizerImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-resizer:v1.8.0" -}} {{- end -}} {{- end -}} @@ -35,7 +35,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-isilon.registrarImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.8.0" -}} {{- end -}} {{- end -}} @@ -43,7 +43,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-isilon.healthmonitorImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-external-health-monitor-controller:v0.9.0" -}} {{- end -}} {{- end -}} diff --git a/charts/csi-isilon/values.yaml b/charts/csi-isilon/values.yaml index 4245696c..8bed9205 100644 --- a/charts/csi-isilon/values.yaml +++ b/charts/csi-isilon/values.yaml @@ -2,7 +2,7 @@ ######################## # version: version of this values file # Note: Do not change this value -version: "v2.7.0" +version: "v2.8.0" # CSI driver log level # Allowed values: "error", "warn"/"warning", "info", "debug" diff --git a/charts/csi-powermax/Chart.yaml b/charts/csi-powermax/Chart.yaml index af51a96b..b4244160 100644 --- a/charts/csi-powermax/Chart.yaml +++ b/charts/csi-powermax/Chart.yaml @@ -1,22 +1,22 @@ apiVersion: v2 -appVersion: "2.7.0" +appVersion: "2.8.0" name: csi-powermax -version: 2.7.0 +version: 2.8.0 description: | PowerMax CSI (Container Storage Interface) driver Kubernetes integration. This chart includes everything required to provision via CSI as well as a PowerMax StorageClass. type: application -kubeVersion: ">= 1.23.0 < 1.28.0" +kubeVersion: ">= 1.23.0 < 1.29.0" # If you are using a complex K8s version like "v1.23.3-mirantis-1", use this kubeVersion check instead # WARNING: this version of the check will allow the use of alpha and beta versions, which is NOT SUPPORTED -# kubeVersion: ">= 1.23.0-0 < 1.28.0-0" +# kubeVersion: ">= 1.23.0-0 < 1.29.0-0" keywords: - csi - storage dependencies: - name: csireverseproxy - version: 2.6.0 + version: 2.7.0 condition: required home: https://github.com/dell/csi-powermax icon: https://avatars1.githubusercontent.com/u/20958494?s=200&v=4 diff --git a/charts/csi-powermax/charts/csireverseproxy/Chart.yaml b/charts/csi-powermax/charts/csireverseproxy/Chart.yaml index 3ea07357..1825b03b 100644 --- a/charts/csi-powermax/charts/csireverseproxy/Chart.yaml +++ b/charts/csi-powermax/charts/csireverseproxy/Chart.yaml @@ -4,6 +4,6 @@ description: A Helm chart for CSI PowerMax ReverseProxy type: application -version: 2.6.0 +version: 2.7.0 -appVersion: 2.6.0 +appVersion: 2.7.0 diff --git a/charts/csi-powermax/charts/csireverseproxy/values.yaml b/charts/csi-powermax/charts/csireverseproxy/values.yaml index 32b0106b..fcd87e30 100644 --- a/charts/csi-powermax/charts/csireverseproxy/values.yaml +++ b/charts/csi-powermax/charts/csireverseproxy/values.yaml @@ -1,4 +1,4 @@ -image: dellemc/csipowermax-reverseproxy:v2.6.0 +image: dellemc/csipowermax-reverseproxy:v2.7.0 port: 2222 # TLS secret which is used for setting up the proxy HTTPS server diff --git a/charts/csi-powermax/templates/_helpers.tpl b/charts/csi-powermax/templates/_helpers.tpl index 51e4c90f..4cb67bdd 100644 --- a/charts/csi-powermax/templates/_helpers.tpl +++ b/charts/csi-powermax/templates/_helpers.tpl @@ -3,7 +3,7 @@ Return the appropriate sidecar images based on k8s version */}} {{- define "csi-powermax.attacherImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "23") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "23") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-attacher:v4.3.0" -}} {{- end -}} {{- end -}} @@ -11,7 +11,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-powermax.provisionerImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "23") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "23") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-provisioner:v3.5.0" -}} {{- end -}} {{- end -}} @@ -19,7 +19,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-powermax.snapshotterImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "23") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "23") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-snapshotter:v6.2.2" -}} {{- end -}} {{- end -}} @@ -27,7 +27,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-powermax.resizerImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "23") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "23") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-resizer:v1.8.0" -}} {{- end -}} {{- end -}} @@ -35,7 +35,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-powermax.registrarImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "23") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "23") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.8.0" -}} {{- end -}} {{- end -}} @@ -43,8 +43,16 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-powermax.healthmonitorImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "23") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "23") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-external-health-monitor-controller:v0.9.0" -}} {{- end -}} {{- end -}} {{- end -}} + +{{- define "csi-powermax.isStorageCapacitySupported" -}} +{{- if eq .Values.storageCapacity.enabled true -}} + {{- if and (eq .Capabilities.KubeVersion.Major "1") (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") -}} + {{- true -}} + {{- end -}} +{{- end -}} +{{- end -}} diff --git a/charts/csi-powermax/templates/controller.yaml b/charts/csi-powermax/templates/controller.yaml index f5118102..7785fbf0 100644 --- a/charts/csi-powermax/templates/controller.yaml +++ b/charts/csi-powermax/templates/controller.yaml @@ -91,7 +91,19 @@ rules: - apiGroups: [""] resources: ["configmaps"] verbs: ["create", "delete", "get", "list", "watch", "update", "patch"] - {{- end}} + {{- end}} + # Permissions for Storage Capacity + {{- if eq (include "csi-powermax.isStorageCapacitySupported" .) "true" }} + - apiGroups: ["storage.k8s.io"] + resources: ["csistoragecapacities"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["get"] + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["get"] + {{- end }} --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 @@ -184,9 +196,20 @@ spec: - "--leader-election" - "--extra-create-metadata" - "--feature-gates=Topology=true" + - "--enable-capacity={{ (include "csi-powermax.isStorageCapacitySupported" .) | default false }}" + - "--capacity-ownerref-level=2" + - "--capacity-poll-interval={{ .Values.storageCapacity.pollInterval | default "5m" }}" env: - name: ADDRESS value: /var/run/csi/csi.sock + - name: NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name volumeMounts: - name: socket-dir mountPath: /var/run/csi @@ -487,4 +510,4 @@ spec: secret: secretName: proxy-server-root-certificate {{ end }} - {{ end }} \ No newline at end of file + {{ end }} diff --git a/charts/csi-powermax/templates/csidriver.yaml b/charts/csi-powermax/templates/csidriver.yaml index 52cc6694..2717b327 100644 --- a/charts/csi-powermax/templates/csidriver.yaml +++ b/charts/csi-powermax/templates/csidriver.yaml @@ -7,5 +7,7 @@ metadata: name: csi-powermax {{- end }} spec: + podInfoOnMount: true attachRequired: true - fsGroupPolicy: {{ .Values.fsGroupPolicy }} \ No newline at end of file + storageCapacity: {{ (include "csi-powermax.isStorageCapacitySupported" .) | default false }} + fsGroupPolicy: {{ .Values.fsGroupPolicy }} diff --git a/charts/csi-powermax/templates/node.yaml b/charts/csi-powermax/templates/node.yaml index 0d0cdae8..2d91c9b1 100644 --- a/charts/csi-powermax/templates/node.yaml +++ b/charts/csi-powermax/templates/node.yaml @@ -1,4 +1,3 @@ -{{- if or (eq .Values.migration.enabled true) (eq .Values.openshift true) }} apiVersion: v1 kind: ServiceAccount metadata: @@ -14,6 +13,9 @@ metadata: name: {{ .Release.Name }}-node {{- end }} rules: + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list", "watch", "update", "patch"] {{- if eq .Values.openshift true }} - apiGroups: ["security.openshift.io"] resources: ["securitycontextconstraints"] @@ -60,7 +62,6 @@ roleRef: {{- end }} apiGroup: rbac.authorization.k8s.io --- -{{ end }} kind: DaemonSet apiVersion: apps/v1 metadata: @@ -81,9 +82,7 @@ spec: labels: app: {{ .Release.Name }}-node spec: - {{- if or (eq .Values.migration.enabled true) (eq .Values.openshift true) }} serviceAccountName: {{ .Release.Name }}-node - {{ end }} {{ if .Values.node.nodeSelector }} nodeSelector: {{- toYaml .Values.node.nodeSelector | nindent 8 }} @@ -121,6 +120,8 @@ spec: value: unix://{{ .Values.kubeletConfigDir }}/plugins/powermax.emc.dell.com/csi_sock - name: X_CSI_MODE value: node + - name: X_CSI_MAX_VOLUMES_PER_NODE + value: "{{ .Values.maxPowerMaxVolumesPerNode }}" - name: X_CSI_PRIVATE_MOUNT_DIR value: "{{ .Values.kubeletConfigDir }}/plugins/powermax.emc.dell.com/disks" - name: X_CSI_MANAGED_ARRAYS @@ -395,4 +396,4 @@ spec: secret: secretName: proxy-server-root-certificate {{ end }} - {{ end }} \ No newline at end of file + {{ end }} diff --git a/charts/csi-powermax/values.yaml b/charts/csi-powermax/values.yaml index 418b1c32..4e449105 100644 --- a/charts/csi-powermax/values.yaml +++ b/charts/csi-powermax/values.yaml @@ -49,7 +49,7 @@ global: # Current version of the driver # Don't modify this value as this value will be used by the install script -version: "v2.7.0" +version: "v2.8.0" images: # "driver" defines the container image, used for the driver container. @@ -101,6 +101,13 @@ kubeletConfigDir: /var/lib/kubelet # Default value: ReadWriteOnceWithFSType fsGroupPolicy: ReadWriteOnceWithFSType +# maxPowermaxVolumesPerNode: Specify default value for maximum number of volumes that controller can publish to the node. +# If value is zero CO SHALL decide how many volumes of this type can be published by the controller to the node. +# This limit is applicable to all the nodes in the cluster for which node label 'max-Powermax-volumes-per-node' is not set. +# Allowed values: n, where n >= 0 +# Default value: 0 +maxPowerMaxVolumesPerNode: 0 + # controller: configure controller specific parameters controller: # controllerCount: Define the number of PowerMax controller nodes @@ -255,8 +262,8 @@ enableCHAP: false csireverseproxy: # image: Define the container images used for the reverse proxy # Default value: None - # Example: "csipowermax-reverseproxy:v2.6.0" - image: dellemc/csipowermax-reverseproxy:v2.6.0 + # Example: "csipowermax-reverseproxy:v2.7.0" + image: dellemc/csipowermax-reverseproxy:v2.7.0 # "tlsSecret" defines the TLS secret that is created with certificate # and its associated key # Default value: None @@ -427,6 +434,20 @@ authorization: # Default value: "true" skipCertificateValidation: true +# Storage Capacity Tracking +# Note: Capacity tracking is supported in kubernetes v1.24 and above, this feature will be automatically disabled in older versions. +storageCapacity: + # enabled : Enable/Disable storage capacity tracking + # Allowed values: + # true: enable storage capacity tracking + # false: disable storage capacity tracking + # Default value: true + enabled: true + # pollInterval : Configure how often external-provisioner polls the driver to detect changed capacity + # Allowed values: 1m,2m,3m,...,10m,...,60m etc + # Default value: 5m + pollInterval: 5m + # VMware/vSphere virtualization support # set enable to true, if you to enable VMware virtualized environment support via RDM # Allowed Values: diff --git a/charts/csi-powerstore/Chart.yaml b/charts/csi-powerstore/Chart.yaml index f64ae17c..d7815a98 100644 --- a/charts/csi-powerstore/Chart.yaml +++ b/charts/csi-powerstore/Chart.yaml @@ -14,18 +14,18 @@ # # apiVersion: v2 -appVersion: "2.7.0" +appVersion: "2.8.0" name: csi-powerstore -version: 2.7.0 +version: 2.8.0 description: | PowerStore CSI (Container Storage Interface) driver Kubernetes integration. This chart includes everything required to provision via CSI as well as a PowerStore StorageClass. type: application -kubeVersion: ">= 1.22.0 < 1.28.0" -# If you are using a complex K8s version like "v1.23.3-mirantis-1", use this kubeVersion check instead +kubeVersion: ">= 1.24.0 < 1.29.0" +# If you are using a complex K8s version like "v1.24.3-mirantis-1", use this kubeVersion check instead # WARNING: this version of the check will allow the use of alpha and beta versions, which is NOT SUPPORTED -# kubeVersion: ">= 1.22.0-0 < 1.28.0-0" +# kubeVersion: ">= 1.24.0-0 < 1.29.0-0" keywords: - csi - storage diff --git a/charts/csi-powerstore/templates/_helpers.tpl b/charts/csi-powerstore/templates/_helpers.tpl index 8da93b35..300585d6 100644 --- a/charts/csi-powerstore/templates/_helpers.tpl +++ b/charts/csi-powerstore/templates/_helpers.tpl @@ -3,7 +3,7 @@ Return the appropriate sidecar images based on k8s version */}} {{- define "csi-powerstore.attacherImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "22") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-attacher:v4.3.0" -}} {{- end -}} {{- end -}} @@ -11,7 +11,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-powerstore.provisionerImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "22") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-provisioner:v3.5.0" -}} {{- end -}} {{- end -}} @@ -19,7 +19,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-powerstore.snapshotterImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "22") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-snapshotter:v6.2.2" -}} {{- end -}} {{- end -}} @@ -27,7 +27,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-powerstore.resizerImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "22") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-resizer:v1.8.0" -}} {{- end -}} {{- end -}} @@ -35,7 +35,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-powerstore.registrarImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "22") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.8.0" -}} {{- end -}} {{- end -}} @@ -43,7 +43,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-powerstore.healthmonitorImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "22") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-external-health-monitor-controller:v0.9.0" -}} {{- end -}} {{- end -}} diff --git a/charts/csi-powerstore/templates/node.yaml b/charts/csi-powerstore/templates/node.yaml index d4773176..9771df68 100644 --- a/charts/csi-powerstore/templates/node.yaml +++ b/charts/csi-powerstore/templates/node.yaml @@ -193,6 +193,8 @@ spec: value: {{ .Values.node.nodeNamePrefix }} - name: X_CSI_POWERSTORE_NODE_ID_PATH value: /node-id + - name: X_CSI_POWERSTORE_MAX_VOLUMES_PER_NODE + value: "{{ .Values.maxPowerstoreVolumesPerNode }}" - name: X_CSI_POWERSTORE_NODE_CHROOT_PATH value: /noderoot - name: X_CSI_POWERSTORE_TMP_DIR @@ -201,8 +203,6 @@ spec: value: {{ .Values.driverName }} - name: X_CSI_FC_PORTS_FILTER_FILE_PATH value: {{ .Values.nodeFCPortsFilterFile }} - - name: X_CSI_DRIVER_NAME - value: {{ .Values.driverName }} {{- if eq .Values.connection.enableCHAP true }} - name: X_CSI_POWERSTORE_ENABLE_CHAP value: "true" diff --git a/charts/csi-powerstore/values.yaml b/charts/csi-powerstore/values.yaml index ec8db4f5..1eb94719 100644 --- a/charts/csi-powerstore/values.yaml +++ b/charts/csi-powerstore/values.yaml @@ -23,7 +23,7 @@ driverName: "csi-powerstore.dellemc.com" # Driver version required to pull the latest driver image -version: "v2.7.0" +version: "v2.8.0" # Specify kubelet config dir path. # Ensure that the config.yaml file is present at this path. @@ -53,6 +53,13 @@ externalAccess: # Default value: None imagePullPolicy: IfNotPresent +# maxPowerstoreVolumesPerNode: Specify default value for maximum number of volumes that controller can publish to the node. +# If value is zero CO SHALL decide how many volumes of this type can be published by the controller to the node. +# This limit is applicable to all the nodes in the cluster for which node label 'max-powerstore-volumes-per-node' is not set. +# Allowed values: n, where n >= 0 +# Default value: 0 +maxPowerstoreVolumesPerNode: 0 + # nfsAcls: enables setting permissions on NFS mount directory # This value acts as default value for NFS ACL (nfsAcls), if not specified for an array config in secret # Permissions can be specified in two formats: diff --git a/charts/csi-unity/Chart.yaml b/charts/csi-unity/Chart.yaml index c1a1c271..e0071cc2 100644 --- a/charts/csi-unity/Chart.yaml +++ b/charts/csi-unity/Chart.yaml @@ -1,20 +1,20 @@ apiVersion: v2 -appVersion: 2.7.0 +appVersion: 2.8.0 name: csi-unity -version: 2.7.0 +version: 2.8.0 description: | Unity XT CSI (Container Storage Interface) driver Kubernetes integration. This chart includes everything required to provision via CSI as well as a Unity XT StorageClass. type: application -kubeVersion: ">= 1.24.0 < 1.28.0" +kubeVersion: ">= 1.24.0 < 1.29.0" # If you are using a complex K8s version like "v1.24.3-mirantis-1", use this kubeVersion check instead # WARNING: this version of the check will allow the use of alpha and beta versions, which is NOT SUPPORTED -# kubeVersion: ">= 1.24.0-0 < 1.28.0-0" +# kubeVersion: ">= 1.24.0-0 < 1.29.0-0" keywords: - csi - storage sources: - https://github.com/dell/csi-unity maintainers: -- name: DellEMC +- name: DellEMC \ No newline at end of file diff --git a/charts/csi-unity/templates/_helpers.tpl b/charts/csi-unity/templates/_helpers.tpl index e5bc0130..c20b246f 100644 --- a/charts/csi-unity/templates/_helpers.tpl +++ b/charts/csi-unity/templates/_helpers.tpl @@ -3,7 +3,7 @@ Return the appropriate sidecar images based on k8s version */}} {{- define "csi-unity.attacherImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-attacher:v4.3.0" -}} {{- end -}} {{- end -}} @@ -11,7 +11,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-unity.provisionerImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-provisioner:v3.5.0" -}} {{- end -}} {{- end -}} @@ -19,7 +19,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-unity.snapshotterImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-snapshotter:v6.2.2" -}} {{- end -}} {{- end -}} @@ -27,7 +27,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-unity.resizerImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-resizer:v1.8.0" -}} {{- end -}} {{- end -}} @@ -35,7 +35,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-unity.registrarImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.8.0" -}} {{- end -}} {{- end -}} @@ -43,8 +43,19 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-unity.healthmonitorImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-external-health-monitor-controller:v0.9.0" -}} {{- end -}} {{- end -}} {{- end -}} + +{{/* +Return true if storage capacity tracking is enabled and is supported based on k8s version +*/}} +{{- define "csi-unity.isStorageCapacitySupported" -}} +{{- if eq .Values.storageCapacity.enabled true -}} + {{- if and (eq .Capabilities.KubeVersion.Major "1") (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") -}} + {{- true -}} + {{- end -}} +{{- end -}} +{{- end -}} diff --git a/charts/csi-unity/templates/controller.yaml b/charts/csi-unity/templates/controller.yaml index 2cf81728..2b126072 100644 --- a/charts/csi-unity/templates/controller.yaml +++ b/charts/csi-unity/templates/controller.yaml @@ -83,6 +83,18 @@ rules: - apiGroups: [""] resources: ["persistentvolumeclaims/status"] verbs: ["update", "patch"] + # Permissions for CSIStorageCapacity + {{- if eq (include "csi-unity.isStorageCapacitySupported" .) "true" }} + - apiGroups: ["storage.k8s.io"] + resources: ["csistoragecapacities"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["get"] + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["get"] + {{- end }} --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 @@ -188,9 +200,20 @@ spec: - "--leader-election" - "--leader-election-namespace={{ .Release.Namespace }}" - "--default-fstype={{ .Values.defaultFsType | default "ext4" }}" + - "--enable-capacity={{ (include "csi-unity.isStorageCapacitySupported" .) | default false }}" + - "--capacity-ownerref-level=2" + - "--capacity-poll-interval={{ .Values.storageCapacity.pollInterval | default "5m" }}" env: - name: ADDRESS value: /var/run/csi/csi.sock + - name: NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name volumeMounts: - name: socket-dir mountPath: /var/run/csi diff --git a/charts/csi-unity/templates/csidriver.yaml b/charts/csi-unity/templates/csidriver.yaml index f38d58ee..f9d57239 100644 --- a/charts/csi-unity/templates/csidriver.yaml +++ b/charts/csi-unity/templates/csidriver.yaml @@ -3,9 +3,10 @@ kind: CSIDriver metadata: name: csi-unity.dellemc.com spec: + storageCapacity: {{ (include "csi-unity.isStorageCapacitySupported" .) | default false }} attachRequired: true podInfoOnMount: true volumeLifecycleModes: - Persistent - Ephemeral - fsGroupPolicy: {{ .Values.fsGroupPolicy }} + fsGroupPolicy: {{ .Values.fsGroupPolicy }} \ No newline at end of file diff --git a/charts/csi-unity/values.yaml b/charts/csi-unity/values.yaml index 5cca28ff..04e2eef5 100644 --- a/charts/csi-unity/values.yaml +++ b/charts/csi-unity/values.yaml @@ -3,8 +3,8 @@ # version: version of this values file # Note: Do not change this value -# Examples : "v2.7.0" , "nightly" -version: "v2.7.0" +# Examples : "v2.8.0" , "nightly" +version: "v2.8.0" # LogLevel is used to set the logging level of the driver. # Allowed values: "error", "warn"/"warning", "info", "debug" @@ -242,6 +242,20 @@ maxUnityVolumesPerNode: 0 # Examples : "tenant2" , "tenant3" tenantName: "" +# Storage Capacity Tracking +# Note: Capacity tracking is supported in kubernetes v1.24 and above, this feature will be automatically disabled in older versions. +storageCapacity: + # enabled : Enable/Disable storage capacity tracking + # Allowed values: + # true: enable storage capacity tracking + # false: disable storage capacity tracking + # Default value: true + enabled: true + # pollInterval : Configure how often external-provisioner polls the driver to detect changed capacity + # Allowed values: 1m,2m,3m,...,10m,...,60m etc + # Default value: 5m + pollInterval: 5m + images: # "driver" defines the container image, used for the driver container. driverRepository: dellemc diff --git a/charts/csi-vxflexos/Chart.yaml b/charts/csi-vxflexos/Chart.yaml index ebc729c7..adc4da24 100644 --- a/charts/csi-vxflexos/Chart.yaml +++ b/charts/csi-vxflexos/Chart.yaml @@ -1,15 +1,15 @@ apiVersion: v2 -appVersion: "2.7.1" +appVersion: "2.8.0" name: csi-vxflexos -version: "2.7.1" +version: "2.8.0" description: | VxFlex OS CSI (Container Storage Interface) driver Kubernetes integration. This chart includes everything required to provision via CSI as well as a VxFlex OS StorageClass. -kubeVersion: ">= 1.21.0 < 1.28.0" +kubeVersion: ">= 1.21.0 < 1.29.0" # If you are using a complex K8s version like "v1.21.3-mirantis-1", use this kubeVersion check instead # WARNING: this version of the check will allow the use of alpha and beta versions, which is NOT SUPPORTED -# kubeVersion: ">= 1.21.0-0 < 1.28.0-0" +# kubeVersion: ">= 1.21.0-0 < 1.29.0-0" keywords: - csi - storage @@ -17,4 +17,3 @@ maintainers: - name: DellEMC sources: - https://github.com/dell/csi-vxflexos - diff --git a/charts/csi-vxflexos/templates/_helpers.tpl b/charts/csi-vxflexos/templates/_helpers.tpl index 63e654ea..621f38fc 100644 --- a/charts/csi-vxflexos/templates/_helpers.tpl +++ b/charts/csi-vxflexos/templates/_helpers.tpl @@ -3,7 +3,7 @@ Return the appropriate sidecar images based on k8s version */}} {{- define "csi-vxflexos.attacherImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-attacher:v4.3.0" -}} {{- end -}} {{- end -}} @@ -11,7 +11,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-vxflexos.provisionerImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-provisioner:v3.5.0" -}} {{- end -}} {{- end -}} @@ -19,7 +19,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-vxflexos.snapshotterImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-snapshotter:v6.2.2" -}} {{- end -}} {{- end -}} @@ -27,7 +27,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-vxflexos.resizerImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-resizer:v1.8.0" -}} {{- end -}} {{- end -}} @@ -35,7 +35,7 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-vxflexos.registrarImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.8.0" -}} {{- end -}} {{- end -}} @@ -43,8 +43,19 @@ Return the appropriate sidecar images based on k8s version {{- define "csi-vxflexos.healthmonitorImage" -}} {{- if eq .Capabilities.KubeVersion.Major "1" }} - {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "27") -}} + {{- if and (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "21") (le (trimSuffix "+" .Capabilities.KubeVersion.Minor) "28") -}} {{- print "registry.k8s.io/sig-storage/csi-external-health-monitor-controller:v0.9.0" -}} {{- end -}} {{- end -}} {{- end -}} + +{{/* +Return true if storage capacity tracking is enabled and is supported based on k8s version +*/}} +{{- define "csi-vxflexos.isStorageCapacitySupported" -}} +{{- if eq .Values.storageCapacity.enabled true -}} + {{- if and (eq .Capabilities.KubeVersion.Major "1") (ge (trimSuffix "+" .Capabilities.KubeVersion.Minor) "24") -}} + {{- true -}} + {{- end -}} +{{- end -}} +{{- end -}} \ No newline at end of file diff --git a/charts/csi-vxflexos/templates/controller.yaml b/charts/csi-vxflexos/templates/controller.yaml index 8c4b4bef..acecc2e2 100644 --- a/charts/csi-vxflexos/templates/controller.yaml +++ b/charts/csi-vxflexos/templates/controller.yaml @@ -111,6 +111,18 @@ rules: verbs: ["create", "get", "list", "watch"] {{- end}} {{- end}} +# Permissions for CSIStorageCapacity +{{- if eq (include "csi-vxflexos.isStorageCapacitySupported" .) "true" }} + - apiGroups: ["storage.k8s.io"] + resources: ["csistoragecapacities"] + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["get"] + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["get"] +{{- end }} --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 @@ -258,9 +270,20 @@ spec: - "--v=5" - "--default-fstype={{ .Values.defaultFsType | default "ext4" }}" - "--extra-create-metadata" + - "--enable-capacity={{ (include "csi-vxflexos.isStorageCapacitySupported" .) | default false }}" + - "--capacity-ownerref-level=2" + - "--capacity-poll-interval={{ .Values.storageCapacity.pollInterval | default "5m" }}" env: - name: ADDRESS value: /var/run/csi/csi.sock + - name: NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name volumeMounts: - name: socket-dir mountPath: /var/run/csi @@ -397,6 +420,20 @@ spec: value: "{{ .Values.controller.healthMonitor.enabled }}" {{- end }} {{- end }} + {{- if hasKey .Values "nfsAcls" }} + - name: X_CSI_NFS_ACLS + value: "{{ .Values.nfsAcls }}" + {{- end }} + {{- if hasKey .Values "externalAccess" }} + - name: X_CSI_POWERFLEX_EXTERNAL_ACCESS + value: "{{ .Values.externalAccess }}" + {{- end }} + {{- if hasKey .Values "enableQuota" }} + {{- if eq .Values.enableQuota true}} + - name: X_CSI_QUOTA_ENABLED + value: "{{ .Values.enableQuota }}" + {{- end }} + {{- end }} volumeMounts: - name: socket-dir mountPath: /var/run/csi @@ -439,4 +476,4 @@ spec: - key: cert-{{ $e }} path: cert-{{ $e }} {{- end }} -{{- end }} +{{- end }} \ No newline at end of file diff --git a/charts/csi-vxflexos/templates/csidriver.yaml b/charts/csi-vxflexos/templates/csidriver.yaml index f8aac725..8bd88e7a 100644 --- a/charts/csi-vxflexos/templates/csidriver.yaml +++ b/charts/csi-vxflexos/templates/csidriver.yaml @@ -3,6 +3,7 @@ kind: CSIDriver metadata: name: csi-vxflexos.dellemc.com spec: + storageCapacity: {{ (include "csi-vxflexos.isStorageCapacitySupported" .) | default false }} fsGroupPolicy: {{ .Values.fsGroupPolicy }} attachRequired: true podInfoOnMount: true diff --git a/charts/csi-vxflexos/templates/node.yaml b/charts/csi-vxflexos/templates/node.yaml index 2ba5d3c6..44806fb0 100644 --- a/charts/csi-vxflexos/templates/node.yaml +++ b/charts/csi-vxflexos/templates/node.yaml @@ -197,6 +197,8 @@ spec: value: "{{ .Values.kubeletConfigDir }}/plugins/vxflexos.emc.dell.com/disks" - name: X_CSI_ALLOW_RWO_MULTI_POD_ACCESS value: "{{ required "Must provide a true/false string to allow RWO multi pod access." .Values.allowRWOMultiPodAccess }}" + - name: X_CSI_MAX_VOLUMES_PER_NODE + value: "{{ .Values.maxVxflexosVolumesPerNode }}" - name: SSL_CERT_DIR value: /certs {{- if hasKey .Values.node "healthMonitor" }} diff --git a/charts/csi-vxflexos/values.yaml b/charts/csi-vxflexos/values.yaml index d80b662a..b8faaf5f 100644 --- a/charts/csi-vxflexos/values.yaml +++ b/charts/csi-vxflexos/values.yaml @@ -3,14 +3,14 @@ # "version" is used to verify the values file matches driver version # Not recommend to change -version: v2.7.1 +version: v2.8.0 images: # "driver" defines the container image, used for the driver container. driverRepository: dellemc # "powerflexSdc" defines the SDC image for init container. - powerflexSdc: dellemc/sdc:3.6.0.6 + powerflexSdc: dellemc/sdc:3.6.1 # Represents number of certificate secrets, which user is going to create for ssl authentication. (vxflexos-cert-0..vxflexos-cert-n) @@ -38,6 +38,11 @@ kubeletConfigDir: /var/lib/kubelet # Default value: none defaultFsType: ext4 +# externalAccess: allows to specify additional entries for host to access NFS volumes. Both single IP address and subnet are valid entries. +# Allowed Values: x.x.x.x/xx or x.x.x.x +# Default Value: None +externalAccess: + # imagePullPolicy: Policy to determine if the image should be pulled prior to starting the container. # Allowed values: # Always: Always pull the image. @@ -46,6 +51,29 @@ defaultFsType: ext4 # Default value: None imagePullPolicy: IfNotPresent +# nfsAcls: enables setting permissions on NFS mount directory +# This value acts as default value for NFS ACL (nfsAcls), if not specified for an array config in secret +# Permissions can be specified in two formats: +# 1) Unix mode (NFSv3) +# 2) NFSv4 ACLs (NFSv4) +# NFSv4 ACLs are supported on NFSv4 share only. +# Allowed values: +# 1) Unix mode: valid octal mode number +# Examples: "0777", "777", "0755" +# 2) NFSv4 acls: valid NFSv4 acls, separated by comma +# Examples: "A::OWNER@:RWX,A::GROUP@:RWX", "A::OWNER@:rxtncy" +# Optional: true +# Default value: "0777" +nfsAcls: "0777" + +# enableQuota: a boolean that, when enabled, will set quota limit for a newly provisioned NFS volume. +# Allowed values: +# true: set quota for volume +# false: do not set quota for volume +# Optional: true +# Default value: none +enableQuota: false + # "enablesnapshotcgdelete"- a boolean that, when enabled, will delete all snapshots in a consistency group # everytime a snap in the group is deleted # Allowed values: true, false @@ -54,7 +82,7 @@ enablesnapshotcgdelete: "false" # "enablelistvolumesnapshot" - a boolean that, when enabled, will allow list volume operation to include snapshots (since creating a volume # from a snap actually results in a new snap) -# It is recommend this be false unless instructed otherwise. +# It is recommended this be false unless instructed otherwise. # Allowed values: true, false # Default value: none enablelistvolumesnapshot: "false" @@ -62,7 +90,7 @@ enablelistvolumesnapshot: "false" # Setting allowRWOMultiPodAccess to "true" will allow multiple pods on the same node # to access the same RWO volume. This behavior conflicts with the CSI specification version 1.3 # NodePublishVolume descrition that requires an error to be returned in this case. -# However some other CSI drivers support this behavior and some customers desire this behavior. +# However, some other CSI drivers support this behavior and some customers desire this behavior. # Kubernetes could make a change at their discretion that would preclude our ability to support this option. # Customers use this option at their own risk. # You should leave this set as "false" unless instructed to change it by Dell support. @@ -79,6 +107,13 @@ allowRWOMultiPodAccess: "false" # None: volumes will be mounted with no modifications. fsGroupPolicy: File +# maxVxflexosVolumesPerNode: Specify default value for maximum number of volumes that controller can publish to the node. +# If value is zero CO SHALL decide how many volumes of this type can be published by the controller to the node. +# This limit is applicable to all the nodes in the cluster for which node label 'maxVxflexosVolumesPerNode' is not set. +# Allowed values: n, where n >= 0 +# Default value: 0 +maxVxflexosVolumesPerNode: 0 + # "controller" allows to configure controller specific parameters controller: @@ -245,6 +280,21 @@ node: # Default value: false enabled: false +# Storage Capacity Tracking +# Note: Capacity tracking is supported in kubernetes v1.24 and above, this feature will be automatically disabled in older versions. +storageCapacity: + # enabled : Enable/Disable storage capacity tracking + # Allowed values: + # true: enable storage capacity tracking + # false: disable storage capacity tracking + # Default value: true + enabled: true + # pollInterval : Configure how often external-provisioner polls the driver to detect changed capacity + # Allowed values: 1m,2m,3m,...,10m,...,60m etc + # Default value: 5m + pollInterval: 5m + + # monitoring pod details # These options control the running of the monitoring container # This container gather diagnostic information in case of failure @@ -320,4 +370,4 @@ authorization: # "true" - TLS certificate verification will be skipped # "false" - TLS certificate will be verified # Default value: "true" - skipCertificateValidation: true + skipCertificateValidation: true \ No newline at end of file diff --git a/charts/csm-replication/templates/controller.yaml b/charts/csm-replication/templates/controller.yaml index d0f408cc..4fc19d96 100644 --- a/charts/csm-replication/templates/controller.yaml +++ b/charts/csm-replication/templates/controller.yaml @@ -17,10 +17,8 @@ rules: resources: - customresourcedefinitions verbs: - - create - get - list - - update - watch - apiGroups: - apiextensions.k8s.io @@ -29,7 +27,6 @@ rules: verbs: - get - list - - patch - watch - apiGroups: - coordination.k8s.io @@ -267,12 +264,6 @@ spec: {{- toYaml .Values.hostAliases | nindent 6 }} {{- end }} serviceAccountName: dell-replication-controller-sa - initContainers: - - name: init-rg-migration - imagePullPolicy: Always - image: {{ .Values.initImage }} - command: - - /upgrade/migrate_rg.sh containers: - args: - prefix=replication.storage.dell.com diff --git a/charts/csm-replication/values.yaml b/charts/csm-replication/values.yaml index d9463d7d..f7e869fd 100644 --- a/charts/csm-replication/values.yaml +++ b/charts/csm-replication/values.yaml @@ -7,10 +7,6 @@ replicas: 1 # Allowed values: string image: dellemc/dell-replication-controller:v1.5.0 -# image: Defines controller's init container image. This shouldn't be changed -# Allowed values: string -initImage: dellemc/dell-replication-init:v1.0.1 - # logLevel: Defines initial log level for controller. This can be changed in runtime # Allowed values: "debug", "info", "warn", "error", "panic" # Default value: "info"