60 lines
1.4 KiB
YAML
60 lines
1.4 KiB
YAML
|
|
---
|
||
|
|
# 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"
|