diff --git a/testing1/first-cluster/cluster/nfs-provisioner/deployment.yaml b/testing1/first-cluster/cluster/nfs-provisioner/deployment.yaml new file mode 100644 index 0000000..368b448 --- /dev/null +++ b/testing1/first-cluster/cluster/nfs-provisioner/deployment.yaml @@ -0,0 +1,38 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nfs-client-provisioner + namespace: nfs-provisioner + labels: + app: nfs-client-provisioner +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app: nfs-client-provisioner + template: + metadata: + labels: + app: nfs-client-provisioner + spec: + serviceAccountName: nfs-client-provisioner + containers: + - name: nfs-client-provisioner + image: registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2 + volumeMounts: + - name: nfs-client-root + mountPath: /persistentvolumes + env: + - name: PROVISIONER_NAME + value: k8s-sigs.io/nfs-subdir-external-provisioner + - name: NFS_SERVER + value: 10.0.0.57 + - name: NFS_PATH + value: /mnt/NAS/vmstorage + volumes: + - name: nfs-client-root + nfs: + server: 10.0.0.57 + path: /mnt/NAS/vmstorage diff --git a/testing1/first-cluster/cluster/nfs-provisioner/kustomization.yaml b/testing1/first-cluster/cluster/nfs-provisioner/kustomization.yaml new file mode 100644 index 0000000..6c57eeb --- /dev/null +++ b/testing1/first-cluster/cluster/nfs-provisioner/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - namespace.yaml + - rbac.yaml + - storageclass.yaml + - deployment.yaml diff --git a/testing1/first-cluster/cluster/nfs-provisioner/namespace.yaml b/testing1/first-cluster/cluster/nfs-provisioner/namespace.yaml new file mode 100644 index 0000000..e173a9b --- /dev/null +++ b/testing1/first-cluster/cluster/nfs-provisioner/namespace.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: nfs-provisioner + labels: + pod-security.kubernetes.io/enforce: privileged + pod-security.kubernetes.io/audit: privileged + pod-security.kubernetes.io/warn: privileged diff --git a/testing1/first-cluster/cluster/nfs-provisioner/rbac.yaml b/testing1/first-cluster/cluster/nfs-provisioner/rbac.yaml new file mode 100644 index 0000000..345bd08 --- /dev/null +++ b/testing1/first-cluster/cluster/nfs-provisioner/rbac.yaml @@ -0,0 +1,63 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: nfs-client-provisioner + namespace: nfs-provisioner +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: nfs-client-provisioner-runner +rules: + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list", "watch"] + - 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"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: run-nfs-client-provisioner +subjects: + - kind: ServiceAccount + name: nfs-client-provisioner + namespace: nfs-provisioner +roleRef: + kind: ClusterRole + name: nfs-client-provisioner-runner + apiGroup: rbac.authorization.k8s.io +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: leader-locking-nfs-client-provisioner + namespace: nfs-provisioner +rules: + - apiGroups: [""] + resources: ["endpoints"] + verbs: ["get", "list", "watch", "create", "update", "patch"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: leader-locking-nfs-client-provisioner + namespace: nfs-provisioner +subjects: + - kind: ServiceAccount + name: nfs-client-provisioner + namespace: nfs-provisioner +roleRef: + kind: Role + name: leader-locking-nfs-client-provisioner + apiGroup: rbac.authorization.k8s.io diff --git a/testing1/first-cluster/cluster/nfs-provisioner/storageclass.yaml b/testing1/first-cluster/cluster/nfs-provisioner/storageclass.yaml new file mode 100644 index 0000000..098e59d --- /dev/null +++ b/testing1/first-cluster/cluster/nfs-provisioner/storageclass.yaml @@ -0,0 +1,11 @@ +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: nfs-client + annotations: + storageclass.kubernetes.io/is-default-class: "true" +provisioner: k8s-sigs.io/nfs-subdir-external-provisioner +parameters: + archiveOnDelete: "true" +reclaimPolicy: Delete +volumeBindingMode: Immediate