43 lines
1.4 KiB
HCL
43 lines
1.4 KiB
HCL
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
|
|
}
|