diff --git a/charts/README.md b/charts/README.md index 743639166..b2f9abafc 100644 --- a/charts/README.md +++ b/charts/README.md @@ -116,6 +116,37 @@ The following table lists the configurable parameters of the latest NFS CSI Driv | `externalSnapshotter.resources.requests.cpu` | snapshot-controller cpu requests limits | 10m | | `externalSnapshotter.resources.requests.memory` | snapshot-controller memory requests limits | 20Mi | | `storageClass.create` | create storageclass| `false` | | +| `storageClasses` | create multiple storageclasses (if specified, `storageClass.create` is still respected)| `[]` | | + +### Create multiple storage classes + +You can create multiple storage classes with different configurations using the `storageClasses` parameter: + +```yaml +storageClasses: + - name: nfs-delete + annotations: + storageclass.kubernetes.io/is-default-class: "true" + parameters: + server: nfs-server.default.svc.cluster.local + share: / + reclaimPolicy: Delete + volumeBindingMode: Immediate + mountOptions: + - nfsvers=4.1 + - name: nfs-retain + parameters: + server: nfs-server.default.svc.cluster.local + share: /data + reclaimPolicy: Retain + volumeBindingMode: Immediate + mountOptions: + - nfsvers=4.1 +``` +Install with custom values: +```console +helm install csi-driver-nfs csi-driver-nfs/csi-driver-nfs --namespace kube-system -f custom-values.yaml +``` ## troubleshooting - Add `--wait -v=5 --debug` in `helm install` command to get detailed error diff --git a/charts/latest/csi-driver-nfs-v0.0.0.tgz b/charts/latest/csi-driver-nfs-v0.0.0.tgz index e10a77863..61147ebda 100644 Binary files a/charts/latest/csi-driver-nfs-v0.0.0.tgz and b/charts/latest/csi-driver-nfs-v0.0.0.tgz differ diff --git a/charts/latest/csi-driver-nfs/templates/storageclass.yaml b/charts/latest/csi-driver-nfs/templates/storageclass.yaml index 1d0a241c0..3528502c8 100644 --- a/charts/latest/csi-driver-nfs/templates/storageclass.yaml +++ b/charts/latest/csi-driver-nfs/templates/storageclass.yaml @@ -22,3 +22,33 @@ mountOptions: {{ toYaml . | nindent 2 }} {{- end }} {{- end }} +{{- if .Values.storageClasses }} +{{- range .Values.storageClasses }} +--- +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: {{ .name }} +{{ include "nfs.labels" $ | indent 2 }} + {{- with .annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +provisioner: {{ $.Values.driver.name }} +{{- with .parameters }} +parameters: +{{ toYaml . | indent 2 }} +{{- end }} +reclaimPolicy: {{ .reclaimPolicy | default "Delete" }} +volumeBindingMode: {{ .volumeBindingMode | default "Immediate" }} +{{- if hasKey . "allowVolumeExpansion" }} +allowVolumeExpansion: {{ .allowVolumeExpansion }} +{{- else }} +allowVolumeExpansion: true +{{- end }} +{{- with .mountOptions }} +mountOptions: +{{ toYaml . | nindent 2 }} +{{- end }} +{{- end }} +{{- end }} diff --git a/charts/latest/csi-driver-nfs/values.yaml b/charts/latest/csi-driver-nfs/values.yaml index 239fa4ca2..cd0a0be1d 100755 --- a/charts/latest/csi-driver-nfs/values.yaml +++ b/charts/latest/csi-driver-nfs/values.yaml @@ -183,7 +183,7 @@ storageClass: # server: nfs-server.default.svc.cluster.local # share: / # subDir: -# mountPermissions: "0" +# mountPermissions: "0755" # csi.storage.k8s.io/provisioner-secret is only needed for providing mountOptions in DeleteVolume # csi.storage.k8s.io/provisioner-secret-name: "mount-options" # csi.storage.k8s.io/provisioner-secret-namespace: "default" @@ -191,3 +191,30 @@ storageClass: # volumeBindingMode: Immediate # mountOptions: # - nfsvers=4.1 + +## StorageClass resources for creating multiple storage classes: +## If you want multiple storage classes with different configurations, use this instead of storageClass above +# storageClasses: +# - name: nfs-delete +# annotations: +# storageclass.kubernetes.io/is-default-class: "true" +# parameters: +# server: nfs-server.default.svc.cluster.local +# share: / +# # subDir: +# # mountPermissions: "0" +# # csi.storage.k8s.io/provisioner-secret is only needed for providing mountOptions in DeleteVolume +# # csi.storage.k8s.io/provisioner-secret-name: "mount-options" +# # csi.storage.k8s.io/provisioner-secret-namespace: "default" +# reclaimPolicy: Delete +# volumeBindingMode: Immediate +# mountOptions: +# - nfsvers=4.1 +# - name: nfs-retain +# parameters: +# server: nfs-server.default.svc.cluster.local +# share: / +# reclaimPolicy: Retain +# volumeBindingMode: Immediate +# mountOptions: +# - nfsvers=4.1