Terraform动态组创建



在我下面的地形代码中,我试图将组分配给实例。但是对于实例test1、test2,我可以分配组app1、app2、app3。但我想把组app1,app2,app3分配给test1实例,组t1,t2,t3分配给test2实例。我在group_assignments块中缺少任何逻辑吗?谢谢。

locals {
instances = [
{
instance  = "test1"
baseUrl   = "url"
subDomain = "sd"
groups = [
"app1",
"app2",
"app3",
]
},
{
instance  = "test2"
baseUrl   = "url2"
subDomain = "sd2"
groups = [
"t1",
"t2",
"t3",
]
},
]
}
resource "og" "press" {
for_each = { for k, instance in flatten(local.instances[*].groups) : k => instance }
name     = each.value
}
resource "ol" "press2" {
for_each                   = { for k, instance in local.instances : k => instance }
label                      = "press-${each.value.instance}"
preconfigured_app          = "press"
}
resource "oag" "assignment" {
for_each = { for k, instance in local.instances : k => instance }
app_id   = ol.press2[each.key].id
dynamic "group" {
for_each = each.value.groups
content {
id = og.press[group.value].id
}
}
}

我认为应该是:

resource "okta_group" "press" {
for_each = toset(flatten(local.instances[*].groups))
name     = each.value
}

这样,您可以将okta_group的单个实例引用为okta_group.press["app1"], okta_group.press["t1"],以此类推。

最新更新