diff --git a/terraform/k8sapps/config.tf b/terraform/k8sapps/config.tf index bfe25c0..4c868c1 100644 --- a/terraform/k8sapps/config.tf +++ b/terraform/k8sapps/config.tf @@ -89,6 +89,7 @@ locals { } ] ]) + mail_files_backup_cron_schedule = "0 3 * * *" # storage persistent_folder = "/mnt/microk8s_persistent" diff --git a/terraform/k8sapps/mail.tf b/terraform/k8sapps/mail.tf index d53b801..5d1c1f5 100644 --- a/terraform/k8sapps/mail.tf +++ b/terraform/k8sapps/mail.tf @@ -1,7 +1,8 @@ locals { - mail_home = "${local.persistent_folder}/mail" - mailboxes_path = "${local.mail_home}/mailboxes" - getmail_path = "${local.mail_home}/getmail" + mail_path = "${local.persistent_folder}/mail" + mailboxes_path = "${local.mail_path}/mailboxes" + getmail_path = "${local.mail_path}/getmail" + mail_backup_path = "${local.persistent_folder}/backup.mail" } resource "kubernetes_namespace" "mail" { @@ -101,6 +102,26 @@ resource "kubernetes_manifest" "mail_certificate" { } } +module "mail_backup" { + + source = "./modules/scw_backup_job" + + namespace = kubernetes_namespace.mail.metadata[0].name + app_name = "mail" + + scaleway_organization_id = var.scaleway_organization_id + scaleway_project_id = var.scaleway_organization_id + access_key = scaleway_iam_api_key.backup_app_api.access_key + secret_key = scaleway_iam_api_key.backup_app_api.secret_key + bucket_name = scaleway_object_bucket.backup.name + + retention_days = local.local_backup_retention_days + cron_schedule = local.mail_files_backup_cron_schedule + + source_folder = local.mail_path + target_folder = local.mail_backup_path +} + resource "kubernetes_cron_job_v1" "fetch_emails" { metadata { namespace = kubernetes_namespace.mail.metadata[0].name @@ -188,6 +209,9 @@ resource "kubernetes_deployment" "mail" { app = "mail" } } + strategy { + type = "Recreate" + } template { metadata { labels = { diff --git a/terraform/k8sapps/rustdesk.tf b/terraform/k8sapps/rustdesk.tf index 01b0c30..57aeb55 100644 --- a/terraform/k8sapps/rustdesk.tf +++ b/terraform/k8sapps/rustdesk.tf @@ -50,6 +50,10 @@ resource "kubernetes_deployment" "rustdesk_deploy" { } } + strategy { + type = "Recreate" + } + template { metadata { labels = {