From 78a6937ae2602143eb1c6cb5fea5ca8cf8d80d8f Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Tue, 3 May 2022 11:22:04 +0000 Subject: [PATCH] doc: cut v4.0.0 release fix --- README.md | 5 +- charts/README.md | 2 +- charts/index.yaml | 23 +++- charts/latest/csi-driver-nfs-v4.0.0.tgz | Bin 3608 -> 3584 bytes charts/latest/csi-driver-nfs/Chart.yaml | 2 +- charts/latest/csi-driver-nfs/values.yaml | 4 +- charts/v4.0.0/csi-driver-nfs-v4.0.0.tgz | Bin 0 -> 3583 bytes charts/v4.0.0/csi-driver-nfs/.helmignore | 22 +++ charts/v4.0.0/csi-driver-nfs/Chart.yaml | 5 + .../v4.0.0/csi-driver-nfs/templates/NOTES.txt | 5 + .../csi-driver-nfs/templates/_helpers.tpl | 19 +++ .../templates/csi-nfs-controller.yaml | 110 +++++++++++++++ .../templates/csi-nfs-driverinfo.yaml | 15 ++ .../templates/csi-nfs-node.yaml | 126 +++++++++++++++++ .../templates/rbac-csi-nfs-controller.yaml | 57 ++++++++ charts/v4.0.0/csi-driver-nfs/values.yaml | 110 +++++++++++++++ deploy/csi-nfs-controller.yaml | 2 +- deploy/csi-nfs-node.yaml | 2 +- deploy/v4.0.0/csi-nfs-controller.yaml | 118 ++++++++++++++++ deploy/v4.0.0/csi-nfs-driverinfo.yaml | 11 ++ deploy/v4.0.0/csi-nfs-node.yaml | 130 ++++++++++++++++++ deploy/v4.0.0/rbac-csi-nfs-controller.yaml | 52 +++++++ docs/install-csi-driver-v4.0.0.md | 45 ++++++ docs/install-nfs-csi-driver.md | 1 + 24 files changed, 851 insertions(+), 15 deletions(-) create mode 100644 charts/v4.0.0/csi-driver-nfs-v4.0.0.tgz create mode 100644 charts/v4.0.0/csi-driver-nfs/.helmignore create mode 100644 charts/v4.0.0/csi-driver-nfs/Chart.yaml create mode 100644 charts/v4.0.0/csi-driver-nfs/templates/NOTES.txt create mode 100644 charts/v4.0.0/csi-driver-nfs/templates/_helpers.tpl create mode 100644 charts/v4.0.0/csi-driver-nfs/templates/csi-nfs-controller.yaml create mode 100644 charts/v4.0.0/csi-driver-nfs/templates/csi-nfs-driverinfo.yaml create mode 100644 charts/v4.0.0/csi-driver-nfs/templates/csi-nfs-node.yaml create mode 100644 charts/v4.0.0/csi-driver-nfs/templates/rbac-csi-nfs-controller.yaml create mode 100644 charts/v4.0.0/csi-driver-nfs/values.yaml create mode 100644 deploy/v4.0.0/csi-nfs-controller.yaml create mode 100644 deploy/v4.0.0/csi-nfs-driverinfo.yaml create mode 100644 deploy/v4.0.0/csi-nfs-node.yaml create mode 100644 deploy/v4.0.0/rbac-csi-nfs-controller.yaml create mode 100644 docs/install-csi-driver-v4.0.0.md diff --git a/README.md b/README.md index 2f33c23e..4d98f59d 100644 --- a/README.md +++ b/README.md @@ -6,12 +6,13 @@ This is a repository for [NFS](https://en.wikipedia.org/wiki/Network_File_System) [CSI](https://kubernetes-csi.github.io/docs/) driver, csi plugin name: `nfs.csi.k8s.io`. 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. -### Project status: Beta +### Project status: GA ### Container Images & Kubernetes Compatibility: |driver version | supported k8s version | status | |----------------|-----------------------|--------| -|master branch | 1.20+ | beta | +|master branch | 1.20+ | GA | +|v4.0.0 | 1.10+ | GA | |v3.1.0 | 1.19+ | beta | |v3.0.0 | 1.19+ | beta | |v2.0.0 | 1.14+ | alpha | diff --git a/charts/README.md b/charts/README.md index c2a24028..a7c123f6 100644 --- a/charts/README.md +++ b/charts/README.md @@ -10,7 +10,7 @@ ### install a specific version ```console helm repo add csi-driver-nfs https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts -helm install csi-driver-nfs csi-driver-nfs/csi-driver-nfs --namespace kube-system --version v3.1.0 +helm install csi-driver-nfs csi-driver-nfs/csi-driver-nfs --namespace kube-system --version v4.0.0 ``` ### install driver with customized driver name, deployment name diff --git a/charts/index.yaml b/charts/index.yaml index 0a31f988..81e8cea4 100644 --- a/charts/index.yaml +++ b/charts/index.yaml @@ -2,17 +2,26 @@ apiVersion: v1 entries: csi-driver-nfs: - apiVersion: v1 - appVersion: latest - created: "2022-04-30T07:45:33.947314152Z" + appVersion: v4.0.0 + created: "2022-05-03T11:18:21.533449624Z" description: CSI NFS Driver for Kubernetes - digest: a90874bcdaeef76bc10aea70f0ed559c69d50a9390d6c7d1b4156c4d54758c3b + digest: 70f403442f59edb6c01fed573ce40c625775be15b1e32c21edf5704adcc94be9 name: csi-driver-nfs urls: - https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts/latest/csi-driver-nfs-v4.0.0.tgz version: v4.0.0 + - apiVersion: v1 + appVersion: v4.0.0 + created: "2022-05-03T11:18:21.536514545Z" + description: CSI NFS Driver for Kubernetes + digest: cb537287512ce9f99adaead8cd4904ed7284780bdc44c9b8d6705e66f28bfa5c + name: csi-driver-nfs + urls: + - https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts/v4.0.0/csi-driver-nfs-v4.0.0.tgz + version: v4.0.0 - apiVersion: v1 appVersion: v3.1.0 - created: "2022-04-30T07:45:33.949154964Z" + created: "2022-05-03T11:18:21.535854341Z" description: CSI NFS Driver for Kubernetes digest: 7e51bb9188b013195cafc265102fa365de9ec5513780e1dfc5363289f811a4d9 name: csi-driver-nfs @@ -21,7 +30,7 @@ entries: version: v3.1.0 - apiVersion: v1 appVersion: v3.0.0 - created: "2022-04-30T07:45:33.94847026Z" + created: "2022-05-03T11:18:21.535058035Z" description: CSI NFS Driver for Kubernetes digest: 44406231cd5cdada1c62a0541b93b4f5d5a70ccc8c50b33553a8692fe6cfae96 name: csi-driver-nfs @@ -30,11 +39,11 @@ entries: version: v3.0.0 - apiVersion: v1 appVersion: v2.0.0 - created: "2022-04-30T07:45:33.947715955Z" + created: "2022-05-03T11:18:21.533976127Z" description: CSI NFS Driver for Kubernetes digest: 1a32c6fc016526fe19a0c9e0dfbe83d0ddde67ced533bb5f5d24d713f706c613 name: csi-driver-nfs urls: - https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts/v2.0.0/csi-driver-nfs-v2.0.0.tgz version: v2.0.0 -generated: "2022-04-30T07:45:33.946482046Z" +generated: "2022-05-03T11:18:21.530613004Z" diff --git a/charts/latest/csi-driver-nfs-v4.0.0.tgz b/charts/latest/csi-driver-nfs-v4.0.0.tgz index 0000a2eba87f889c02753af7c06dc5a344c92ecc..aa2bdefd680b8cdb881b9fd522610fb3779f99f4 100644 GIT binary patch delta 3351 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�vy)Th1*sIqL3;s>k+fYqDgNUH h6BUUV+gs1I6)oGcE#E--zW@LL|Nr|w+AaWC002xih_(O# delta 3378 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 ILI79*0P6j=H~;_u diff --git a/charts/latest/csi-driver-nfs/Chart.yaml b/charts/latest/csi-driver-nfs/Chart.yaml index 40fa2ebf..c591d76b 100755 --- a/charts/latest/csi-driver-nfs/Chart.yaml +++ b/charts/latest/csi-driver-nfs/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -appVersion: latest +appVersion: v4.0.0 description: CSI NFS Driver for Kubernetes name: csi-driver-nfs version: v4.0.0 diff --git a/charts/latest/csi-driver-nfs/values.yaml b/charts/latest/csi-driver-nfs/values.yaml index 4c9acd21..da1888aa 100755 --- a/charts/latest/csi-driver-nfs/values.yaml +++ b/charts/latest/csi-driver-nfs/values.yaml @@ -1,8 +1,8 @@ customLabels: {} image: nfs: - repository: gcr.io/k8s-staging-sig-storage/nfsplugin - tag: canary + repository: registry.k8s.io/sig-storage/nfsplugin + tag: v4.0.0 pullPolicy: IfNotPresent csiProvisioner: repository: registry.k8s.io/sig-storage/csi-provisioner diff --git a/charts/v4.0.0/csi-driver-nfs-v4.0.0.tgz b/charts/v4.0.0/csi-driver-nfs-v4.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..1b373e99e7914297b072579f60c0fd8e736ff364 GIT binary patch literal 3583 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