Merge branch 'master' into Weilbyte/kustomize

This commit is contained in:
Weilbyte 2021-06-15 03:07:30 +02:00 committed by GitHub
commit fecf82503f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 115 additions and 80 deletions

View File

@ -3,7 +3,7 @@
**NFS subdir external provisioner** is an automatic provisioner that use your _existing and already configured_ NFS server to support dynamic provisioning of Kubernetes Persistent Volumes via Persistent Volume Claims. Persistent volumes are provisioned as `${namespace}-${pvcName}-${pvName}`. **NFS subdir external provisioner** is an automatic provisioner that use your _existing and already configured_ NFS server to support dynamic provisioning of Kubernetes Persistent Volumes via Persistent Volume Claims. Persistent volumes are provisioned as `${namespace}-${pvcName}-${pvName}`.
Note: This repository is migrated from https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client. As part of the migration: Note: This repository is migrated from https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client. As part of the migration:
- The container image name and repository has changed to `gcr.io/k8s-staging-sig-storage` and `nfs-subdir-external-provisioner` respectively. - The container image name and repository has changed to `k8s.gcr.io/sig-storage` and `nfs-subdir-external-provisioner` respectively.
- To maintain backward compatibility with earlier deployment files, the naming of NFS Client Provisioner is retained as `nfs-client-provisioner` in the deployment YAMLs. - To maintain backward compatibility with earlier deployment files, the naming of NFS Client Provisioner is retained as `nfs-client-provisioner` in the deployment YAMLs.
- One of the pending areas for development on this repository is to add automated e2e tests. If you would like to contribute, please raise an issue or reach us on the Kubernetes slack #sig-storage channel. - One of the pending areas for development on this repository is to add automated e2e tests. If you would like to contribute, please raise an issue or reach us on the Kubernetes slack #sig-storage channel.
@ -178,8 +178,7 @@ On OpenShift the service account used to bind volumes does not have the necessar
$ NAMESPACE=`oc project -q` $ NAMESPACE=`oc project -q`
$ sed -i'' "s/namespace:.*/namespace: $NAMESPACE/g" ./deploy/rbac.yaml $ sed -i'' "s/namespace:.*/namespace: $NAMESPACE/g" ./deploy/rbac.yaml
$ oc create -f deploy/rbac.yaml $ oc create -f deploy/rbac.yaml
$ oc create role use-scc-hostmount-anyuid --verb=use --resource=scc --resource-name=hostmount-anyuid -n $NAMESPACE $ oc adm policy add-scc-to-user hostmount-anyuid system:serviceaccount:$NAMESPACE:nfs-client-provisioner
$ oc adm policy add-role-to-user use-scc-hostmount-anyuid system:serviceaccount:$NAMESPACE:nfs-client-provisioner
``` ```
**Step 4: Configure the NFS subdir external provisioner** **Step 4: Configure the NFS subdir external provisioner**
@ -208,7 +207,7 @@ spec:
serviceAccountName: nfs-client-provisioner serviceAccountName: nfs-client-provisioner
containers: containers:
- name: nfs-client-provisioner - name: nfs-client-provisioner
image: gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.2 image: k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2
volumeMounts: volumeMounts:
- name: nfs-client-root - name: nfs-client-root
mountPath: /persistentvolumes mountPath: /persistentvolumes

View File

@ -3,7 +3,7 @@ appVersion: 4.0.2
description: nfs-subdir-external-provisioner is an automatic provisioner that used your *already configured* NFS server, automatically creating Persistent Volumes. description: nfs-subdir-external-provisioner is an automatic provisioner that used your *already configured* NFS server, automatically creating Persistent Volumes.
name: nfs-subdir-external-provisioner name: nfs-subdir-external-provisioner
home: https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner home: https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner
version: 4.0.7 version: 4.0.11
kubeVersion: ">=1.9.0-0" kubeVersion: ">=1.9.0-0"
sources: sources:
- https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner - https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner

View File

