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 }