From bd4507b2a2f83bb04c28079d9484d87e6a88b2a2 Mon Sep 17 00:00:00 2001 From: Felix Wolf Date: Sat, 4 Apr 2026 18:42:34 +0200 Subject: [PATCH] fix(nextcloud): Enable persistence to survive pod restarts Nextcloud requires a persistent /var/www/html to retain installation state (config.php, version.php, installed apps) across restarts. Without it, every restart triggers the setup wizard. Uses local-path 2Gi PVC with Recreate strategy since the volume is RWO. Co-Authored-By: Claude Opus 4.6 (1M context) --- prototypes/nextcloud/helm/nextcloud.yaml | 11 +++++----- .../nextcloud/deployment-nextcloud.yaml | 10 ++++----- ...istentvolumeclaim-nextcloud-nextcloud.yaml | 21 +++++++++++++++++++ 3 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 rendered/envs/production/nextcloud/persistentvolumeclaim-nextcloud-nextcloud.yaml diff --git a/prototypes/nextcloud/helm/nextcloud.yaml b/prototypes/nextcloud/helm/nextcloud.yaml index 3e3872f..d0383a1 100644 --- a/prototypes/nextcloud/helm/nextcloud.yaml +++ b/prototypes/nextcloud/helm/nextcloud.yaml @@ -124,10 +124,7 @@ nextcloud: name: nextcloud-caddy-config strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 + type: Recreate internalDatabase: enabled: false @@ -165,7 +162,11 @@ cronjob: enabled: true persistence: - enabled: false + enabled: true + size: 2Gi + storageClassName: local-path + annotations: + helm.sh/resource-policy: keep ingress: enabled: true diff --git a/rendered/envs/production/nextcloud/deployment-nextcloud.yaml b/rendered/envs/production/nextcloud/deployment-nextcloud.yaml index 0b1adb0..8674f02 100644 --- a/rendered/envs/production/nextcloud/deployment-nextcloud.yaml +++ b/rendered/envs/production/nextcloud/deployment-nextcloud.yaml @@ -20,10 +20,7 @@ spec: app.kubernetes.io/instance: nextcloud app.kubernetes.io/name: nextcloud strategy: - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - type: RollingUpdate + type: Recreate template: metadata: annotations: @@ -412,8 +409,9 @@ spec: securityContext: fsGroup: 33 volumes: - - emptyDir: {} - name: nextcloud-main + - name: nextcloud-main + persistentVolumeClaim: + claimName: nextcloud-nextcloud - configMap: name: nextcloud-config name: nextcloud-config diff --git a/rendered/envs/production/nextcloud/persistentvolumeclaim-nextcloud-nextcloud.yaml b/rendered/envs/production/nextcloud/persistentvolumeclaim-nextcloud-nextcloud.yaml new file mode 100644 index 0000000..2518abc --- /dev/null +++ b/rendered/envs/production/nextcloud/persistentvolumeclaim-nextcloud-nextcloud.yaml @@ -0,0 +1,21 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + annotations: + a8r.io/repository: ssh://git@git.tr1ceracop.de:222/gitea_admin/k8s-and-chill.git + helm.sh/resource-policy: keep + labels: + app.kubernetes.io/component: app + app.kubernetes.io/instance: nextcloud + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: nextcloud + app.kubernetes.io/version: 33.0.0 + helm.sh/chart: nextcloud-9.0.4 + name: nextcloud-nextcloud + namespace: nextcloud +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi