From 79d4b0eb1cadbd827fbcba689cbc958ee33972e1 Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Sat, 15 Jan 2022 13:56:14 +0000 Subject: [PATCH] doc: cut v3.1.0 release --- README.md | 1 + charts/README.md | 4 +- charts/index.yaml | 21 ++- charts/latest/csi-driver-nfs-v3.1.0.tgz | Bin 3603 -> 3597 bytes charts/latest/csi-driver-nfs/Chart.yaml | 2 +- charts/latest/csi-driver-nfs/values.yaml | 2 +- charts/v3.1.0/csi-driver-nfs-v3.1.0.tgz | Bin 0 -> 3597 bytes charts/v3.1.0/csi-driver-nfs/.helmignore | 22 +++ charts/v3.1.0/csi-driver-nfs/Chart.yaml | 5 + .../v3.1.0/csi-driver-nfs/templates/NOTES.txt | 5 + .../csi-driver-nfs/templates/_helpers.tpl | 16 +++ .../templates/csi-nfs-controller.yaml | 109 +++++++++++++++ .../templates/csi-nfs-driverinfo.yaml | 14 ++ .../templates/csi-nfs-node.yaml | 127 +++++++++++++++++ .../templates/rbac-csi-nfs-controller.yaml | 57 ++++++++ charts/v3.1.0/csi-driver-nfs/values.yaml | 102 ++++++++++++++ deploy/csi-nfs-controller.yaml | 2 +- deploy/csi-nfs-node.yaml | 2 +- deploy/v3.1.0/csi-nfs-controller.yaml | 114 +++++++++++++++ deploy/v3.1.0/csi-nfs-driverinfo.yaml | 10 ++ deploy/v3.1.0/csi-nfs-node.yaml | 132 ++++++++++++++++++ deploy/v3.1.0/rbac-csi-nfs-controller.yaml | 52 +++++++ docs/install-csi-driver-v3.1.0.md | 37 +++++ docs/install-nfs-csi-driver.md | 1 + 24 files changed, 825 insertions(+), 12 deletions(-) create mode 100644 charts/v3.1.0/csi-driver-nfs-v3.1.0.tgz create mode 100644 charts/v3.1.0/csi-driver-nfs/.helmignore create mode 100644 charts/v3.1.0/csi-driver-nfs/Chart.yaml create mode 100644 charts/v3.1.0/csi-driver-nfs/templates/NOTES.txt create mode 100644 charts/v3.1.0/csi-driver-nfs/templates/_helpers.tpl create mode 100644 charts/v3.1.0/csi-driver-nfs/templates/csi-nfs-controller.yaml create mode 100644 charts/v3.1.0/csi-driver-nfs/templates/csi-nfs-driverinfo.yaml create mode 100644 charts/v3.1.0/csi-driver-nfs/templates/csi-nfs-node.yaml create mode 100644 charts/v3.1.0/csi-driver-nfs/templates/rbac-csi-nfs-controller.yaml create mode 100644 charts/v3.1.0/csi-driver-nfs/values.yaml create mode 100644 deploy/v3.1.0/csi-nfs-controller.yaml create mode 100644 deploy/v3.1.0/csi-nfs-driverinfo.yaml create mode 100644 deploy/v3.1.0/csi-nfs-node.yaml create mode 100644 deploy/v3.1.0/rbac-csi-nfs-controller.yaml create mode 100644 docs/install-csi-driver-v3.1.0.md diff --git a/README.md b/README.md index ed2b8a6c..719b518e 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ This is a repository for [NFS](https://en.wikipedia.org/wiki/Network_File_System |driver version | supported k8s version | status | |----------------|-----------------------|--------| |master branch | 1.19+ | beta | +|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 b1fb613b..d68d3858 100644 --- a/charts/README.md +++ b/charts/README.md @@ -11,11 +11,11 @@ ### 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.0.0 +helm install csi-driver-nfs csi-driver-nfs/csi-driver-nfs --namespace kube-system --version v3.1.0 ``` ### install driver with customized driver name, deployment name -> only supported from `v3.0.0`+ +> only supported from `v3.1.0`+ - following example would install a driver with name `nfs2` ```console helm install csi-driver-nfs2 csi-driver-nfs/csi-driver-nfs --namespace kube-system --set driver.name="nfs2.csi.k8s.io" --set controller.name="csi-nfs2-controller" --set rbac.name=nfs2 --set serviceAccount.controller=csi-nfs2-controller-sa --set serviceAccount.node=csi-nfs2-node-sa --set node.name=csi-nfs2-node --set node.livenessProbe.healthPort=39653 diff --git a/charts/index.yaml b/charts/index.yaml index 9f3ba49a..f6509b69 100644 --- a/charts/index.yaml +++ b/charts/index.yaml @@ -2,17 +2,26 @@ apiVersion: v1 entries: csi-driver-nfs: - apiVersion: v1 - appVersion: latest - created: "2021-12-03T09:32:27.922454757Z" + appVersion: v3.1.0 + created: "2022-01-15T13:54:34.069016394Z" description: CSI NFS Driver for Kubernetes - digest: 12bfa47c9b4d8d70374af58c3ffcb17f063587ec374422290ddbaeba8be1e2d7 + digest: 05ddbdcc552781551d3578137996e6f0616132b1a068b03663224cd031e59739 name: csi-driver-nfs urls: - https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts/latest/csi-driver-nfs-v3.1.0.tgz version: v3.1.0 + - apiVersion: v1 + appVersion: v3.1.0 + created: "2022-01-15T13:54:34.071572409Z" + description: CSI NFS Driver for Kubernetes + digest: be2757357ed0a4c5c689b1c06de8eaa75da43430f08f04c8fb42fd17fffb0959 + name: csi-driver-nfs + urls: + - https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts/v3.1.0/csi-driver-nfs-v3.1.0.tgz + version: v3.1.0 - apiVersion: v1 appVersion: v3.0.0 - created: "2021-12-03T09:32:27.923670465Z" + created: "2022-01-15T13:54:34.070855705Z" description: CSI NFS Driver for Kubernetes digest: c19a1780bbdf240ff4628666a5cf70fea9d44fc20966b63796550e83a45ef50a name: csi-driver-nfs @@ -21,11 +30,11 @@ entries: version: v3.0.0 - apiVersion: v1 appVersion: v2.0.0 - created: "2021-12-03T09:32:27.92288436Z" + created: "2022-01-15T13:54:34.069693798Z" description: CSI NFS Driver for Kubernetes digest: f537a133eaa965f1c053ffac130f82c9b2b624e1f8bd42937c9c48818464eaac 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: "2021-12-03T09:32:27.921439951Z" +generated: "2022-01-15T13:54:34.066289278Z" diff --git a/charts/latest/csi-driver-nfs-v3.1.0.tgz b/charts/latest/csi-driver-nfs-v3.1.0.tgz index 5c0d8c74d439308ab2c7cd207f98858265b584ef..e46ab5f27edeab79ad7cdda56985a8fdae74c871 100644 GIT binary patch delta 3427 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 F007K_w|@Wt delta 3433 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 Ln*KMt09XJ3O5e&5 diff --git a/charts/latest/csi-driver-nfs/Chart.yaml b/charts/latest/csi-driver-nfs/Chart.yaml index 47eaa461..ea133b25 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: v3.1.0 description: CSI NFS Driver for Kubernetes name: csi-driver-nfs version: v3.1.0 diff --git a/charts/latest/csi-driver-nfs/values.yaml b/charts/latest/csi-driver-nfs/values.yaml index 4ea1987b..8dca8181 100755 --- a/charts/latest/csi-driver-nfs/values.yaml +++ b/charts/latest/csi-driver-nfs/values.yaml @@ -1,7 +1,7 @@ image: nfs: repository: mcr.microsoft.com/k8s/csi/nfs-csi - tag: latest + tag: v3.1.0 pullPolicy: IfNotPresent csiProvisioner: repository: k8s.gcr.io/sig-storage/csi-provisioner diff --git a/charts/v3.1.0/csi-driver-nfs-v3.1.0.tgz b/charts/v3.1.0/csi-driver-nfs-v3.1.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..7eede18a29ca25e763954d969bd26e689b903292 GIT binary patch literal 3597 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 T2Fm{j009607^w*509XJ3*Z~&q literal 0 HcmV?d00001 diff --git a/charts/v3.1.0/csi-driver-nfs/.helmignore b/charts/v3.1.0/csi-driver-nfs/.helmignore new file mode 100644 index 00000000..50af0317 --- /dev/null +++ b/charts/v3.1.0/csi-driver-nfs/.helmignore @@ -0,0 +1,22 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/v3.1.0/csi-driver-nfs/Chart.yaml b/charts/v3.1.0/csi-driver-nfs/Chart.yaml new file mode 100644 index 00000000..ea133b25 --- /dev/null +++ b/charts/v3.1.0/csi-driver-nfs/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: v3.1.0 +description: CSI NFS Driver for Kubernetes +name: csi-driver-nfs +version: v3.1.0 diff --git a/charts/v3.1.0/csi-driver-nfs/templates/NOTES.txt b/charts/v3.1.0/csi-driver-nfs/templates/NOTES.txt new file mode 100644 index 00000000..19e9a2ea --- /dev/null +++ b/charts/v3.1.0/csi-driver-nfs/templates/NOTES.txt @@ -0,0 +1,5 @@ + The CSI NFS Driver is getting deployed to your cluster. + +To check CSI NFS Driver pods status, please run: + + kubectl --namespace={{ .Release.Namespace }} get pods --selector="release={{ .Release.Name }}" --watch \ No newline at end of file diff --git a/charts/v3.1.0/csi-driver-nfs/templates/_helpers.tpl b/charts/v3.1.0/csi-driver-nfs/templates/_helpers.tpl new file mode 100644 index 00000000..62c53482 --- /dev/null +++ b/charts/v3.1.0/csi-driver-nfs/templates/_helpers.tpl @@ -0,0 +1,16 @@ +{{/* vim: set filetype=mustache: */}} + +{{/* Expand the name of the chart.*/}} +{{- define "nfs.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* labels for helm resources */}} +{{- define "nfs.labels" -}} +labels: + app.kubernetes.io/instance: "{{ .Release.Name }}" + app.kubernetes.io/managed-by: "{{ .Release.Service }}" + app.kubernetes.io/name: "{{ template "nfs.name" . }}" + app.kubernetes.io/version: "{{ .Chart.AppVersion }}" + helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" +{{- end -}} \ No newline at end of file diff --git a/charts/v3.1.0/csi-driver-nfs/templates/csi-nfs-controller.yaml b/charts/v3.1.0/csi-driver-nfs/templates/csi-nfs-controller.yaml new file mode 100644 index 00000000..c2b9991b --- /dev/null +++ b/charts/v3.1.0/csi-driver-nfs/templates/csi-nfs-controller.yaml @@ -0,0 +1,109 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: {{ .Values.controller.name }} + namespace: {{ .Release.Namespace }} +{{ include "nfs.labels" . | indent 2 }} +spec: + replicas: {{ .Values.controller.replicas }} + selector: + matchLabels: + app: {{ .Values.controller.name }} + template: + metadata: +{{ include "nfs.labels" . | indent 6 }} + app: {{ .Values.controller.name }} + spec: + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + hostNetwork: true # controller also needs to mount nfs to create dir + dnsPolicy: ClusterFirstWithHostNet + serviceAccountName: {{ .Values.serviceAccount.controller }} + nodeSelector: + kubernetes.io/os: linux + {{- if .Values.controller.runOnMaster}} + kubernetes.io/role: master + {{- end}} + priorityClassName: system-cluster-critical +{{- with .Values.controller.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} +{{- end }} + containers: + - name: csi-provisioner + image: "{{ .Values.image.csiProvisioner.repository }}:{{ .Values.image.csiProvisioner.tag }}" + args: + - "-v=2" + - "--csi-address=$(ADDRESS)" + - "--leader-election" + env: + - name: ADDRESS + value: /csi/csi.sock + imagePullPolicy: {{ .Values.image.csiProvisioner.pullPolicy }} + volumeMounts: + - mountPath: /csi + name: socket-dir + resources: {{- toYaml .Values.controller.resources.csiProvisioner | nindent 12 }} + - name: liveness-probe + image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --health-port={{ .Values.controller.livenessProbe.healthPort }} + - --v=2 + imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }} + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: {{- toYaml .Values.controller.resources.livenessProbe | nindent 12 }} + - name: nfs + image: "{{ .Values.image.nfs.repository }}:{{ .Values.image.nfs.tag }}" + securityContext: + privileged: true + capabilities: + add: ["SYS_ADMIN"] + allowPrivilegeEscalation: true + imagePullPolicy: {{ .Values.image.nfs.pullPolicy }} + args: + - "--v={{ .Values.controller.logLevel }}" + - "--nodeid=$(NODE_ID)" + - "--endpoint=$(CSI_ENDPOINT)" + - "--drivername={{ .Values.driver.name }}" + - "--mount-permissions={{ .Values.driver.mountPermissions }}" + - "--working-mount-dir={{ .Values.controller.workingMountDir }}" + env: + - name: NODE_ID + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + ports: + - containerPort: {{ .Values.controller.livenessProbe.healthPort }} + name: healthz + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + volumeMounts: + - name: pods-mount-dir + mountPath: /var/lib/kubelet/pods + mountPropagation: "Bidirectional" + - mountPath: /csi + name: socket-dir + resources: {{- toYaml .Values.controller.resources.nfs | nindent 12 }} + volumes: + - name: pods-mount-dir + hostPath: + path: /var/lib/kubelet/pods + type: Directory + - name: socket-dir + emptyDir: {} diff --git a/charts/v3.1.0/csi-driver-nfs/templates/csi-nfs-driverinfo.yaml b/charts/v3.1.0/csi-driver-nfs/templates/csi-nfs-driverinfo.yaml new file mode 100644 index 00000000..231607a6 --- /dev/null +++ b/charts/v3.1.0/csi-driver-nfs/templates/csi-nfs-driverinfo.yaml @@ -0,0 +1,14 @@ +apiVersion: storage.k8s.io/v1 +kind: CSIDriver +metadata: + name: {{ .Values.driver.name }} +spec: + attachRequired: false + volumeLifecycleModes: + - Persistent + {{- if .Values.feature.enableInlineVolume}} + - Ephemeral + {{- end}} + {{- if .Values.feature.enableFSGroupPolicy}} + fsGroupPolicy: File + {{- end}} diff --git a/charts/v3.1.0/csi-driver-nfs/templates/csi-nfs-node.yaml b/charts/v3.1.0/csi-driver-nfs/templates/csi-nfs-node.yaml new file mode 100644 index 00000000..03135e53 --- /dev/null +++ b/charts/v3.1.0/csi-driver-nfs/templates/csi-nfs-node.yaml @@ -0,0 +1,127 @@ +# This YAML file contains driver-registrar & csi driver nodeplugin API objects +# that are necessary to run CSI nodeplugin for nfs +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: {{ .Values.node.name }} + namespace: {{ .Release.Namespace }} +{{ include "nfs.labels" . | indent 2 }} +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: {{ .Values.node.maxUnavailable }} + type: RollingUpdate + selector: + matchLabels: + app: {{ .Values.node.name }} + template: + metadata: +{{ include "nfs.labels" . | indent 6 }} + app: {{ .Values.node.name }} + spec: + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + hostNetwork: true # original nfs connection would be broken without hostNetwork setting + dnsPolicy: ClusterFirstWithHostNet + nodeSelector: + kubernetes.io/os: linux +{{- with .Values.node.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} +{{- end }} + containers: + - name: liveness-probe + image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --health-port={{ .Values.node.livenessProbe.healthPort }} + - --v=2 + imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }} + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: {{- toYaml .Values.node.resources.livenessProbe | nindent 12 }} + - name: node-driver-registrar + image: "{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" + livenessProbe: + exec: + command: + - /csi-node-driver-registrar + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --mode=kubelet-registration-probe + initialDelaySeconds: 30 + timeoutSeconds: 15 + args: + - --v=2 + - --csi-address=/csi/csi.sock + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + env: + - name: DRIVER_REG_SOCK_PATH + value: /var/lib/kubelet/plugins/csi-nfsplugin/csi.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + imagePullPolicy: {{ .Values.image.nodeDriverRegistrar.pullPolicy }} + volumeMounts: + - name: socket-dir + mountPath: /csi + - name: registration-dir + mountPath: /registration + resources: {{- toYaml .Values.node.resources.nodeDriverRegistrar | nindent 12 }} + - name: nfs + securityContext: + privileged: true + capabilities: + add: ["SYS_ADMIN"] + allowPrivilegeEscalation: true + image: "{{ .Values.image.nfs.repository }}:{{ .Values.image.nfs.tag }}" + args : + - "--v={{ .Values.node.logLevel }}" + - "--nodeid=$(NODE_ID)" + - "--endpoint=$(CSI_ENDPOINT)" + - "--drivername={{ .Values.driver.name }}" + - "--mount-permissions={{ .Values.driver.mountPermissions }}" + env: + - name: NODE_ID + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + ports: + - containerPort: {{ .Values.node.livenessProbe.healthPort }} + name: healthz + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + imagePullPolicy: {{ .Values.image.nfs.pullPolicy }} + volumeMounts: + - name: socket-dir + mountPath: /csi + - name: pods-mount-dir + mountPath: /var/lib/kubelet/pods + mountPropagation: "Bidirectional" + resources: {{- toYaml .Values.node.resources.nfs | nindent 12 }} + volumes: + - name: socket-dir + hostPath: + path: /var/lib/kubelet/plugins/csi-nfsplugin + type: DirectoryOrCreate + - name: pods-mount-dir + hostPath: + path: /var/lib/kubelet/pods + type: Directory + - hostPath: + path: /var/lib/kubelet/plugins_registry + type: Directory + name: registration-dir diff --git a/charts/v3.1.0/csi-driver-nfs/templates/rbac-csi-nfs-controller.yaml b/charts/v3.1.0/csi-driver-nfs/templates/rbac-csi-nfs-controller.yaml new file mode 100644 index 00000000..73e4ae07 --- /dev/null +++ b/charts/v3.1.0/csi-driver-nfs/templates/rbac-csi-nfs-controller.yaml @@ -0,0 +1,57 @@ +{{- if .Values.serviceAccount.create -}} +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: csi-{{ .Values.rbac.name }}-controller-sa + namespace: {{ .Release.Namespace }} +{{ include "nfs.labels" . | indent 2 }} +--- +{{- end -}} + +{{- if .Values.rbac.create -}} +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-external-provisioner-role +{{ include "nfs.labels" . | indent 2 }} +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch", "update"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["get", "list", "watch", "create", "update", "patch"] + - apiGroups: ["storage.k8s.io"] + resources: ["csinodes"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list", "watch"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "list", "watch", "create", "update", "patch"] + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-csi-provisioner-binding +{{ include "nfs.labels" . | indent 2 }} +subjects: + - kind: ServiceAccount + name: csi-{{ .Values.rbac.name }}-controller-sa + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: {{ .Values.rbac.name }}-external-provisioner-role + apiGroup: rbac.authorization.k8s.io +{{- end -}} diff --git a/charts/v3.1.0/csi-driver-nfs/values.yaml b/charts/v3.1.0/csi-driver-nfs/values.yaml new file mode 100644 index 00000000..8dca8181 --- /dev/null +++ b/charts/v3.1.0/csi-driver-nfs/values.yaml @@ -0,0 +1,102 @@ +image: + nfs: + repository: mcr.microsoft.com/k8s/csi/nfs-csi + tag: v3.1.0 + pullPolicy: IfNotPresent + csiProvisioner: + repository: k8s.gcr.io/sig-storage/csi-provisioner + tag: v2.2.2 + pullPolicy: IfNotPresent + livenessProbe: + repository: k8s.gcr.io/sig-storage/livenessprobe + tag: v2.5.0 + pullPolicy: IfNotPresent + nodeDriverRegistrar: + repository: k8s.gcr.io/sig-storage/csi-node-driver-registrar + tag: v2.4.0 + pullPolicy: IfNotPresent + +serviceAccount: + create: true # When true, service accounts will be created for you. Set to false if you want to use your own. + controller: csi-nfs-controller-sa # Name of Service Account to be created or used + +rbac: + create: true + name: nfs + +driver: + name: nfs.csi.k8s.io + mountPermissions: 0777 + +feature: + enableFSGroupPolicy: false + enableInlineVolume: false + +controller: + name: csi-nfs-controller + replicas: 2 + runOnMaster: false + livenessProbe: + healthPort: 29652 + logLevel: 5 + workingMountDir: "/tmp" + tolerations: + - key: "node-role.kubernetes.io/master" + operator: "Exists" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/controlplane" + operator: "Exists" + effect: "NoSchedule" + resources: + csiProvisioner: + limits: + memory: 400Mi + requests: + cpu: 10m + memory: 20Mi + livenessProbe: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + nfs: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 20Mi + +node: + name: csi-nfs-node + maxUnavailable: 1 + logLevel: 5 + livenessProbe: + healthPort: 29653 + tolerations: + - operator: "Exists" + resources: + livenessProbe: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + nodeDriverRegistrar: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + nfs: + limits: + memory: 300Mi + requests: + cpu: 10m + memory: 20Mi + +## Reference to one or more secrets to be used when pulling images +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ +## +imagePullSecrets: [] +# - name: "image-pull-secret" diff --git a/deploy/csi-nfs-controller.yaml b/deploy/csi-nfs-controller.yaml index b934d13a..3caa891e 100644 --- a/deploy/csi-nfs-controller.yaml +++ b/deploy/csi-nfs-controller.yaml @@ -63,7 +63,7 @@ spec: cpu: 10m memory: 20Mi - name: nfs - image: mcr.microsoft.com/k8s/csi/nfs-csi:latest + image: mcr.microsoft.com/k8s/csi/nfs-csi:v3.1.0 securityContext: privileged: true capabilities: diff --git a/deploy/csi-nfs-node.yaml b/deploy/csi-nfs-node.yaml index 4a413a43..c0a60719 100644 --- a/deploy/csi-nfs-node.yaml +++ b/deploy/csi-nfs-node.yaml @@ -80,7 +80,7 @@ spec: capabilities: add: ["SYS_ADMIN"] allowPrivilegeEscalation: true - image: mcr.microsoft.com/k8s/csi/nfs-csi:latest + image: mcr.microsoft.com/k8s/csi/nfs-csi:v3.1.0 args: - "-v=5" - "--nodeid=$(NODE_ID)" diff --git a/deploy/v3.1.0/csi-nfs-controller.yaml b/deploy/v3.1.0/csi-nfs-controller.yaml new file mode 100644 index 00000000..3caa891e --- /dev/null +++ b/deploy/v3.1.0/csi-nfs-controller.yaml @@ -0,0 +1,114 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: csi-nfs-controller + namespace: kube-system +spec: + replicas: 2 + selector: + matchLabels: + app: csi-nfs-controller + template: + metadata: + labels: + app: csi-nfs-controller + spec: + hostNetwork: true # controller also needs to mount nfs to create dir + dnsPolicy: ClusterFirstWithHostNet + serviceAccountName: csi-nfs-controller-sa + nodeSelector: + kubernetes.io/os: linux # add "kubernetes.io/role: master" to run controller on master node + priorityClassName: system-cluster-critical + tolerations: + - key: "node-role.kubernetes.io/master" + operator: "Exists" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/controlplane" + operator: "Exists" + effect: "NoSchedule" + containers: + - name: csi-provisioner + image: k8s.gcr.io/sig-storage/csi-provisioner:v2.2.2 + args: + - "-v=2" + - "--csi-address=$(ADDRESS)" + - "--leader-election" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - mountPath: /csi + name: socket-dir + resources: + limits: + memory: 400Mi + requests: + cpu: 10m + memory: 20Mi + - name: liveness-probe + image: k8s.gcr.io/sig-storage/livenessprobe:v2.5.0 + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --health-port=29652 + - --v=2 + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: nfs + image: mcr.microsoft.com/k8s/csi/nfs-csi:v3.1.0 + securityContext: + privileged: true + capabilities: + add: ["SYS_ADMIN"] + allowPrivilegeEscalation: true + imagePullPolicy: IfNotPresent + args: + - "-v=5" + - "--nodeid=$(NODE_ID)" + - "--endpoint=$(CSI_ENDPOINT)" + env: + - name: NODE_ID + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + ports: + - containerPort: 29652 + name: healthz + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + volumeMounts: + - name: pods-mount-dir + mountPath: /var/lib/kubelet/pods + mountPropagation: "Bidirectional" + - mountPath: /csi + name: socket-dir + resources: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 20Mi + volumes: + - name: pods-mount-dir + hostPath: + path: /var/lib/kubelet/pods + type: Directory + - name: socket-dir + emptyDir: {} diff --git a/deploy/v3.1.0/csi-nfs-driverinfo.yaml b/deploy/v3.1.0/csi-nfs-driverinfo.yaml new file mode 100644 index 00000000..3ac1e317 --- /dev/null +++ b/deploy/v3.1.0/csi-nfs-driverinfo.yaml @@ -0,0 +1,10 @@ +--- +apiVersion: storage.k8s.io/v1 +kind: CSIDriver +metadata: + name: nfs.csi.k8s.io +spec: + attachRequired: false + volumeLifecycleModes: + - Persistent + - Ephemeral diff --git a/deploy/v3.1.0/csi-nfs-node.yaml b/deploy/v3.1.0/csi-nfs-node.yaml new file mode 100644 index 00000000..c0a60719 --- /dev/null +++ b/deploy/v3.1.0/csi-nfs-node.yaml @@ -0,0 +1,132 @@ +--- +# This YAML file contains driver-registrar & csi driver nodeplugin API objects +# that are necessary to run CSI nodeplugin for nfs +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: csi-nfs-node + namespace: kube-system +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + selector: + matchLabels: + app: csi-nfs-node + template: + metadata: + labels: + app: csi-nfs-node + spec: + hostNetwork: true # original nfs connection would be broken without hostNetwork setting + dnsPolicy: ClusterFirstWithHostNet + nodeSelector: + kubernetes.io/os: linux + tolerations: + - operator: "Exists" + containers: + - name: liveness-probe + image: k8s.gcr.io/sig-storage/livenessprobe:v2.5.0 + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --health-port=29653 + - --v=2 + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: node-driver-registrar + image: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.4.0 + args: + - --v=2 + - --csi-address=/csi/csi.sock + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + livenessProbe: + exec: + command: + - /csi-node-driver-registrar + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --mode=kubelet-registration-probe + initialDelaySeconds: 30 + timeoutSeconds: 15 + env: + - name: DRIVER_REG_SOCK_PATH + value: /var/lib/kubelet/plugins/csi-nfsplugin/csi.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + volumeMounts: + - name: socket-dir + mountPath: /csi + - name: registration-dir + mountPath: /registration + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: nfs + securityContext: + privileged: true + capabilities: + add: ["SYS_ADMIN"] + allowPrivilegeEscalation: true + image: mcr.microsoft.com/k8s/csi/nfs-csi:v3.1.0 + args: + - "-v=5" + - "--nodeid=$(NODE_ID)" + - "--endpoint=$(CSI_ENDPOINT)" + env: + - name: NODE_ID + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + ports: + - containerPort: 29653 + name: healthz + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + imagePullPolicy: "IfNotPresent" + volumeMounts: + - name: socket-dir + mountPath: /csi + - name: pods-mount-dir + mountPath: /var/lib/kubelet/pods + mountPropagation: "Bidirectional" + resources: + limits: + memory: 300Mi + requests: + cpu: 10m + memory: 20Mi + volumes: + - name: socket-dir + hostPath: + path: /var/lib/kubelet/plugins/csi-nfsplugin + type: DirectoryOrCreate + - name: pods-mount-dir + hostPath: + path: /var/lib/kubelet/pods + type: Directory + - hostPath: + path: /var/lib/kubelet/plugins_registry + type: Directory + name: registration-dir diff --git a/deploy/v3.1.0/rbac-csi-nfs-controller.yaml b/deploy/v3.1.0/rbac-csi-nfs-controller.yaml new file mode 100644 index 00000000..2ac4a680 --- /dev/null +++ b/deploy/v3.1.0/rbac-csi-nfs-controller.yaml @@ -0,0 +1,52 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: csi-nfs-controller-sa + namespace: kube-system + +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: nfs-external-provisioner-role +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch", "update"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["get", "list", "watch", "create", "update", "patch"] + - apiGroups: ["storage.k8s.io"] + resources: ["csinodes"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list", "watch"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "list", "watch", "create", "update", "patch"] + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: nfs-csi-provisioner-binding +subjects: + - kind: ServiceAccount + name: csi-nfs-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: nfs-external-provisioner-role + apiGroup: rbac.authorization.k8s.io diff --git a/docs/install-csi-driver-v3.1.0.md b/docs/install-csi-driver-v3.1.0.md new file mode 100644 index 00000000..75e40e95 --- /dev/null +++ b/docs/install-csi-driver-v3.1.0.md @@ -0,0 +1,37 @@ +# Install NFS CSI driver v3.1.0 version on a kubernetes cluster + +If you have already installed Helm, you can also use it to install NFS CSI driver. Please see [Installation with Helm](../charts/README.md). + +## Install with kubectl + - remote install +```console +curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/v3.1.0/deploy/install-driver.sh | bash -s v3.1.0 -- +``` + + - local install +```console +git clone https://github.com/kubernetes-csi/csi-driver-nfs.git +cd csi-driver-nfs +./deploy/install-driver.sh v3.1.0 local +``` + +- check pods status: +```console +kubectl -n kube-system get pod -o wide -l app=csi-nfs-controller +kubectl -n kube-system get pod -o wide -l app=csi-nfs-node +``` + +example output: + +```console +NAME READY STATUS RESTARTS AGE IP NODE +csi-nfs-controller-56bfddd689-dh5tk 4/4 Running 0 35s 10.240.0.19 k8s-agentpool-22533604-0 +csi-nfs-controller-56bfddd689-8pgr4 4/4 Running 0 35s 10.240.0.35 k8s-agentpool-22533604-1 +csi-nfs-node-cvgbs 3/3 Running 0 35s 10.240.0.35 k8s-agentpool-22533604-1 +csi-nfs-node-dr4s4 3/3 Running 0 35s 10.240.0.4 k8s-agentpool-22533604-0 +``` + +- clean up NFS CSI driver +```console +curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/v3.1.0/deploy/uninstall-driver.sh | bash -s v3.1.0 -- +``` \ No newline at end of file diff --git a/docs/install-nfs-csi-driver.md b/docs/install-nfs-csi-driver.md index 6853ec9e..5e0c6e15 100644 --- a/docs/install-nfs-csi-driver.md +++ b/docs/install-nfs-csi-driver.md @@ -1,4 +1,5 @@ ## Install NFS CSI driver on a Kubernetes cluster - [install CSI driver master version](./install-csi-driver-master.md) + - [install CSI driver v3.1.0 version](./install-csi-driver-v3.1.0.md) - [install CSI driver v3.0.0 version](./install-csi-driver-v3.0.0.md)