Files
domain/meta/domain-devspaces/organisations.tf
2023-10-24 14:39:00 +02:00

37 lines
1.0 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
]
])
}
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,
{
"stages" = []
"datasets" = []
"haveGitea" = var.haveGitea
},
{ for k, v in local.sorted-organisations[count.index] : k => v if !contains(["name"], k) }
))}
EOF
}