diff --git a/meta/domain/index.yaml b/meta/domain/index.yaml index 8430fa7..8966cbb 100644 --- a/meta/domain/index.yaml +++ b/meta/domain/index.yaml @@ -6,25 +6,32 @@ metadata: name: domain description: null options: - issuer: - default: letsencrypt-prod - examples: - - letsencrypt-prod - type: string domain-name: default: your_company.com examples: - your_company.com type: string - auth: + apps: default: - enable: true + enable: false + nextcloud: + enable: true examples: - - enable: true + - enable: false + nextcloud: + enable: true properties: enable: - default: true + default: false type: boolean + nextcloud: + default: + enable: true + properties: + enable: + default: true + type: boolean + type: object type: object ci: default: @@ -48,6 +55,90 @@ options: type: boolean type: object type: object + infra: + default: + enable: false + traefik: + enable: false + examples: + - enable: false + traefik: + enable: false + properties: + enable: + default: false + type: boolean + traefik: + default: + enable: false + properties: + enable: + default: false + type: boolean + type: object + type: object + issuer: + default: letsencrypt-prod + examples: + - letsencrypt-prod + type: string + mail: + default: + enable: false + examples: + - enable: false + properties: + enable: + default: false + type: boolean + type: object + erp: + default: + dolibarr: + enable: true + enable: false + examples: + - dolibarr: + enable: true + enable: false + properties: + dolibarr: + default: + enable: true + properties: + enable: + default: true + type: boolean + type: object + enable: + default: false + type: boolean + type: object + auth: + default: + enable: true + examples: + - enable: true + properties: + enable: + default: true + type: boolean + type: object + distributions: + default: + core: core + domain: domain + examples: + - core: core + domain: domain + properties: + core: + default: core + type: string + domain: + default: domain + type: string + type: object backups: default: enable: false @@ -78,92 +169,11 @@ options: default: backup-settings type: string type: object - infra: - default: - enable: false - traefik: - enable: false - examples: - - enable: false - traefik: - enable: false - properties: - enable: - default: false - type: boolean - traefik: - default: - enable: false - properties: - enable: - default: false - type: boolean - type: object - type: object - erp: - default: - dolibarr: - enable: true - enable: false - examples: - - dolibarr: - enable: true - enable: false - properties: - dolibarr: - default: - enable: true - properties: - enable: - default: true - type: boolean - type: object - enable: - default: false - type: boolean - type: object ingress-class: default: traefik examples: - traefik type: string - apps: - default: - enable: false - nextcloud: - enable: true - examples: - - enable: false - nextcloud: - enable: true - properties: - enable: - default: false - type: boolean - nextcloud: - default: - enable: true - properties: - enable: - default: true - type: boolean - type: object - type: object - distributions: - default: - core: core - domain: domain - examples: - - core: core - domain: domain - properties: - core: - default: core - type: string - domain: - default: domain - type: string - type: object dependencies: [] providers: kubernetes: null diff --git a/meta/domain/installs.tf b/meta/domain/installs.tf index 933989d..9c53da8 100644 --- a/meta/domain/installs.tf +++ b/meta/domain/installs.tf @@ -19,6 +19,7 @@ locals { ci = { for k, v in var.ci : k => v if k!="enable" } erp = { for k, v in var.erp : k => v if k!="enable" } apps = { for k, v in var.apps : k => v if k!="enable" } + mail = { for k, v in var.apps : k => v if k!="enable" } # Force install authentik and it's modules when any are needed use-ldap = (var.ci.enable && var.ci.gitea.enable) || (var.erp.enable && var.erp.dolibarr.enable) @@ -115,3 +116,19 @@ resource "kubectl_manifest" "apps" { options: ${jsonencode(merge(local.global, local.apps))} EOF } +resource "kubectl_manifest" "apps" { + count = var.apps.enable ? 1 : 0 + yaml_body = <<-EOF + apiVersion: "vynil.solidite.fr/v1" + kind: "Install" + metadata: + name: "mail" + namespace: "${var.namespace}" + labels: ${jsonencode(local.common-labels)} + spec: + distrib: "${var.distributions.domain}" + category: "meta" + component: "domain-mail" + options: ${jsonencode(merge(local.global, local.mail))} + EOF +}