Add mail backup module and cron schedule; refactor mail paths and deployment strategy

This commit is contained in:
2025-03-15 23:14:47 +01:00
parent 5fbd28e69c
commit 380bdf7e2a
3 changed files with 32 additions and 3 deletions
+1
View File
@@ -89,6 +89,7 @@ locals {
} }
] ]
]) ])
mail_files_backup_cron_schedule = "0 3 * * *"
# storage # storage
persistent_folder = "/mnt/microk8s_persistent" persistent_folder = "/mnt/microk8s_persistent"
+27 -3
View File
@@ -1,7 +1,8 @@
locals { locals {
mail_home = "${local.persistent_folder}/mail" mail_path = "${local.persistent_folder}/mail"
mailboxes_path = "${local.mail_home}/mailboxes" mailboxes_path = "${local.mail_path}/mailboxes"
getmail_path = "${local.mail_home}/getmail" getmail_path = "${local.mail_path}/getmail"
mail_backup_path = "${local.persistent_folder}/backup.mail"
} }
resource "kubernetes_namespace" "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" { resource "kubernetes_cron_job_v1" "fetch_emails" {
metadata { metadata {
namespace = kubernetes_namespace.mail.metadata[0].name namespace = kubernetes_namespace.mail.metadata[0].name
@@ -188,6 +209,9 @@ resource "kubernetes_deployment" "mail" {
app = "mail" app = "mail"
} }
} }
strategy {
type = "Recreate"
}
template { template {
metadata { metadata {
labels = { labels = {
+4
View File
@@ -50,6 +50,10 @@ resource "kubernetes_deployment" "rustdesk_deploy" {
} }
} }
strategy {
type = "Recreate"
}
template { template {
metadata { metadata {
labels = { labels = {