From 57b25969024b856740034bbed047684471d1d02f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Huss?= Date: Sat, 12 Aug 2023 14:14:34 +0200 Subject: [PATCH] fix --- apps/dolibarr/backups.tf | 38 ++++++++++++++ apps/gitea/backups.tf | 38 ++++++++++++++ apps/nextcloud/backups.tf | 38 ++++++++++++++ share/wildduck/index.yaml | 106 +++++++++++++++++++------------------- share/wildduck/webmail.tf | 2 +- 5 files changed, 168 insertions(+), 54 deletions(-) create mode 100644 apps/dolibarr/backups.tf create mode 100644 apps/gitea/backups.tf create mode 100644 apps/nextcloud/backups.tf diff --git a/apps/dolibarr/backups.tf b/apps/dolibarr/backups.tf new file mode 100644 index 0000000..da67938 --- /dev/null +++ b/apps/dolibarr/backups.tf @@ -0,0 +1,38 @@ +resource "kubectl_manifest" "backup_schedule" { + count = var.backups.enable ? 1 : 0 + yaml_body = <<-EOF + apiVersion: k8up.io/v1 + kind: Schedule + metadata: + name: "${var.instance}-backup" + namespace: "${var.namespace}" + labels: ${jsonencode(local.common-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.instance}-${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 +} diff --git a/apps/gitea/backups.tf b/apps/gitea/backups.tf new file mode 100644 index 0000000..da67938 --- /dev/null +++ b/apps/gitea/backups.tf @@ -0,0 +1,38 @@ +resource "kubectl_manifest" "backup_schedule" { + count = var.backups.enable ? 1 : 0 + yaml_body = <<-EOF + apiVersion: k8up.io/v1 + kind: Schedule + metadata: + name: "${var.instance}-backup" + namespace: "${var.namespace}" + labels: ${jsonencode(local.common-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.instance}-${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 +} diff --git a/apps/nextcloud/backups.tf b/apps/nextcloud/backups.tf new file mode 100644 index 0000000..da67938 --- /dev/null +++ b/apps/nextcloud/backups.tf @@ -0,0 +1,38 @@ +resource "kubectl_manifest" "backup_schedule" { + count = var.backups.enable ? 1 : 0 + yaml_body = <<-EOF + apiVersion: k8up.io/v1 + kind: Schedule + metadata: + name: "${var.instance}-backup" + namespace: "${var.namespace}" + labels: ${jsonencode(local.common-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.instance}-${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 +} diff --git a/share/wildduck/index.yaml b/share/wildduck/index.yaml index 2db86fa..653bb20 100644 --- a/share/wildduck/index.yaml +++ b/share/wildduck/index.yaml @@ -6,6 +6,56 @@ metadata: name: wildduck description: null options: + domain-name: + default: your_company.com + examples: + - your_company.com + type: string + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + backups: + default: + enable: false + endpoint: '' + key-id-key: s3-id + secret-key: s3-secret + secret-name: backup-settings + examples: + - enable: false + endpoint: '' + key-id-key: s3-id + secret-key: s3-secret + secret-name: backup-settings + properties: + enable: + default: false + type: boolean + endpoint: + default: '' + type: string + key-id-key: + default: s3-id + type: string + secret-key: + default: s3-secret + type: string + secret-name: + default: backup-settings + type: string + type: object + domain: + default: your-company + examples: + - your-company + type: string + sub-domain: + default: mail + examples: + - mail + type: string redis: default: exporter: @@ -202,66 +252,16 @@ options: type: string type: object type: object - backups: - default: - enable: false - endpoint: '' - key-id-key: s3-id - secret-key: s3-secret - secret-name: backup-settings + ingress-class: + default: traefik examples: - - enable: false - endpoint: '' - key-id-key: s3-id - secret-key: s3-secret - secret-name: backup-settings - properties: - enable: - default: false - type: boolean - endpoint: - default: '' - type: string - key-id-key: - default: s3-id - type: string - secret-key: - default: s3-secret - type: string - secret-name: - default: backup-settings - type: string - type: object - sub-domain: - default: mail - examples: - - mail + - traefik type: string additional-domains: default: [] items: type: string type: array - domain-name: - default: your_company.com - examples: - - your_company.com - type: string - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string - ingress-class: - default: traefik - examples: - - traefik - type: string - domain: - default: your-company - examples: - - your-company - type: string dependencies: - dist: null category: dbo diff --git a/share/wildduck/webmail.tf b/share/wildduck/webmail.tf index 9b1cae0..17b0298 100644 --- a/share/wildduck/webmail.tf +++ b/share/wildduck/webmail.tf @@ -99,7 +99,7 @@ resource "kubectl_manifest" "webmail_config" { logoutRedirect = "http:/127.0.0.1:3000/logout" # URL to redirect when user clicks on "log out" [api] - url="http://wildduck.vynil-mail.svc.cluster.local:80" + url="http://${var.instance}-wildduck-api.${var.namespace}.svc.cluster.local:80" accessToken="wildduck1234" [dbs]