From c0082f0c7c3aa7d9ab8abb5f40ee723df4a0a9bd Mon Sep 17 00:00:00 2001 From: j Date: Sat, 23 Aug 2025 03:12:27 +0000 Subject: [PATCH] x --- applications/stuff/nextcloud.yaml | 60 +++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/applications/stuff/nextcloud.yaml b/applications/stuff/nextcloud.yaml index 103cd4e..1d73ae3 100644 --- a/applications/stuff/nextcloud.yaml +++ b/applications/stuff/nextcloud.yaml @@ -146,3 +146,63 @@ spec: name: nextcloud port: number: 80 + + + + --- +# This is a Kubernetes CronJob that executes the Nextcloud background tasks. +# It is designed to run the 'cron.php' script every 5 minutes. +apiVersion: batch/v1 +kind: CronJob +metadata: + name: nextcloud-cron + namespace: home-server +spec: + # The schedule for the cron job, in standard cron format. + # This will run the job every 5 minutes. + schedule: "*/5 * * * *" + successfulJobsHistoryLimit: 3 + failedJobsHistoryLimit: 1 + jobTemplate: + spec: + template: + spec: + # This security context ensures the job runs with the correct user and group + # for the Nextcloud container, which is often www-data (UID 33). + securityContext: + runAsUser: 33 + runAsGroup: 33 + containers: + - name: nextcloud-cron + # Use the same Nextcloud image as the main deployment to ensure consistency. + image: nextcloud:30 + imagePullPolicy: IfNotPresent + # The command to execute. 'php -f /var/www/html/cron.php' is the official + # Nextcloud command for running background tasks. + command: ["php", "-f", "/var/www/html/cron.php"] + env: + # The environment variables are passed to the cron job container so it + # can connect to the same database as the main Nextcloud pod. + - 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.database + volumeMounts: + # Mount the persistent volume claim to access the Nextcloud installation + # and data directories. + - name: nextcloud-data + mountPath: /var/www/html + volumes: + - name: nextcloud-data + persistentVolumeClaim: + claimName: nextcloud-pvc + # Set the restart policy to 'OnFailure' to allow the job to complete and + # not remain in a running state. + restartPolicy: OnFailure