Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 33 additions & 1 deletion charts/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,39 @@ The following table lists the configurable parameters of the latest NFS CSI Driv
| `externalSnapshotter.resources.limits.memory` | snapshot-controller memory limits | 300Mi |
| `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` | |
| `storageClass.create` | create a single 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
Expand Down
30 changes: 30 additions & 0 deletions charts/latest/csi-driver-nfs/templates/storageclass.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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 }}
29 changes: 28 additions & 1 deletion charts/latest/csi-driver-nfs/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ volumeSnapshotClass:
imagePullSecrets: []
# - name: "image-pull-secret"

## StorageClass resource example:
## StorageClass resource example (single storageclass):
storageClass:
create: false
# name: nfs-csi
Expand All @@ -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
30 changes: 30 additions & 0 deletions charts/v4.10.0/csi-driver-nfs/templates/storageclass.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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 }}
29 changes: 28 additions & 1 deletion charts/v4.10.0/csi-driver-nfs/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ volumeSnapshotClass:
imagePullSecrets: []
# - name: "image-pull-secret"

## StorageClass resource example:
## StorageClass resource example (single storageclass):
storageClass:
create: false
# name: nfs-csi
Expand All @@ -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
30 changes: 30 additions & 0 deletions charts/v4.11.0/csi-driver-nfs/templates/storageclass.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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 }}
29 changes: 28 additions & 1 deletion charts/v4.11.0/csi-driver-nfs/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ volumeSnapshotClass:
imagePullSecrets: []
# - name: "image-pull-secret"

## StorageClass resource example:
## StorageClass resource example (single storageclass):
storageClass:
create: false
# name: nfs-csi
Expand All @@ -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