Files
domain/share/division/groups.tf
2023-10-03 11:57:22 +02:00

28 lines
804 B
HCL

locals {
sorted-team-names = reverse(distinct(sort([
for team in var.teams: team.name
])))
sorted-teams = flatten([
for name in local.sorted-team-names: [
for team in var.teams:
team if team.name == name
]
])
}
data "authentik_group" "parent" {
name = var.parent
}
resource "authentik_group" "division" {
name = "div-${var.instance}"
parent = data.authentik_group.parent.id
attributes = jsonencode({for app in var.apps: app => true})
}
resource "authentik_group" "teams" {
count = length(local.sorted-teams)
name = "team-${var.instance}-${local.sorted-teams[count.index].name}"
parent = authentik_group.division.id
attributes = jsonencode({for app in local.sorted-teams[count.index].apps: app => true})
}