apiVersion: batch/v1 kind: CronJob metadata: name: immich-postgres-backup spec: schedule: "0 0 * * *" jobTemplate: spec: template: spec: initContainers: - name: dump image: postgres:14.12 imagePullPolicy: IfNotPresent volumeMounts: - name: data mountPath: /backup args: - pg_dump - "-Fc" - "-f" - "/backup/immich-postgres.pgdump" - "-Z" - "9" - "-v" - "-h" - "immich-postgresdb" - "-U" - "immich" - "-d" - "immich" env: - name: PGPASSWORD valueFrom: secretKeyRef: # Retrieve postgres password from a secret name: immich-postgresdb-creds key: POSTGRES_PASSWORD containers: - name: save image: amazon/aws-cli volumeMounts: - name: data mountPath: /backup args: - s3 - cp - "/backup/immich-postgres.pgdump" - "s3://media-object-storage/immich-postgres.pgdump" - "--endpoint" - "https://s3.gra.io.cloud.ovh.net" envFrom: - secretRef: # Must contain AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION name: media-object-storage-creds restartPolicy: Never volumes: - name: data emptyDir: {}