From 6ec72409b46330de5a6ad9ea4de87c7c1e72207b Mon Sep 17 00:00:00 2001 From: Laszlo Fogas Date: Sat, 27 Apr 2019 22:47:39 +0200 Subject: [PATCH] Yamls for the 'example-nfs' storage class --- nfs-provisioner-rbac.yml | 61 +++++++++++++++++++++++++++ nfs-provisioner.yml | 90 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 151 insertions(+) create mode 100644 nfs-provisioner-rbac.yml create mode 100644 nfs-provisioner.yml diff --git a/nfs-provisioner-rbac.yml b/nfs-provisioner-rbac.yml new file mode 100644 index 000000000..0d96ad1a9 --- /dev/null +++ b/nfs-provisioner-rbac.yml @@ -0,0 +1,61 @@ +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: nfs-provisioner-runner +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: ["create", "update", "patch"] + - apiGroups: [""] + resources: ["services", "endpoints"] + verbs: ["get"] + - apiGroups: ["extensions"] + resources: ["podsecuritypolicies"] + resourceNames: ["nfs-provisioner"] + verbs: ["use"] +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: run-nfs-provisioner +subjects: + - kind: ServiceAccount + name: nfs-provisioner + # replace with namespace where provisioner is deployed + namespace: default +roleRef: + kind: ClusterRole + name: nfs-provisioner-runner + apiGroup: rbac.authorization.k8s.io +--- +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: leader-locking-nfs-provisioner +rules: + - apiGroups: [""] + resources: ["endpoints"] + verbs: ["get", "list", "watch", "create", "update", "patch"] +--- +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: leader-locking-nfs-provisioner +subjects: + - kind: ServiceAccount + name: nfs-provisioner + # replace with namespace where provisioner is deployed + namespace: default +roleRef: + kind: Role + name: leader-locking-nfs-provisioner + apiGroup: rbac.authorization.k8s.io diff --git a/nfs-provisioner.yml b/nfs-provisioner.yml new file mode 100644 index 000000000..9c15bceb3 --- /dev/null +++ b/nfs-provisioner.yml @@ -0,0 +1,90 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: nfs-provisioner +--- +kind: Service +apiVersion: v1 +metadata: + name: nfs-provisioner + labels: + app: nfs-provisioner +spec: + ports: + - name: nfs + port: 2049 + - name: mountd + port: 20048 + - name: rpcbind + port: 111 + - name: rpcbind-udp + port: 111 + protocol: UDP + selector: + app: nfs-provisioner +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: nfs-provisioner +spec: + selector: + matchLabels: + app: nfs-provisioner + replicas: 1 + strategy: + type: Recreate + template: + metadata: + labels: + app: nfs-provisioner + spec: + serviceAccount: nfs-provisioner + containers: + - name: nfs-provisioner + image: quay.io/kubernetes_incubator/nfs-provisioner:latest + ports: + - name: nfs + containerPort: 2049 + - name: mountd + containerPort: 20048 + - name: rpcbind + containerPort: 111 + - name: rpcbind-udp + containerPort: 111 + protocol: UDP + securityContext: + capabilities: + add: + - DAC_READ_SEARCH + - SYS_RESOURCE + args: + - "-provisioner=example.com/nfs" + env: + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: SERVICE_NAME + value: nfs-provisioner + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + imagePullPolicy: "IfNotPresent" + volumeMounts: + - name: export-volume + mountPath: /export + volumes: + - name: export-volume + emptyDir: {} + # hostPath: + # path: /tmp/nfs-provisioner +--- +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: example-nfs +provisioner: example.com/nfs +mountOptions: + - vers=4.1