diff --git a/deploy/example/storageclass-nfs.yaml b/deploy/example/storageclass-nfs.yaml
index 9704c9dd..27f74b0e 100644
--- a/deploy/example/storageclass-nfs.yaml
+++ b/deploy/example/storageclass-nfs.yaml
@@ -7,6 +7,9 @@ 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:
diff --git a/docs/driver-parameters.md b/docs/driver-parameters.md
index d2cdc542..16e3e747 100644
--- a/docs/driver-parameters.md
+++ b/docs/driver-parameters.md
@@ -1,18 +1,46 @@
## 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)
+### storage class usage (dynamic provisioning)
> [`StorageClass` example](../deploy/example/storageclass-nfs.yaml)
Name | Meaning | Example Value | Mandatory | Default value
--- | --- | --- | --- | ---
-server | NFS Server endpoint | Domain name `nfs-server.default.svc.cluster.local`
Or IP address `127.0.0.1` | Yes |
+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 |
-### PV/PVC Usage (Static Provisioning)
+### PV/PVC usage (static provisioning)
> [`PersistentVolume` example](../deploy/example/pv-nfs-csi.yaml)
Name | Meaning | Example Value | Mandatory | Default value
--- | --- | --- | --- | ---
-volumeAttributes.server | NFS Server endpoint | Domain name `nfs-server.default.svc.cluster.local`
Or IP address `127.0.0.1` | Yes |
+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 |
+
+
+### Tips
+#### provide `mountOptions` for `DeleteVolume`
+> since `DeleteVolumeRequest` does not provide `mountOptions`, following is the workaround to provide `mountOptions` for `DeleteVolume`, check details [here](https://github.com/kubernetes-csi/csi-driver-nfs/issues/260)
+ - create a secret with `mountOptions`
+```console
+kubectl create secret generic mount-options --from-literal mountOptions="nfsvers=3"
+```
+ - define a storage class with `csi.storage.k8s.io/provisioner-secret-name` and `csi.storage.k8s.io/provisioner-secret-namespace` setting:
+```yaml
+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:
+ - hard
+ - nfsvers=3
+```