fix
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
locals {
|
locals {
|
||||||
annotations = {
|
annotations = {
|
||||||
"vynil.solidite.fr/meta" = "domain-auth"
|
"vynil.solidite.fr/meta" = var.component
|
||||||
"vynil.solidite.fr/name" = "${var.namespace}-auth"
|
"vynil.solidite.fr/name" = "${var.namespace}-auth"
|
||||||
"vynil.solidite.fr/domain" = var.domain-name
|
"vynil.solidite.fr/domain" = var.domain-name
|
||||||
"vynil.solidite.fr/issuer" = var.issuer
|
"vynil.solidite.fr/issuer" = var.issuer
|
||||||
@@ -11,6 +11,7 @@ locals {
|
|||||||
"domain-name" = var.domain-name
|
"domain-name" = var.domain-name
|
||||||
"issuer" = var.issuer
|
"issuer" = var.issuer
|
||||||
"ingress-class" = var.ingress-class
|
"ingress-class" = var.ingress-class
|
||||||
|
"backups" = var.backups
|
||||||
}
|
}
|
||||||
nextcloud = { for k, v in var.nextcloud : k => v if k!="enable" }
|
nextcloud = { for k, v in var.nextcloud : k => v if k!="enable" }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,10 +6,25 @@ metadata:
|
|||||||
name: domain-apps
|
name: domain-apps
|
||||||
description: null
|
description: null
|
||||||
options:
|
options:
|
||||||
ingress-class:
|
nextcloud:
|
||||||
default: traefik
|
default:
|
||||||
|
enable: false
|
||||||
examples:
|
examples:
|
||||||
- traefik
|
- enable: false
|
||||||
|
properties:
|
||||||
|
enable:
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
|
domain-name:
|
||||||
|
default: your_company.com
|
||||||
|
examples:
|
||||||
|
- your_company.com
|
||||||
|
type: string
|
||||||
|
domain:
|
||||||
|
default: your-company
|
||||||
|
examples:
|
||||||
|
- your-company
|
||||||
type: string
|
type: string
|
||||||
distributions:
|
distributions:
|
||||||
default:
|
default:
|
||||||
@@ -26,31 +41,46 @@ options:
|
|||||||
default: domain
|
default: domain
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
nextcloud:
|
ingress-class:
|
||||||
default:
|
default: traefik
|
||||||
enable: false
|
|
||||||
examples:
|
examples:
|
||||||
- enable: false
|
- traefik
|
||||||
properties:
|
type: string
|
||||||
enable:
|
|
||||||
default: false
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
issuer:
|
issuer:
|
||||||
default: letsencrypt-prod
|
default: letsencrypt-prod
|
||||||
examples:
|
examples:
|
||||||
- letsencrypt-prod
|
- letsencrypt-prod
|
||||||
type: string
|
type: string
|
||||||
domain-name:
|
backups:
|
||||||
default: your_company.com
|
default:
|
||||||
|
enable: false
|
||||||
|
endpoint: ''
|
||||||
|
key-id-key: s3-id
|
||||||
|
secret-key: s3-secret
|
||||||
|
secret-name: backup-settings
|
||||||
examples:
|
examples:
|
||||||
- your_company.com
|
- enable: false
|
||||||
type: string
|
endpoint: ''
|
||||||
domain:
|
key-id-key: s3-id
|
||||||
default: your-company
|
secret-key: s3-secret
|
||||||
examples:
|
secret-name: backup-settings
|
||||||
- your-company
|
properties:
|
||||||
type: string
|
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
|
||||||
dependencies: []
|
dependencies: []
|
||||||
providers:
|
providers:
|
||||||
kubernetes: true
|
kubernetes: true
|
||||||
@@ -59,3 +89,4 @@ providers:
|
|||||||
postgresql: null
|
postgresql: null
|
||||||
restapi: null
|
restapi: null
|
||||||
http: null
|
http: null
|
||||||
|
tfaddtype: null
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
locals {
|
locals {
|
||||||
annotations = {
|
annotations = {
|
||||||
"vynil.solidite.fr/meta" = "domain-auth"
|
"vynil.solidite.fr/meta" = var.component
|
||||||
"vynil.solidite.fr/name" = "${var.namespace}-auth"
|
"vynil.solidite.fr/name" = "${var.namespace}-auth"
|
||||||
"vynil.solidite.fr/domain" = var.domain-name
|
"vynil.solidite.fr/domain" = var.domain-name
|
||||||
"vynil.solidite.fr/issuer" = var.issuer
|
"vynil.solidite.fr/issuer" = var.issuer
|
||||||
@@ -11,6 +11,7 @@ locals {
|
|||||||
"domain-name" = var.domain-name
|
"domain-name" = var.domain-name
|
||||||
"issuer" = var.issuer
|
"issuer" = var.issuer
|
||||||
"ingress-class" = var.ingress-class
|
"ingress-class" = var.ingress-class
|
||||||
|
"backups" = var.backups
|
||||||
}
|
}
|
||||||
authentik = { for k, v in var.authentik : k => v if k!="enable" }
|
authentik = { for k, v in var.authentik : k => v if k!="enable" }
|
||||||
authentik-ldap = { for k, v in var.authentik-ldap : k => v if k!="enable" }
|
authentik-ldap = { for k, v in var.authentik-ldap : k => v if k!="enable" }
|
||||||
|
|||||||
@@ -6,26 +6,6 @@ metadata:
|
|||||||
name: domain-auth
|
name: domain-auth
|
||||||
description: null
|
description: null
|
||||||
options:
|
options:
|
||||||
issuer:
|
|
||||||
default: letsencrypt-prod
|
|
||||||
examples:
|
|
||||||
- letsencrypt-prod
|
|
||||||
type: string
|
|
||||||
distributions:
|
|
||||||
default:
|
|
||||||
core: core
|
|
||||||
domain: domain
|
|
||||||
examples:
|
|
||||||
- core: core
|
|
||||||
domain: domain
|
|
||||||
properties:
|
|
||||||
core:
|
|
||||||
default: core
|
|
||||||
type: string
|
|
||||||
domain:
|
|
||||||
default: domain
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
authentik:
|
authentik:
|
||||||
default:
|
default:
|
||||||
enable: true
|
enable: true
|
||||||
@@ -36,6 +16,16 @@ options:
|
|||||||
default: true
|
default: true
|
||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
|
domain:
|
||||||
|
default: your-company
|
||||||
|
examples:
|
||||||
|
- your-company
|
||||||
|
type: string
|
||||||
|
ingress-class:
|
||||||
|
default: traefik
|
||||||
|
examples:
|
||||||
|
- traefik
|
||||||
|
type: string
|
||||||
authentik-ldap:
|
authentik-ldap:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
@@ -51,6 +41,51 @@ options:
|
|||||||
examples:
|
examples:
|
||||||
- your_company.com
|
- your_company.com
|
||||||
type: string
|
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
|
||||||
|
distributions:
|
||||||
|
default:
|
||||||
|
core: core
|
||||||
|
domain: domain
|
||||||
|
examples:
|
||||||
|
- core: core
|
||||||
|
domain: domain
|
||||||
|
properties:
|
||||||
|
core:
|
||||||
|
default: core
|
||||||
|
type: string
|
||||||
|
domain:
|
||||||
|
default: domain
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
authentik-forward:
|
authentik-forward:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
@@ -61,15 +96,10 @@ options:
|
|||||||
default: false
|
default: false
|
||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
ingress-class:
|
issuer:
|
||||||
default: traefik
|
default: letsencrypt-prod
|
||||||
examples:
|
examples:
|
||||||
- traefik
|
- letsencrypt-prod
|
||||||
type: string
|
|
||||||
domain:
|
|
||||||
default: your-company
|
|
||||||
examples:
|
|
||||||
- your-company
|
|
||||||
type: string
|
type: string
|
||||||
dependencies: []
|
dependencies: []
|
||||||
providers:
|
providers:
|
||||||
@@ -79,3 +109,4 @@ providers:
|
|||||||
postgresql: null
|
postgresql: null
|
||||||
restapi: null
|
restapi: null
|
||||||
http: null
|
http: null
|
||||||
|
tfaddtype: null
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
locals {
|
locals {
|
||||||
annotations = {
|
annotations = {
|
||||||
"vynil.solidite.fr/meta" = "domain-ci"
|
"vynil.solidite.fr/meta" = var.component
|
||||||
"vynil.solidite.fr/name" = var.namespace
|
"vynil.solidite.fr/name" = var.namespace
|
||||||
"vynil.solidite.fr/domain" = var.domain-name
|
"vynil.solidite.fr/domain" = var.domain-name
|
||||||
"vynil.solidite.fr/issuer" = var.issuer
|
"vynil.solidite.fr/issuer" = var.issuer
|
||||||
@@ -11,6 +11,7 @@ locals {
|
|||||||
"domain-name" = var.domain-name
|
"domain-name" = var.domain-name
|
||||||
"issuer" = var.issuer
|
"issuer" = var.issuer
|
||||||
"ingress-class" = var.ingress-class
|
"ingress-class" = var.ingress-class
|
||||||
|
"backups" = var.backups
|
||||||
}
|
}
|
||||||
gitea = { for k, v in var.gitea : k => v if k!="enable" }
|
gitea = { for k, v in var.gitea : k => v if k!="enable" }
|
||||||
woodpecker = { for k, v in var.woodpecker : k => v if k!="enable" }
|
woodpecker = { for k, v in var.woodpecker : k => v if k!="enable" }
|
||||||
|
|||||||
@@ -6,6 +6,21 @@ metadata:
|
|||||||
name: domain-ci
|
name: domain-ci
|
||||||
description: null
|
description: null
|
||||||
options:
|
options:
|
||||||
|
gitea:
|
||||||
|
default:
|
||||||
|
enable: true
|
||||||
|
examples:
|
||||||
|
- enable: true
|
||||||
|
properties:
|
||||||
|
enable:
|
||||||
|
default: true
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
|
ingress-class:
|
||||||
|
default: traefik
|
||||||
|
examples:
|
||||||
|
- traefik
|
||||||
|
type: string
|
||||||
distributions:
|
distributions:
|
||||||
default:
|
default:
|
||||||
core: core
|
core: core
|
||||||
@@ -21,16 +36,6 @@ options:
|
|||||||
default: domain
|
default: domain
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
gitea:
|
|
||||||
default:
|
|
||||||
enable: true
|
|
||||||
examples:
|
|
||||||
- enable: true
|
|
||||||
properties:
|
|
||||||
enable:
|
|
||||||
default: true
|
|
||||||
type: boolean
|
|
||||||
type: object
|
|
||||||
woodpecker:
|
woodpecker:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
@@ -46,6 +51,36 @@ options:
|
|||||||
examples:
|
examples:
|
||||||
- your-company
|
- your-company
|
||||||
type: string
|
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-name:
|
domain-name:
|
||||||
default: your_company.com
|
default: your_company.com
|
||||||
examples:
|
examples:
|
||||||
@@ -56,11 +91,6 @@ options:
|
|||||||
examples:
|
examples:
|
||||||
- letsencrypt-prod
|
- letsencrypt-prod
|
||||||
type: string
|
type: string
|
||||||
ingress-class:
|
|
||||||
default: traefik
|
|
||||||
examples:
|
|
||||||
- traefik
|
|
||||||
type: string
|
|
||||||
dependencies: []
|
dependencies: []
|
||||||
providers:
|
providers:
|
||||||
kubernetes: true
|
kubernetes: true
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
locals {
|
locals {
|
||||||
annotations = {
|
annotations = {
|
||||||
"vynil.solidite.fr/meta" = "domain-ci"
|
"vynil.solidite.fr/meta" = var.component
|
||||||
"vynil.solidite.fr/name" = var.namespace
|
"vynil.solidite.fr/name" = var.namespace
|
||||||
"vynil.solidite.fr/domain" = var.domain-name
|
"vynil.solidite.fr/domain" = var.domain-name
|
||||||
"vynil.solidite.fr/issuer" = var.issuer
|
"vynil.solidite.fr/issuer" = var.issuer
|
||||||
@@ -11,6 +11,7 @@ locals {
|
|||||||
"domain-name" = var.domain-name
|
"domain-name" = var.domain-name
|
||||||
"issuer" = var.issuer
|
"issuer" = var.issuer
|
||||||
"ingress-class" = var.ingress-class
|
"ingress-class" = var.ingress-class
|
||||||
|
"backups" = var.backups
|
||||||
}
|
}
|
||||||
dolibarr = { for k, v in var.dolibarr : k => v if k!="enable" }
|
dolibarr = { for k, v in var.dolibarr : k => v if k!="enable" }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,16 +6,26 @@ metadata:
|
|||||||
name: domain-erp
|
name: domain-erp
|
||||||
description: null
|
description: null
|
||||||
options:
|
options:
|
||||||
ingress-class:
|
|
||||||
default: traefik
|
|
||||||
examples:
|
|
||||||
- traefik
|
|
||||||
type: string
|
|
||||||
domain:
|
domain:
|
||||||
default: your-company
|
default: your-company
|
||||||
examples:
|
examples:
|
||||||
- your-company
|
- your-company
|
||||||
type: string
|
type: string
|
||||||
|
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
|
||||||
distributions:
|
distributions:
|
||||||
default:
|
default:
|
||||||
core: core
|
core: core
|
||||||
@@ -31,6 +41,36 @@ options:
|
|||||||
default: domain
|
default: domain
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
|
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
|
||||||
dolibarr:
|
dolibarr:
|
||||||
default:
|
default:
|
||||||
enable: true
|
enable: true
|
||||||
@@ -41,16 +81,6 @@ options:
|
|||||||
default: true
|
default: true
|
||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
issuer:
|
|
||||||
default: letsencrypt-prod
|
|
||||||
examples:
|
|
||||||
- letsencrypt-prod
|
|
||||||
type: string
|
|
||||||
domain-name:
|
|
||||||
default: your_company.com
|
|
||||||
examples:
|
|
||||||
- your_company.com
|
|
||||||
type: string
|
|
||||||
dependencies: []
|
dependencies: []
|
||||||
providers:
|
providers:
|
||||||
kubernetes: true
|
kubernetes: true
|
||||||
@@ -59,3 +89,4 @@ providers:
|
|||||||
postgresql: null
|
postgresql: null
|
||||||
restapi: null
|
restapi: null
|
||||||
http: null
|
http: null
|
||||||
|
tfaddtype: null
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ locals {
|
|||||||
"domain-name" = var.domain-name
|
"domain-name" = var.domain-name
|
||||||
"issuer" = var.issuer
|
"issuer" = var.issuer
|
||||||
"ingress-class" = var.ingress-class
|
"ingress-class" = var.ingress-class
|
||||||
|
"backups" = var.backups
|
||||||
}
|
}
|
||||||
traefik = { for k, v in var.traefik : k => v if k!="enable" }
|
traefik = { for k, v in var.traefik : k => v if k!="enable" }
|
||||||
dns = { for k, v in var.dns : k => v if k!="enable" }
|
dns = { for k, v in var.dns : k => v if k!="enable" }
|
||||||
|
|||||||
@@ -6,6 +6,16 @@ metadata:
|
|||||||
name: domain-infra
|
name: domain-infra
|
||||||
description: null
|
description: null
|
||||||
options:
|
options:
|
||||||
|
dns:
|
||||||
|
default:
|
||||||
|
enable: false
|
||||||
|
examples:
|
||||||
|
- enable: false
|
||||||
|
properties:
|
||||||
|
enable:
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
traefik:
|
traefik:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
@@ -21,12 +31,17 @@ options:
|
|||||||
default: traefik
|
default: traefik
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
|
ingress-class:
|
||||||
|
default: traefik
|
||||||
|
examples:
|
||||||
|
- traefik
|
||||||
|
type: string
|
||||||
issuer:
|
issuer:
|
||||||
default: letsencrypt-prod
|
default: letsencrypt-prod
|
||||||
examples:
|
examples:
|
||||||
- letsencrypt-prod
|
- letsencrypt-prod
|
||||||
type: string
|
type: string
|
||||||
dns:
|
api:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
examples:
|
examples:
|
||||||
@@ -36,11 +51,6 @@ options:
|
|||||||
default: false
|
default: false
|
||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
ingress-class:
|
|
||||||
default: traefik
|
|
||||||
examples:
|
|
||||||
- traefik
|
|
||||||
type: string
|
|
||||||
distributions:
|
distributions:
|
||||||
default:
|
default:
|
||||||
core: core
|
core: core
|
||||||
@@ -61,15 +71,35 @@ options:
|
|||||||
examples:
|
examples:
|
||||||
- your-company
|
- your-company
|
||||||
type: string
|
type: string
|
||||||
api:
|
backups:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
|
endpoint: ''
|
||||||
|
key-id-key: s3-id
|
||||||
|
secret-key: s3-secret
|
||||||
|
secret-name: backup-settings
|
||||||
examples:
|
examples:
|
||||||
- enable: false
|
- enable: false
|
||||||
|
endpoint: ''
|
||||||
|
key-id-key: s3-id
|
||||||
|
secret-key: s3-secret
|
||||||
|
secret-name: backup-settings
|
||||||
properties:
|
properties:
|
||||||
enable:
|
enable:
|
||||||
default: false
|
default: false
|
||||||
type: boolean
|
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
|
type: object
|
||||||
domain-name:
|
domain-name:
|
||||||
default: your_company.com
|
default: your_company.com
|
||||||
@@ -84,3 +114,4 @@ providers:
|
|||||||
postgresql: null
|
postgresql: null
|
||||||
restapi: null
|
restapi: null
|
||||||
http: null
|
http: null
|
||||||
|
tfaddtype: null
|
||||||
|
|||||||
44
meta/domain-mail/apps.tf
Normal file
44
meta/domain-mail/apps.tf
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
locals {
|
||||||
|
annotations = {
|
||||||
|
"vynil.solidite.fr/meta" = var.component
|
||||||
|
"vynil.solidite.fr/name" = var.namespace
|
||||||
|
"vynil.solidite.fr/domain" = var.domain-name
|
||||||
|
"vynil.solidite.fr/issuer" = var.issuer
|
||||||
|
"vynil.solidite.fr/ingress" = var.ingress-class
|
||||||
|
}
|
||||||
|
global = {
|
||||||
|
"domain" = var.namespace
|
||||||
|
"domain-name" = var.domain-name
|
||||||
|
"issuer" = var.issuer
|
||||||
|
"ingress-class" = var.ingress-class
|
||||||
|
"backups" = var.backups
|
||||||
|
}
|
||||||
|
wildduck = { for k, v in var.wildduck : k => v if k!="enable" }
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "kubernetes_namespace_v1" "mail-ns" {
|
||||||
|
count = ( var.wildduck.enable )? 1 : 0
|
||||||
|
metadata {
|
||||||
|
annotations = local.annotations
|
||||||
|
labels = merge(local.common-labels, local.annotations)
|
||||||
|
name = "${var.namespace}-mail"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "kubectl_manifest" "wildduck" {
|
||||||
|
count = var.wildduck.enable ? 1 : 0
|
||||||
|
depends_on = [kubernetes_namespace_v1.mail-ns]
|
||||||
|
yaml_body = <<-EOF
|
||||||
|
apiVersion: "vynil.solidite.fr/v1"
|
||||||
|
kind: "Install"
|
||||||
|
metadata:
|
||||||
|
name: "wildduck"
|
||||||
|
namespace: "${kubernetes_namespace_v1.mail-ns[0].metadata[0].name}"
|
||||||
|
labels: ${jsonencode(local.common-labels)}
|
||||||
|
spec:
|
||||||
|
distrib: "${var.distributions.domain}"
|
||||||
|
category: "share"
|
||||||
|
component: "wildduck"
|
||||||
|
options: ${jsonencode(merge(local.global, local.wildduck))}
|
||||||
|
EOF
|
||||||
|
}
|
||||||
92
meta/domain-mail/index.yaml
Normal file
92
meta/domain-mail/index.yaml
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
---
|
||||||
|
apiVersion: vinyl.solidite.fr/v1beta1
|
||||||
|
kind: Component
|
||||||
|
category: meta
|
||||||
|
metadata:
|
||||||
|
name: domain-mail
|
||||||
|
description: null
|
||||||
|
options:
|
||||||
|
ingress-class:
|
||||||
|
default: traefik
|
||||||
|
examples:
|
||||||
|
- traefik
|
||||||
|
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
|
||||||
|
wildduck:
|
||||||
|
default:
|
||||||
|
enable: true
|
||||||
|
examples:
|
||||||
|
- enable: true
|
||||||
|
properties:
|
||||||
|
enable:
|
||||||
|
default: true
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
|
domain:
|
||||||
|
default: your-company
|
||||||
|
examples:
|
||||||
|
- your-company
|
||||||
|
type: string
|
||||||
|
distributions:
|
||||||
|
default:
|
||||||
|
core: core
|
||||||
|
domain: domain
|
||||||
|
examples:
|
||||||
|
- core: core
|
||||||
|
domain: domain
|
||||||
|
properties:
|
||||||
|
core:
|
||||||
|
default: core
|
||||||
|
type: string
|
||||||
|
domain:
|
||||||
|
default: domain
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
domain-name:
|
||||||
|
default: your_company.com
|
||||||
|
examples:
|
||||||
|
- your_company.com
|
||||||
|
type: string
|
||||||
|
issuer:
|
||||||
|
default: letsencrypt-prod
|
||||||
|
examples:
|
||||||
|
- letsencrypt-prod
|
||||||
|
type: string
|
||||||
|
dependencies: []
|
||||||
|
providers:
|
||||||
|
kubernetes: true
|
||||||
|
authentik: null
|
||||||
|
kubectl: true
|
||||||
|
postgresql: null
|
||||||
|
restapi: null
|
||||||
|
http: null
|
||||||
|
tfaddtype: null
|
||||||
@@ -6,6 +6,26 @@ metadata:
|
|||||||
name: domain
|
name: domain
|
||||||
description: null
|
description: null
|
||||||
options:
|
options:
|
||||||
|
issuer:
|
||||||
|
default: letsencrypt-prod
|
||||||
|
examples:
|
||||||
|
- letsencrypt-prod
|
||||||
|
type: string
|
||||||
|
domain-name:
|
||||||
|
default: your_company.com
|
||||||
|
examples:
|
||||||
|
- your_company.com
|
||||||
|
type: string
|
||||||
|
auth:
|
||||||
|
default:
|
||||||
|
enable: true
|
||||||
|
examples:
|
||||||
|
- enable: true
|
||||||
|
properties:
|
||||||
|
enable:
|
||||||
|
default: true
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
ci:
|
ci:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
@@ -28,15 +48,35 @@ options:
|
|||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
auth:
|
backups:
|
||||||
default:
|
default:
|
||||||
enable: true
|
enable: false
|
||||||
|
endpoint: ''
|
||||||
|
key-id-key: s3-id
|
||||||
|
secret-key: s3-secret
|
||||||
|
secret-name: backup-settings
|
||||||
examples:
|
examples:
|
||||||
- enable: true
|
- enable: false
|
||||||
|
endpoint: ''
|
||||||
|
key-id-key: s3-id
|
||||||
|
secret-key: s3-secret
|
||||||
|
secret-name: backup-settings
|
||||||
properties:
|
properties:
|
||||||
enable:
|
enable:
|
||||||
default: true
|
default: false
|
||||||
type: boolean
|
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
|
type: object
|
||||||
infra:
|
infra:
|
||||||
default:
|
default:
|
||||||
@@ -60,21 +100,6 @@ options:
|
|||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
issuer:
|
|
||||||
default: letsencrypt-prod
|
|
||||||
examples:
|
|
||||||
- letsencrypt-prod
|
|
||||||
type: string
|
|
||||||
ingress-class:
|
|
||||||
default: traefik
|
|
||||||
examples:
|
|
||||||
- traefik
|
|
||||||
type: string
|
|
||||||
domain-name:
|
|
||||||
default: your_company.com
|
|
||||||
examples:
|
|
||||||
- your_company.com
|
|
||||||
type: string
|
|
||||||
erp:
|
erp:
|
||||||
default:
|
default:
|
||||||
dolibarr:
|
dolibarr:
|
||||||
@@ -97,21 +122,11 @@ options:
|
|||||||
default: false
|
default: false
|
||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
distributions:
|
ingress-class:
|
||||||
default:
|
default: traefik
|
||||||
core: core
|
|
||||||
domain: domain
|
|
||||||
examples:
|
examples:
|
||||||
- core: core
|
- traefik
|
||||||
domain: domain
|
type: string
|
||||||
properties:
|
|
||||||
core:
|
|
||||||
default: core
|
|
||||||
type: string
|
|
||||||
domain:
|
|
||||||
default: domain
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
apps:
|
apps:
|
||||||
default:
|
default:
|
||||||
enable: false
|
enable: false
|
||||||
@@ -134,6 +149,21 @@ options:
|
|||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
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: []
|
dependencies: []
|
||||||
providers:
|
providers:
|
||||||
kubernetes: null
|
kubernetes: null
|
||||||
@@ -142,3 +172,4 @@ providers:
|
|||||||
postgresql: null
|
postgresql: null
|
||||||
restapi: null
|
restapi: null
|
||||||
http: null
|
http: null
|
||||||
|
tfaddtype: null
|
||||||
|
|||||||
@@ -5,9 +5,10 @@ locals {
|
|||||||
"issuer" = var.issuer
|
"issuer" = var.issuer
|
||||||
"ingress-class" = var.ingress-class
|
"ingress-class" = var.ingress-class
|
||||||
"distributions" = var.distributions
|
"distributions" = var.distributions
|
||||||
|
"backups" = var.backups
|
||||||
}
|
}
|
||||||
annotations = {
|
annotations = {
|
||||||
"vynil.solidite.fr/meta" = "domain"
|
"vynil.solidite.fr/meta" = var.component
|
||||||
"vynil.solidite.fr/name" = var.namespace
|
"vynil.solidite.fr/name" = var.namespace
|
||||||
"vynil.solidite.fr/domain" = var.domain-name
|
"vynil.solidite.fr/domain" = var.domain-name
|
||||||
"vynil.solidite.fr/issuer" = var.issuer
|
"vynil.solidite.fr/issuer" = var.issuer
|
||||||
|
|||||||
@@ -6,36 +6,16 @@ metadata:
|
|||||||
name: wildduck
|
name: wildduck
|
||||||
description: null
|
description: null
|
||||||
options:
|
options:
|
||||||
sub-domain:
|
domain-name:
|
||||||
default: mail
|
default: your_company.com
|
||||||
examples:
|
examples:
|
||||||
- mail
|
- your_company.com
|
||||||
type: string
|
|
||||||
ingress-class:
|
|
||||||
default: traefik
|
|
||||||
examples:
|
|
||||||
- traefik
|
|
||||||
type: string
|
type: string
|
||||||
domain:
|
domain:
|
||||||
default: your-company
|
default: your-company
|
||||||
examples:
|
examples:
|
||||||
- your-company
|
- your-company
|
||||||
type: string
|
type: string
|
||||||
issuer:
|
|
||||||
default: letsencrypt-prod
|
|
||||||
examples:
|
|
||||||
- letsencrypt-prod
|
|
||||||
type: string
|
|
||||||
additional-domains:
|
|
||||||
default: []
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
domain-name:
|
|
||||||
default: your_company.com
|
|
||||||
examples:
|
|
||||||
- your_company.com
|
|
||||||
type: string
|
|
||||||
images:
|
images:
|
||||||
default:
|
default:
|
||||||
haraka:
|
haraka:
|
||||||
@@ -199,6 +179,51 @@ options:
|
|||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
|
sub-domain:
|
||||||
|
default: mail
|
||||||
|
examples:
|
||||||
|
- mail
|
||||||
|
type: string
|
||||||
|
ingress-class:
|
||||||
|
default: traefik
|
||||||
|
examples:
|
||||||
|
- traefik
|
||||||
|
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
|
||||||
redis:
|
redis:
|
||||||
default:
|
default:
|
||||||
exporter:
|
exporter:
|
||||||
@@ -232,6 +257,11 @@ options:
|
|||||||
default: 2Gi
|
default: 2Gi
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
|
additional-domains:
|
||||||
|
default: []
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
dependencies:
|
dependencies:
|
||||||
- dist: null
|
- dist: null
|
||||||
category: dbo
|
category: dbo
|
||||||
|
|||||||
@@ -41,6 +41,25 @@ resource "kubectl_manifest" "prj_mongo" {
|
|||||||
members: 1
|
members: 1
|
||||||
type: ReplicaSet
|
type: ReplicaSet
|
||||||
version: "4.4.0"
|
version: "4.4.0"
|
||||||
|
podSpec:
|
||||||
|
podTemplate:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: mongod
|
||||||
|
env:
|
||||||
|
- name: MONGODB_NAME
|
||||||
|
value: ${var.component}
|
||||||
|
- name: MONGODB_USER
|
||||||
|
value: ${var.component}
|
||||||
|
- name: MONGODB_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: "${var.instance}-${var.component}-mongo"
|
||||||
|
key: password
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
"k8up.io/backupcommand": "sh -c 'mongodump --username=$MONGODB_USER --password=$MONGODB_PASSWORD mongodb://localhost/$MONGODB_NAME --archive'"
|
||||||
|
"k8up.io/file-extension": ".archive"
|
||||||
security:
|
security:
|
||||||
authentication:
|
authentication:
|
||||||
modes: ["SCRAM"]
|
modes: ["SCRAM"]
|
||||||
|
|||||||
Reference in New Issue
Block a user