csi-driver-nfs/docs/driver-parameters.md
andyzhangx 16c442ad78 feat: add subDir in storage class parameters
fix subdir

internal mount fix

mount subdir in NodePublishVolume

fix golint

fix

fix

setKeyValueInMap
2022-06-12 11:27:44 +00:00

2.3 KiB

Driver Parameters

This driver requires existing and already configured NFSv3 or NFSv4 server, it supports dynamic provisioning of Persistent Volumes via Persistent Volume Claims by creating a new sub directory under NFS server.

storage class usage (dynamic provisioning)

StorageClass example

Name Meaning Example Value Mandatory Default value
server NFS Server address domain name nfs-server.default.svc.cluster.local
or IP address 127.0.0.1
Yes
share NFS share path / Yes
subDir sub directory under nfs share No if sub directory does not exist, this driver would create a new one
mountPermissions mounted folder permissions. The default is 0777, if set as 0, driver will not perform chmod after mount No

PV/PVC usage (static provisioning)

PersistentVolume example

Name Meaning Example Value Mandatory Default value
volumeAttributes.server NFS Server address domain name nfs-server.default.svc.cluster.local
or IP address 127.0.0.1
Yes
volumeAttributes.share NFS share path / Yes
volumeAttributes.mountPermissions mounted folder permissions. The default is 0777 No

Tips

provide mountOptions for DeleteVolume

since DeleteVolumeRequest does not provide mountOptions, following is the workaround to provide mountOptions for DeleteVolume, check details here

  • create a secret with mountOptions
kubectl create secret generic mount-options --from-literal mountOptions="nfsvers=3,hard"
  • define a storage class with csi.storage.k8s.io/provisioner-secret-name and csi.storage.k8s.io/provisioner-secret-namespace setting:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: nfs-csi
provisioner: nfs.csi.k8s.io
parameters:
  server: nfs-server.default.svc.cluster.local
  share: /
  # 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