39 lines
1.3 KiB
HCL
39 lines
1.3 KiB
HCL
resource "kubectl_manifest" "backup_schedule" {
|
|
count = var.backups.enable ? 1 : 0
|
|
yaml_body = <<-EOF
|
|
apiVersion: k8up.io/v1
|
|
kind: Schedule
|
|
metadata:
|
|
name: "${var.instance}-backup"
|
|
namespace: "${var.namespace}"
|
|
labels: ${jsonencode(local.common_labels)}
|
|
spec:
|
|
backend:
|
|
repoPasswordSecretRef:
|
|
key: "${var.backups.restic_key}"
|
|
name: "${var.backups.secret_name}"
|
|
s3:
|
|
accessKeyIDSecretRef:
|
|
key: "${var.backups.key_id_key}"
|
|
name: "${var.backups.secret_name}"
|
|
bucket: "${var.instance}-${var.namespace}"
|
|
endpoint: "${var.backups.endpoint}/dataset"
|
|
secretAccessKeySecretRef:
|
|
key: "${var.backups.secret_key}"
|
|
name: "${var.backups.secret_name}"
|
|
backup:
|
|
schedule: "${var.backups.schedule.backup}"
|
|
failedJobsHistoryLimit: 2
|
|
successfulJobsHistoryLimit: 2
|
|
check:
|
|
schedule: "${var.backups.schedule.check}"
|
|
prune:
|
|
retention:
|
|
keepDaily: ${var.backups.retention.keepDaily}
|
|
keepMonthly: ${var.backups.retention.keepMonthly}
|
|
keepWeekly: ${var.backups.retention.keepWeekly}
|
|
keepYearly: ${var.backups.retention.keepYearly}
|
|
schedule: "${var.backups.schedule.prune}"
|
|
EOF
|
|
}
|