--- # Longhorn Recurring Job for PostgreSQL Backup apiVersion: longhorn.io/v1beta2 kind: RecurringJob metadata: name: postgresql-backup-daily namespace: longhorn-system spec: # Incremental backup (snapshot-based) task: backup cron: "0 2 * * *" # Daily at 2 AM UTC retain: 14 # Keep 14 daily backups (2 weeks) concurrency: 2 # Max 2 concurrent backup operations # Target PostgreSQL volumes using group-based selection groups: - postgresql-backup # Labels for the recurring job itself labels: recurring-job: "postgresql-backup-daily" backup-type: "daily" --- # Weekly backup for longer retention apiVersion: longhorn.io/v1beta2 kind: RecurringJob metadata: name: postgresql-backup-weekly namespace: longhorn-system spec: task: backup cron: "0 1 * * 0" # Weekly at 1 AM on Sunday retain: 8 # Keep 8 weekly backups (2 months) concurrency: 1 groups: - postgresql-backup labels: recurring-job: "postgresql-backup-weekly" backup-type: "weekly" --- # Snapshot cleanup job for space management apiVersion: longhorn.io/v1beta2 kind: RecurringJob metadata: name: postgresql-snapshot-cleanup namespace: longhorn-system spec: task: snapshot-cleanup cron: "0 3 * * *" # Daily at 3 AM UTC (after backup) retain: 5 # Keep only 5 snapshots locally concurrency: 2 groups: - postgresql-backup labels: recurring-job: "postgresql-snapshot-cleanup" backup-type: "cleanup"