Files
pi-swarm/manifests/monitoring/nfs-provisioner.yaml

115 lines
2.9 KiB
YAML

# NFS dynamic provisioning from the Synology (192.168.1.157).
# Base dir /volume1/plancknetboot/k8s-volumes; each PVC gets a subdir.
apiVersion: v1
kind: ServiceAccount
metadata:
name: nfs-provisioner
namespace: monitoring
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: nfs-provisioner
rules:
- apiGroups: [""]
resources: [persistentvolumes]
verbs: [get, list, watch, create, delete]
- apiGroups: [""]
resources: [persistentvolumeclaims]
verbs: [get, list, watch, update]
- apiGroups: ["storage.k8s.io"]
resources: [storageclasses, volumeattributesclasses]
verbs: [get, list, watch]
- apiGroups: [""]
resources: [events]
verbs: [create, update, patch]
- apiGroups: ["storage.k8s.io"]
resources: [csidrivers]
verbs: [get, list]
- apiGroups: [""]
resources: [nodes]
verbs: [get, list, watch]
- apiGroups: ["storage.k8s.io"]
resources: [volumeattachments]
verbs: [get, list, watch, delete]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: nfs-provisioner
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: nfs-provisioner
subjects:
- kind: ServiceAccount
name: nfs-provisioner
namespace: monitoring
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: nfs-provisioner
namespace: monitoring
rules:
- apiGroups: [""]
resources: [endpoints]
verbs: [get, list, watch, create, update, patch]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: nfs-provisioner
namespace: monitoring
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: nfs-provisioner
subjects:
- kind: ServiceAccount
name: nfs-provisioner
namespace: monitoring
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nfs-provisioner
namespace: monitoring
spec:
replicas: 1
selector:
matchLabels: {app: nfs-provisioner}
template:
metadata:
labels: {app: nfs-provisioner}
spec:
serviceAccountName: nfs-provisioner
containers:
- name: nfs-provisioner
image: registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2
volumeMounts:
- {name: nfs, mountPath: /persistentvolumes}
env:
- {name: PROVISIONER_NAME, value: nfs-synology}
- {name: NFS_SERVER, value: "192.168.1.157"}
- {name: NFS_PATH, value: /volume1/plancknetboot/k8s-volumes}
- {name: ENABLE_LEADER_ELECTION, value: "false"}
resources:
requests: {cpu: 20m, memory: 32Mi}
limits: {memory: 128Mi}
volumes:
- name: nfs
nfs:
server: "192.168.1.157"
path: /volume1/plancknetboot/k8s-volumes
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nfs-synology
provisioner: nfs-synology
reclaimPolicy: Delete
volumeBindingMode: Immediate
parameters:
archiveOnDelete: "true"