locals { app_slug = (var.component == var.instance || var.component=="") ? var.instance : format("%s-%s", var.component, var.instance) } resource "kubectl_manifest" "backup_schedule" { count = var.backups.enable ? 1 : 0 yaml_body = <<-EOF apiVersion: k8up.io/v1 kind: Schedule metadata: name: "${var.app_slug}-backup" namespace: "${var.namespace}" labels: ${jsonencode(local.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.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.keepDaily} keepMonthly: ${var.backups.retention.keepMonthly} keepWeekly: ${var.backups.retention.keepWeekly} keepYearly: ${var.backups.retention.keepYearly} schedule: "${var.backups.schedule.prune}" EOF }