fix
This commit is contained in:
117
meta/domain-auth/divisions.tf
Normal file
117
meta/domain-auth/divisions.tf
Normal file
@@ -0,0 +1,117 @@
|
||||
locals {
|
||||
sorted-div-clients-names = reverse(distinct(sort([
|
||||
for div in var.clients.divisions: div.name
|
||||
])))
|
||||
sorted-div-clients = flatten([
|
||||
for name in local.sorted-div-clients-names: [
|
||||
for div in var.clients.divisions:
|
||||
div if div.name == name
|
||||
]
|
||||
])
|
||||
sorted-div-employes-names = reverse(distinct(sort([
|
||||
for div in var.employes.divisions: div.name
|
||||
])))
|
||||
sorted-div-employes = flatten([
|
||||
for name in local.sorted-div-employes-names: [
|
||||
for div in var.employes.divisions:
|
||||
div if div.name == name
|
||||
]
|
||||
])
|
||||
sorted-div-fournisseurs-names = reverse(distinct(sort([
|
||||
for div in var.fournisseurs.divisions: div.name
|
||||
])))
|
||||
sorted-div-fournisseurs = flatten([
|
||||
for name in local.sorted-div-fournisseurs-names: [
|
||||
for div in var.fournisseurs.divisions:
|
||||
div if div.name == name
|
||||
]
|
||||
])
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "accounts-management" {
|
||||
count = var.authentik.enable && var.employes.enable ? 1 : 0
|
||||
depends_on = [kubernetes_namespace_v1.auth-ns]
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "accounts-management"
|
||||
namespace: "${var.namespace}-auth"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.distributions.domain}"
|
||||
category: "share"
|
||||
component: "accounts-management"
|
||||
options: ${jsonencode(merge(local.global, {
|
||||
clients = var.clients
|
||||
employes = var.employes
|
||||
fournisseurs = var.fournisseurs
|
||||
}))}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "employes-divisions" {
|
||||
count = var.authentik.enable && var.employes.enable ? length(local.sorted-div-employes) : 0
|
||||
depends_on = [kubernetes_namespace_v1.auth-ns,kubectl_manifest.accounts-management]
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "employes-${local.sorted-div-employes[count.index].name}"
|
||||
namespace: "${var.namespace}-auth"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.distributions.domain}"
|
||||
category: "share"
|
||||
component: "division"
|
||||
options: ${jsonencode(merge(local.global, {
|
||||
parent = "employes"
|
||||
apps = local.sorted-div-employes[count.index].apps
|
||||
teams = local.sorted-div-employes[count.index].teams
|
||||
}))}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "clients-divisions" {
|
||||
count = var.authentik.enable && var.employes.enable && var.clients.enable ? length(local.sorted-div-clients) : 0
|
||||
depends_on = [kubernetes_namespace_v1.auth-ns,kubectl_manifest.accounts-management]
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "clients-${local.sorted-div-clients[count.index].name}"
|
||||
namespace: "${var.namespace}-auth"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.distributions.domain}"
|
||||
category: "share"
|
||||
component: "division"
|
||||
options: ${jsonencode(merge(local.global, {
|
||||
parent = "clients"
|
||||
apps = local.sorted-div-clients[count.index].apps
|
||||
teams = local.sorted-div-clients[count.index].teams
|
||||
}))}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "fournisseurs-divisions" {
|
||||
count = var.authentik.enable && var.employes.enable && var.fournisseurs.enable ? length(local.sorted-div-fournisseurs) : 0
|
||||
depends_on = [kubernetes_namespace_v1.auth-ns,kubectl_manifest.accounts-management]
|
||||
yaml_body = <<-EOF
|
||||
apiVersion: "vynil.solidite.fr/v1"
|
||||
kind: "Install"
|
||||
metadata:
|
||||
name: "fournisseurs-${local.sorted-div-fournisseurs[count.index].name}"
|
||||
namespace: "${var.namespace}-auth"
|
||||
labels: ${jsonencode(local.common-labels)}
|
||||
spec:
|
||||
distrib: "${var.distributions.domain}"
|
||||
category: "share"
|
||||
component: "division"
|
||||
options: ${jsonencode(merge(local.global, {
|
||||
parent = "fournisseurs"
|
||||
apps = local.sorted-div-fournisseurs[count.index].apps
|
||||
teams = local.sorted-div-fournisseurs[count.index].teams
|
||||
}))}
|
||||
EOF
|
||||
}
|
||||
Reference in New Issue
Block a user