42 lines
1.3 KiB
HCL
42 lines
1.3 KiB
HCL
locals {
|
|
app_slug = "${var.instance}${var.component == "" ? "" : "-"}${var.component}"
|
|
}
|
|
|
|
resource "kubectl_manifest" "backup_schedule" {
|
|
yaml_body = <<-EOF
|
|
apiVersion: k8up.io/v1
|
|
kind: Schedule
|
|
metadata:
|
|
name: "${local.app_slug}-backup"
|
|
namespace: "${var.namespace}"
|
|
labels: ${jsonencode(var.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: "${local.app_slug}-${var.namespace}"
|
|
endpoint: "${var.backups.endpoint}/restic"
|
|
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.keep_daily}
|
|
keepMonthly: ${var.backups.retention.keep_monthly}
|
|
keepWeekly: ${var.backups.retention.keep_weekly}
|
|
keepYearly: ${var.backups.retention.keep_yearly}
|
|
schedule: "${var.backups.schedule.prune}"
|
|
EOF
|
|
}
|