Files
domain-incoming/meta/domain-devspaces/organisations.tf
2024-05-16 13:07:05 +02:00

42 lines
1.2 KiB
HCL

locals {
sorted-organisation-names = reverse(distinct(sort([for org in var.organisations: org.name])))
sorted-organisations = flatten([
for name in local.sorted-organisation-names: [
for org in var.organisations: merge({
"stages" = []
"datasets" = []
}, org) if org.name == name
]
])
common_org_param = {
"stages" = []
"datasets" = []
"haveGitea" = var.haveGitea
"haveTekton" = var.haveTekton
"haveFlux" = var.haveFlux
"autoCD" = var.autoCD
"gitea_ssh_prefix" = var.gitea_ssh_prefix
"gitea_ssh_port" = var.gitea_ssh_port
}
}
resource "kubectl_manifest" "organisations" {
count = length(local.sorted-organisations)
yaml_body = <<-EOF
apiVersion: "vynil.solidite.fr/v1"
kind: "Install"
metadata:
name: "org-${local.sorted-organisations[count.index].name}"
namespace: "${var.namespace}"
labels: ${jsonencode(local.common_labels)}
spec:
distrib: "${var.distributions.domain}"
category: "share"
component: "organisation"
options: ${jsonencode(merge(
local.global, local.common_org_param,
{ for k, v in local.sorted-organisations[count.index] : k => v if !contains(["name"], k) }
))}
EOF
}