From b173d49dca699bb3e3bd95c13b155969b1e8c64a Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Tue, 4 Jan 2022 02:25:29 +0000 Subject: [PATCH] doc: update mountOptions for DeleteVolume doc --- deploy/example/storageclass-nfs.yaml | 3 +++ docs/driver-parameters.md | 36 ++++++++++++++++++++++++---- 2 files changed, 35 insertions(+), 4 deletions(-) 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 +```