【问题标题】:Terraform dynamic group creationTerraform 动态组创建
【发布时间】:2021-10-29 02:54:11
【问题描述】:

在下面的 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
    }
  }
}

【问题讨论】:

    标签: loops dynamic terraform


    【解决方案1】:

    我认为应该是:

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

    这样您可以引用okta_group 的各个实例,如okta_group.press["app1"], okta_group.press["t1"] 等等。

    【讨论】:

    • @Nikhilbrusli 抱歉,但不清楚您想要什么。 “使这个动态”是什么意思?您正在使用动态块,“动态”块创建没有其他内容。
    • @Nikhilbrusli 我已经在回答中解释了你应该做什么。你试过了吗?
    • @Nikhilbrusli 应该不需要。如果遇到任何错误,请尝试发布错误。
    猜你喜欢
    • 2022-11-16
    • 2021-12-31
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 2020-11-08
    相关资源
    最近更新 更多