Gitea + CI: git.carr.pub, NFS storage class, 3 runners

This commit is contained in:
Adam Carr
2026-09-20 14:33:39 -07:00
parent c284205db4
commit de0bb0ad7d
5 changed files with 277 additions and 0 deletions

View File

@@ -0,0 +1,114 @@
# 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"