42 lines
1.4 KiB
Terraform
42 lines
1.4 KiB
Terraform
|
|
locals {
|
||
|
|
service_admin_zitadel_user_grants = {
|
||
|
|
(var.service_admin_zitadel_user_id) = var.service_admin_zitadel_role_keys
|
||
|
|
}
|
||
|
|
|
||
|
|
service_grant_user_ids = setunion(
|
||
|
|
keys(local.service_admin_zitadel_user_grants),
|
||
|
|
keys(var.frigate_zitadel_user_grants),
|
||
|
|
keys(var.forgejo_zitadel_user_grants),
|
||
|
|
keys(var.grafana_zitadel_user_grants),
|
||
|
|
keys(var.longhorn_zitadel_user_grants),
|
||
|
|
keys(var.quay_zitadel_user_grants),
|
||
|
|
)
|
||
|
|
|
||
|
|
service_zitadel_user_grants = {
|
||
|
|
for user_id in local.service_grant_user_ids : user_id => toset(flatten([
|
||
|
|
tolist(lookup(local.service_admin_zitadel_user_grants, user_id, toset([]))),
|
||
|
|
tolist(lookup(var.frigate_zitadel_user_grants, user_id, toset([]))),
|
||
|
|
tolist(lookup(var.forgejo_zitadel_user_grants, user_id, toset([]))),
|
||
|
|
tolist(lookup(var.grafana_zitadel_user_grants, user_id, toset([]))),
|
||
|
|
tolist(lookup(var.longhorn_zitadel_user_grants, user_id, toset([]))),
|
||
|
|
tolist(lookup(var.quay_zitadel_user_grants, user_id, toset([]))),
|
||
|
|
]))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
resource "zitadel_user_grant" "services" {
|
||
|
|
for_each = local.service_zitadel_user_grants
|
||
|
|
|
||
|
|
org_id = zitadel_org.primary.id
|
||
|
|
project_id = zitadel_project.services.id
|
||
|
|
user_id = each.key
|
||
|
|
role_keys = each.value
|
||
|
|
|
||
|
|
depends_on = [
|
||
|
|
zitadel_project_role.forgejo,
|
||
|
|
zitadel_project_role.frigate,
|
||
|
|
zitadel_project_role.grafana,
|
||
|
|
zitadel_project_role.longhorn,
|
||
|
|
zitadel_project_role.quay,
|
||
|
|
]
|
||
|
|
}
|