【发布时间】:2022-01-13 20:04:36
【问题描述】:
我正在尝试遍历一个简单的地图列表。这是我的模块代码的一部分:
resource "helm_release" "nginx-external" {
count = var.install_ingress_nginx_chart ? 1 : 0
name = "nginx-external"
repository = "https://kubernetes.github.io/ingress-nginx"
chart = "ingress-nginx"
version = var.nginx_external_version
namespace = "default"
lint = true
values = [
"${file("chart_values/nginx-external.yaml")}"
]
dynamic "set" {
for_each = { for o in var.nginx_external_overrides : o.name => o }
content {
name = each.value.name
value = each.value.value
}
}
}
variable "nginx_external_overrides" {
description = "A map of maps to override customizations from the default chart/values file."
type = any
}
这是我如何尝试从 terragrunt 调用它的 sn-p:
nginx_external_overrides = [
{ name = "controller.metrics.enabled", value = "false" }
]
当尝试在动态块中使用它时,我得到:
Error: each.value cannot be used in this context
A reference to "each.value" has been used in a context in which it
unavailable, such as when the configuration no longer contains the value in
its "for_each" expression. Remove this reference to each.value in your
configuration to work around this error.
理想情况下,我可以在 nginx_external_overrides 中传递任意数量的映射来覆盖正在传递的 yaml 中的设置,但我正在努力这样做。感谢您的帮助。
【问题讨论】:
标签: terraform