@ -49,31 +49,37 @@ The command removes all the Kubernetes components associated with the chart and
The following tables lists the configurable parameters of this chart and their default values. The following tables lists the configurable parameters of this chart and their default values.
| Parameter | Description | Default | | Parameter | Description | Default |
| ----------------------------------- | ----------------------------------------------------------- | ------------------------------------------------- | | ----------------------------------- | ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| `replicaCount` | Number of provisioner instances to deployed | `1` | | `replicaCount` | Number of provisioner instances to deployed | `1` |
| `strategyType` | Specifies the strategy used to replace old Pods by new ones | `Recreate` | | `strategyType` | Specifies the strategy used to replace old Pods by new ones | `Recreate` |
| `image.repository` | Provisioner image | `gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner` | | `image.repository` | Provisioner image | `k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner` |
| `image.tag` | Version of provisioner image | `v4.0.2` | | `image.tag` | Version of provisioner image | `v4.0.2` |
| `image.pullPolicy` | Image pull policy | `IfNotPresent` | | `image.pullPolicy` | Image pull policy | `IfNotPresent` |
| `imagePullSecrets` | Image pull secrets | `[]` |
| `storageClass.name` | Name of the storageClass | `nfs-client` | | `storageClass.name` | Name of the storageClass | `nfs-client` |
| `storageClass.defaultClass` | Set as the default StorageClass | `false` | | `storageClass.defaultClass` | Set as the default StorageClass | `false` |
| `storageClass.allowVolumeExpansion` | Allow expanding the volume | `true` | | `storageClass.allowVolumeExpansion` | Allow expanding the volume | `true` |
| `storageClass.reclaimPolicy` | Method used to reclaim an obsoleted volume | `Delete` | | `storageClass.reclaimPolicy` | Method used to reclaim an obsoleted volume | `Delete` |
| `storageClass.provisionerName` | Name of the provisionerName | null | | `storageClass.provisionerName` | Name of the provisionerName | null |
| `storageClass.archiveOnDelete` | Archive PVC when deleting | `true` | | `storageClass.archiveOnDelete` | Archive PVC when deleting | `true` |
| `storageClass.onDelete` | Strategy on PVC deletion. Overrides `archiveOnDelete` when set to lowercase values `delete` or `retain` | null | | `storageClass.onDelete` | Strategy on PVC deletion. Overrides archiveOnDelete when set to lowercase values 'delete' or 'retain' | null |
| `storageClass.pathPattern` | Specifies a template for the directory name | null | | `storageClass.pathPattern` | Specifies a template for the directory name | null |
| `storageClass.accessModes` | Set access mode for PV | `ReadWriteOnce` | | `storageClass.accessModes` | Set access mode for PV | `ReadWriteOnce` |
| `storageClass.annotations` | Set additional annotations for the StorageClass | `{}` |
| `leaderElection.enabled` | Enables or disables leader election | `true` | | `leaderElection.enabled` | Enables or disables leader election | `true` |
| `nfs.server` | Hostname of the NFS server (required) | null (ip or hostname) | | `nfs.server` | Hostname of the NFS server (required) | null (ip or hostname) |
| `nfs.path` | Basepath of the mount point to be used | `/nfs-storage` | | `nfs.path` | Basepath of the mount point to be used | `/nfs-storage` |
| `nfs.mountOptions` | Mount options (e.g. 'nfsvers=3') | null | | `nfs.mountOptions` | Mount options (e.g. 'nfsvers=3') | null |
| `nfs.volumeName` | Volume name used inside the pods | `nfs-subdir-external-provisioner-root` |
| `resources` | Resources required (e.g. CPU, memory) | `{}` | | `resources` | Resources required (e.g. CPU, memory) | `{}` |
| `rbac.create` | Use Role-based Access Control | `true` | | `rbac.create` | Use Role-based Access Control | `true` |
| `podSecurityPolicy.enabled` | Create & use Pod Security Policy resources | `false` | | `podSecurityPolicy.enabled` | Create & use Pod Security Policy resources | `false` |
| `podAnnotations` | Additional annotations for the Pods | `{}` |
| `priorityClassName` | Set pod priorityClassName | null | | `priorityClassName` | Set pod priorityClassName | null |
| `serviceAccount.create` | Should we create a ServiceAccount | `true` | | `serviceAccount.create` | Should we create a ServiceAccount | `true` |
| `serviceAccount.name` | Name of the ServiceAccount to use | null | | `serviceAccount.name` | Name of the ServiceAccount to use | null |
| `serviceAccount.annotations` | Additional annotations for the ServiceAccount | `{}` |
| `nodeSelector` | Node labels for pod assignment | `{}` | | `nodeSelector` | Node labels for pod assignment | `{}` |
| `affinity` | Affinity settings | `{}` | | `affinity` | Affinity settings | `{}` |
| `tolerations` | List of node taints to tolerate | `[]` | | `tolerations` | List of node taints to tolerate | `[]` |
| `labels` | Additional labels for any resource created | `{}` |

View File

