apiVersion: batch/v1 kind: CronJob metadata: name: backup-pbs namespace: git-limbosolutions-com spec: schedule: "0 1 * * *" jobTemplate: spec: backoffLimit: 1 template: spec: restartPolicy: Never initContainers: - name: postgres-export image: postgres:latest command: ["sh", "-c"] args: - | #echo "INFO: Starting export" . /root/.gitea-inline-config/database export PGPASSWORD=$PASSWD #echo "INFO: Exporting database" pg_dump -h gitea-postgresql.git-limbosolutions-com.svc.cluster.local -U $USER -d $NAME > /data/postgresql-export/db_backup.sql if [ $? -ne 0 ]; then echo "ERROR: Exporting database failed" exit 1 fi #echo "INFO: Exporting database finished" volumeMounts: - name: backup-run-data mountPath: /data/postgresql-export subPath: postgresql-export - name: gitea-inline-config mountPath: /root/.gitea-inline-config readOnly: true containers: - name: gitea-pbs-client image: git.limbosolutions.com/kb/pbsclient imagePullPolicy: Always env: - name: MODE value: shell - name: PBS_REPOSITORY valueFrom: secretKeyRef: name: gitea-backup-secret key: pbs_repository - name: PBS_PASSWORD valueFrom: secretKeyRef: name: gitea-backup-secret key: pbs_password - name: PBS_FINGERPRINT valueFrom: secretKeyRef: name: gitea-backup-secret key: pbs_fingerprint command: ["bash", "-c"] args: - | set -e # while true; do # sleep 1s # done SCRIPT_START_TIME=$(date +%s) proxmox-backup-client backup gitea-data.pxar:/data/gitea-data postgresql-data.pxar:/data/postgresql-data postgresql-export.pxar:/data/postgresql-export --include-dev /data/postgresql-data --include-dev /data/postgresql-export --include-dev /data/gitea-data --backup-id "gitea-full" -ns git.limbosolutions.com SCRIPT_DURATION=$(($(date +%s) - SCRIPT_START_TIME)) echo "INFO: Finished Backup of git.limbosolutions.com ($((SCRIPT_DURATION / 60 / 60)):$((SCRIPT_DURATION / 60)):$((SCRIPT_DURATION % 60))) " volumeMounts: - name: gitea-shared-storage mountPath: /data/gitea-data - name: db-postgresql-data mountPath: /data/postgresql-data - name: backup-run-data mountPath: /data/postgresql-export subPath: postgresql-export - name: backup-run-data mountPath: /tmp subPath: tmp volumes: - name: gitea-shared-storage persistentVolumeClaim: claimName: gitea-shared-storage - name: db-postgresql-data persistentVolumeClaim: claimName: data-gitea-postgresql-0 - name: backup-run-data emptyDir: {} - name: gitea-inline-config secret: secretName: gitea-inline-config