apiVersion: batch/v1 kind: CronJob metadata: name: backup namespace: cloud-limbosolutions-com spec: schedule: "0 2 * * *" jobTemplate: spec: backoffLimit: 1 template: spec: restartPolicy: Never initContainers: - name: mariadb-client resources: limits: memory: "512Mi" cpu: "500m" requests: memory: "256Mi" cpu: "250m" image: bitnami/mysql:latest command: ["bash", "-c"] args: - | #while true; do sleep 30; done mkdir -p /data/mariadb-export echo "TRACE: Exporting database" mysqldump --column-statistics=0 -u ${MYSQL_USER} -h ${MYSQL_PWD} ${MYSQL_DB} > /data/mariadb-export/backup.sql if [ $? -ne 0 ]; then echo "ERROR: Exporting database failed" exit 1 fi echo "TRACE: Exporting database finished" env: - name: MYSQL_USER valueFrom: secretKeyRef: name: nextcloud-db key: db-username - name: MYSQL_PWD valueFrom: secretKeyRef: name: nextcloud-db key: db-password - name: MYSQL_DB valueFrom: secretKeyRef: name: backup-secret key: DB_NAME - name: MYSQL_PWD valueFrom: secretKeyRef: name: backup-secret key: DB_HOST volumeMounts: - name: backup-var mountPath: /data/mariadb-export subPath: mariadb-export containers: - name: gitea-pbs-client image: git.limbosolutions.com/kb/pbsclient env: - name: MODE value: shell - name: PBS_REPOSITORY valueFrom: secretKeyRef: name: backup-secret key: PBS_REPOSITORY - name: PBS_PASSWORD valueFrom: secretKeyRef: name: backup-secret key: PBS_PASSWORD - name: PBS_FINGERPRINT valueFrom: secretKeyRef: name: backup-secret key: PBS_FINGERPRINT command: ["bash", "-c"] args: - | proxmox-backup-client backup nextcloud-html.pxar:/data/nextcloud-html nextcloud-data.pxar:/data/nextcloud-data mariadb-data.pxar:/data/mariadb-data mariadb-export.pxar:/data/mariadb-export --include-dev /data/nextcloud-html --include-dev /data/nextcloud-data --include-dev /data/mariadb-data --include-dev /data/mariadb-export --backup-id "nextcloud-full" -ns cloud.limbosolutions.com echo "INFO: cloud.limbosolutions.com finished" volumeMounts: - name: nextcloud-html mountPath: /data/nextcloud-html - name: nextcloud-data mountPath: /data/nextcloud-data - name: db-data mountPath: /data/mariadb-data - name: backup-var mountPath: /tmp subPath: tmp - name: backup-var mountPath: /data/mariadb-export subPath: mariadb-export volumes: - name: nextcloud-html persistentVolumeClaim: claimName: nextcloud-nextcloud - name: nextcloud-data persistentVolumeClaim: claimName: nextcloud-nextcloud-data - name: db-data persistentVolumeClaim: claimName: data-nextcloud-mariadb-0 - name: backup-var emptyDir: {}