@ -60,3 +60,23 @@ Return the appropriate apiVersion for podSecurityPolicy.
{{- print "extensions/v1beta1" -}} {{- print "extensions/v1beta1" -}}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
{{/*
Common labels
*/}}
{{- define "nfs-subdir-external-provisioner.labels" -}}
chart: {{ template "nfs-subdir-external-provisioner.chart" . }}
heritage: {{ .Release.Service }}
{{ include "nfs-subdir-external-provisioner.selectorLabels" . }}
{{- with .Values.labels }}
{{- toYaml . | nindent 0 }}
{{- end }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "nfs-subdir-external-provisioner.selectorLabels" -}}
app: {{ template "nfs-subdir-external-provisioner.name" . }}
release: {{ .Release.Name }}
{{- end }}

View File

@ -3,12 +3,12 @@ kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
metadata: metadata:
labels: labels:
app: {{ template "nfs-subdir-external-provisioner.name" . }} {{- include "nfs-subdir-external-provisioner.labels" . | nindent 4 }}
chart: {{ template "nfs-subdir-external-provisioner.chart" . }}
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
name: {{ template "nfs-subdir-external-provisioner.fullname" . }}-runner name: {{ template "nfs-subdir-external-provisioner.fullname" . }}-runner
rules: rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch"]
- apiGroups: [""] - apiGroups: [""]
resources: ["persistentvolumes"] resources: ["persistentvolumes"]
verbs: ["get", "list", "watch", "create", "delete"] verbs: ["get", "list", "watch", "create", "delete"]

View File

@ -3,10 +3,7 @@ kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
metadata: metadata:
labels: labels:
app: {{ template "nfs-subdir-external-provisioner.name" . }} {{- include "nfs-subdir-external-provisioner.labels" . | nindent 4 }}
chart: {{ template "nfs-subdir-external-provisioner.chart" . }}
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
name: run-{{ template "nfs-subdir-external-provisioner.fullname" . }} name: run-{{ template "nfs-subdir-external-provisioner.fullname" . }}
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount

View File

@ -3,27 +3,25 @@ kind: Deployment
metadata: metadata:
name: {{ template "nfs-subdir-external-provisioner.fullname" . }} name: {{ template "nfs-subdir-external-provisioner.fullname" . }}
labels: labels:
app: {{ template "nfs-subdir-external-provisioner.name" . }} {{- include "nfs-subdir-external-provisioner.labels" . | nindent 4 }}
chart: {{ template "nfs-subdir-external-provisioner.chart" . }}
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
spec: spec:
replicas: {{ .Values.replicaCount }} replicas: {{ .Values.replicaCount }}
strategy: strategy:
type: {{ .Values.strategyType }} type: {{ .Values.strategyType }}
selector: selector:
matchLabels: matchLabels:
app: {{ template "nfs-subdir-external-provisioner.name" . }} {{- include "nfs-subdir-external-provisioner.selectorLabels" . | nindent 6 }}
release: {{ .Release.Name }}
template: template:
metadata: metadata:
annotations: annotations:
{{- with .Values.podAnnotations }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- if and (.Values.tolerations) (semverCompare "<1.6-0" .Capabilities.KubeVersion.GitVersion) }} {{- if and (.Values.tolerations) (semverCompare "<1.6-0" .Capabilities.KubeVersion.GitVersion) }}
scheduler.alpha.kubernetes.io/tolerations: '{{ toJson .Values.tolerations }}' scheduler.alpha.kubernetes.io/tolerations: '{{ toJson .Values.tolerations }}'
{{- end }} {{- end }}
labels: labels:
app: {{ template "nfs-subdir-external-provisioner.name" . }} {{- include "nfs-subdir-external-provisioner.selectorLabels" . | nindent 8 }}
release: {{ .Release.Name }}
spec: spec:
serviceAccountName: {{ template "nfs-subdir-external-provisioner.serviceAccountName" . }} serviceAccountName: {{ template "nfs-subdir-external-provisioner.serviceAccountName" . }}
{{- if .Values.nodeSelector }} {{- if .Values.nodeSelector }}
@ -37,16 +35,16 @@ spec:
{{- if .Values.priorityClassName }} {{- if .Values.priorityClassName }}
priorityClassName: {{ .Values.priorityClassName | quote }} priorityClassName: {{ .Values.priorityClassName | quote }}
{{- end }} {{- end }}
{{- if .Values.imagePullSecrets }} {{- with .Values.imagePullSecrets }}
imagePullSecrets: imagePullSecrets:
{{ toYaml .Values.imagePullSecrets | indent 8 }} {{- toYaml . | nindent 8 }}
{{- end }} {{- end }}
containers: containers:
- name: {{ .Chart.Name }} - name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }} imagePullPolicy: {{ .Values.image.pullPolicy }}
volumeMounts: volumeMounts:
- name: nfs-subdir-external-provisioner-root - name: {{ .Values.nfs.volumeName }}
mountPath: /persistentvolumes mountPath: /persistentvolumes
env: env:
- name: PROVISIONER_NAME - name: PROVISIONER_NAME
@ -64,7 +62,7 @@ spec:
{{ toYaml . | indent 12 }} {{ toYaml . | indent 12 }}
{{- end }} {{- end }}
volumes: volumes:
- name: nfs-subdir-external-provisioner-root - name: {{ .Values.nfs.volumeName }}
{{- if .Values.buildMode }} {{- if .Values.buildMode }}
emptyDir: {} emptyDir: {}
{{- else if .Values.nfs.mountOptions }} {{- else if .Values.nfs.mountOptions }}

