From 06f16dfa0e1d47899ca085a210e4301f63834810 Mon Sep 17 00:00:00 2001 From: j Date: Tue, 1 Jul 2025 10:49:48 +1000 Subject: [PATCH] Nextcloud --- deployments/files/nextcloud.yaml | 132 +++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 deployments/files/nextcloud.yaml diff --git a/deployments/files/nextcloud.yaml b/deployments/files/nextcloud.yaml new file mode 100644 index 0000000..ac9c27f --- /dev/null +++ b/deployments/files/nextcloud.yaml @@ -0,0 +1,132 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: nextcloud +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: nextcloud-pv +spec: + capacity: + storage: 10Gi + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + hostPath: + path: /dpool/temp/Nextcloud +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: nextcloud-pvc + namespace: nextcloud +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + volumeName: nextcloud-pv +--- +apiVersion: v1 +kind: Service +metadata: + name: nextcloud + namespace: nextcloud +spec: + ports: + - port: 80 + selector: + app: nextcloud +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nextcloud + namespace: nextcloud +spec: + selector: + matchLabels: + app: nextcloud + template: + metadata: + labels: + app: nextcloud + spec: + containers: + - name: nextcloud + image: nextcloud:29 + env: + - name: MYSQL_PASSWORD + valueFrom: + secretKeyRef: + name: nextcloud-secrets + key: MYSQL_PASSWORD + - name: MYSQL_DATABASE + value: nextcloud + - name: MYSQL_USER + value: nextcloud + - name: MYSQL_HOST + value: mariadb + ports: + - containerPort: 80 + volumeMounts: + - name: nextcloud-data + mountPath: /var/www/html + securityContext: + runAsUser: 1000 + runAsGroup: 1000 + fsGroup: 1000 + volumes: + - name: nextcloud-data + persistentVolumeClaim: + claimName: nextcloud-data +--- +apiVersion: mariadb.mmontes.io/v1alpha1 +kind: MariaDB +metadata: + name: nextcloud-db + namespace: nextcloud +spec: + rootPasswordSecretKeyRef: + name: nextcloud-secrets + key: MYSQL_USER + username: nextcloud + passwordSecretKeyRef: + name: nextcloud-secrets + key: MYSQL_PASSWORD + database: nextcloud + storage: + size: 5Gi + image: mariadb:10.11 + volumeClaimTemplate: + storageClassName: default + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: nextcloud + namespace: nextcloud + annotations: + traefik.ingress.kubernetes.io/router.entrypoints: web +spec: + rules: + - host: nextcloud.local + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: nextcloud + port: + number: 80 +