Files
kydah-modules/backup/backup.tf

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
}