【问题标题】:How to rename a dynamic block in terraform如何在 terraform 中重命名动态块
【发布时间】:2021-09-08 02:26:38
【问题描述】:

我正在尝试在 kubernetes_ingress 资源中使用动态块。动态块用于spec.rule.http.path 块。不幸的是,我正在尝试动态创建一个 path 块,这会导致问题,因为 path 似乎是一个保留字。

是否可以在动态块中重命名循环变量,或者以其他方式规避这个问题?

这是我当前的代码:

resource "kubernetes_ingress" "ingress" {
  metadata { ... }
  spec {
    tls { ... }
    rule {
      http {

        dynamic "path" {
          for_each = var.services

          content {
            path = path.value.path
            backend {
              service_name = path.value.name
              service_port = path.value.port
            }
          }
        }

      }
    }
  }
}

services 变量具有以下结构:

[
  {
    name: "foo",
    port: 3000,
    path: "/foo",
  }
]

【问题讨论】:

    标签: terraform kubernetes-ingress hcl


    【解决方案1】:

    动态块采用名为 iterator 的参数,可让您重命名为其分配值的符号。

    dynamic "path" {
        for_each = var.services
        iterator = "service"
        content {
            path = service.value.path
            backend {
                service_name = service.value.name
                service_port = service.value.port
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-02
      • 2020-08-18
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      相关资源
      最近更新 更多