View File

@ -4,6 +4,7 @@ kind: PersistentVolume
metadata: metadata:
name: pv-{{ template "nfs-subdir-external-provisioner.fullname" . }} name: pv-{{ template "nfs-subdir-external-provisioner.fullname" . }}
labels: labels:
{{- include "nfs-subdir-external-provisioner.labels" . | nindent 4 }}
nfs-subdir-external-provisioner: {{ template "nfs-subdir-external-provisioner.fullname" . }} nfs-subdir-external-provisioner: {{ template "nfs-subdir-external-provisioner.fullname" . }}
spec: spec:
capacity: capacity:

View File

@ -3,6 +3,8 @@ kind: PersistentVolumeClaim
apiVersion: v1 apiVersion: v1
metadata: metadata:
name: pvc-{{ template "nfs-subdir-external-provisioner.fullname" . }} name: pvc-{{ template "nfs-subdir-external-provisioner.fullname" . }}
labels:
{{- include "nfs-subdir-external-provisioner.labels" . | nindent 4 }}
spec: spec:
accessModes: accessModes:
- {{ .Values.storageClass.accessModes }} - {{ .Values.storageClass.accessModes }}

View File

@ -4,10 +4,7 @@ kind: PodSecurityPolicy
metadata: metadata:
name: {{ template "nfs-subdir-external-provisioner.fullname" . }} name: {{ template "nfs-subdir-external-provisioner.fullname" . }}
labels: labels:
app: {{ template "nfs-subdir-external-provisioner.name" . }} {{- include "nfs-subdir-external-provisioner.labels" . | nindent 4 }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
spec: spec:
privileged: false privileged: false
allowPrivilegeEscalation: false allowPrivilegeEscalation: false

View File

@ -3,10 +3,7 @@ kind: Role
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
metadata: metadata:
labels: labels:
app: {{ template "nfs-subdir-external-provisioner.name" . }} {{- include "nfs-subdir-external-provisioner.labels" . | nindent 4 }}
chart: {{ template "nfs-subdir-external-provisioner.chart" . }}
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
name: leader-locking-{{ template "nfs-subdir-external-provisioner.fullname" . }} name: leader-locking-{{ template "nfs-subdir-external-provisioner.fullname" . }}
rules: rules:
- apiGroups: [""] - apiGroups: [""]

View File

@ -3,10 +3,7 @@ kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
metadata: metadata:
labels: labels:
app: {{ template "nfs-subdir-external-provisioner.name" . }} {{- include "nfs-subdir-external-provisioner.labels" . | nindent 4 }}
chart: {{ template "nfs-subdir-external-provisioner.chart" . }}
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
name: leader-locking-{{ template "nfs-subdir-external-provisioner.fullname" . }} name: leader-locking-{{ template "nfs-subdir-external-provisioner.fullname" . }}
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount

View File

@ -3,9 +3,10 @@ apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
labels: labels:
app: {{ template "nfs-subdir-external-provisioner.name" . }} {{- include "nfs-subdir-external-provisioner.labels" . | nindent 4 }}
chart: {{ template "nfs-subdir-external-provisioner.chart" . }} {{- with .Values.serviceAccount.annotations }}
heritage: {{ .Release.Service }} annotations:
release: {{ .Release.Name }} {{- toYaml . | nindent 4 }}
{{- end }}
name: {{ template "nfs-subdir-external-provisioner.serviceAccountName" . }} name: {{ template "nfs-subdir-external-provisioner.serviceAccountName" . }}
{{- end -}} {{- end -}}

View File

@ -3,15 +3,15 @@ apiVersion: storage.k8s.io/v1
kind: StorageClass kind: StorageClass
metadata: metadata:
labels: labels:
app: {{ template "nfs-subdir-external-provisioner.name" . }} {{- include "nfs-subdir-external-provisioner.labels" . | nindent 4 }}
chart: {{ template "nfs-subdir-external-provisioner.chart" . }}
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
name: {{ .Values.storageClass.name }} name: {{ .Values.storageClass.name }}
{{- if .Values.storageClass.defaultClass }}
annotations: annotations:
{{- if .Values.storageClass.defaultClass }}
storageclass.kubernetes.io/is-default-class: "true" storageclass.kubernetes.io/is-default-class: "true"
{{- end }} {{- end }}
{{- with .Values.storageClass.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
provisioner: {{ template "nfs-subdir-external-provisioner.provisionerName" . }} provisioner: {{ template "nfs-subdir-external-provisioner.provisionerName" . }}
allowVolumeExpansion: {{ .Values.storageClass.allowVolumeExpansion }} allowVolumeExpansion: {{ .Values.storageClass.allowVolumeExpansion }}
reclaimPolicy: {{ .Values.storageClass.reclaimPolicy }} reclaimPolicy: {{ .Values.storageClass.reclaimPolicy }}

View File

@ -2,14 +2,16 @@ replicaCount: 1
strategyType: Recreate strategyType: Recreate
image: image:
repository: gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner repository: k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner
tag: v4.0.2 tag: v4.0.2
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
imagePullSecrets: []
nfs: nfs:
server: server:
path: /nfs-storage path: /nfs-storage
mountOptions: mountOptions:
volumeName: nfs-subdir-external-provisioner-root
# For creating the StorageClass automatically: # For creating the StorageClass automatically:
storageClass: storageClass:
@ -47,6 +49,9 @@ storageClass:
# Set access mode - ReadWriteOnce, ReadOnlyMany or ReadWriteMany # Set access mode - ReadWriteOnce, ReadOnlyMany or ReadWriteMany
accessModes: ReadWriteOnce accessModes: ReadWriteOnce
# Storage class annotations
annotations: {}
leaderElection: leaderElection:
# When set to false leader election will be disabled # When set to false leader election will be disabled
enabled: true enabled: true
@ -61,6 +66,9 @@ rbac:
podSecurityPolicy: podSecurityPolicy:
enabled: false enabled: false
# Deployment pod annotations
podAnnotations: {}
## Set pod priorityClassName ## Set pod priorityClassName
# priorityClassName: "" # priorityClassName: ""
@ -68,6 +76,9 @@ serviceAccount:
# Specifies whether a ServiceAccount should be created # Specifies whether a ServiceAccount should be created
create: true create: true
# Annotations to add to the service account
annotations: {}
# The name of the ServiceAccount to use. # The name of the ServiceAccount to use.
# If not set and create is true, a name is generated using the fullname template # If not set and create is true, a name is generated using the fullname template
name: name:
@ -85,3 +96,6 @@ nodeSelector: {}
tolerations: [] tolerations: []
affinity: {} affinity: {}
# Additional labels for any resource created
labels: {}

View File

@ -21,7 +21,7 @@ spec:
serviceAccountName: nfs-client-provisioner serviceAccountName: nfs-client-provisioner
containers: containers:
- name: nfs-client-provisioner - name: nfs-client-provisioner
image: gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.2 image: k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2
volumeMounts: volumeMounts:
- name: nfs-client-root - name: nfs-client-root
mountPath: /persistentvolumes mountPath: /persistentvolumes

View File

@ -3,6 +3,9 @@ apiVersion: rbac.authorization.k8s.io/v1
metadata: metadata:
name: nfs-client-provisioner-runner name: nfs-client-provisioner-runner
rules: rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch"]
- apiGroups: [""] - apiGroups: [""]
resources: ["persistentvolumes"] resources: ["persistentvolumes"]
verbs: ["get", "list", "watch", "create", "delete"] verbs: ["get", "list", "watch", "create", "delete"]

View File

@ -14,7 +14,7 @@ spec:
serviceAccountName: nfs-client-provisioner serviceAccountName: nfs-client-provisioner
containers: containers:
- name: nfs-client-provisioner - name: nfs-client-provisioner
image: gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.2 image: k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2
volumeMounts: volumeMounts:
- name: nfs-client-root - name: nfs-client-root
mountPath: /persistentvolumes mountPath: /persistentvolumes

View File

@ -10,6 +10,9 @@ apiVersion: rbac.authorization.k8s.io/v1
metadata: metadata:
name: nfs-client-provisioner-runner name: nfs-client-provisioner-runner
rules: rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch"]
- apiGroups: [""] - apiGroups: [""]
resources: ["persistentvolumes"] resources: ["persistentvolumes"]
verbs: ["get", "list", "watch", "create", "delete"] verbs: ["get", "list", "watch", "create", "delete"]