我有以下的地形:
我的想法是,我可以传入卷,并传递binary_data或data,此模块将相应地进行处理。
然而,它并不喜欢嵌套循环。我有一种感觉,它不喜欢在对象上迭代。
当我运行此命令时,我得到以下错误
#variable.tf
variable "volumes" {
type = map(object({
data = map(string)
binary_data = map(string)
}))
description = "configmap backed volume"
}#main.tf
resource "kubernetes_config_map" "volume" {
for_each = var.volumes
metadata {
name = each.key
namespace = var.namespace
}
dynamic "data" {
for_each = each.value["data"]
content {
each.key = each.value
}
}
dynamic "binary_data" {
for_each = each.value["binary_data"]
content {
each.key = each.value
}
}
}错误:需要参数或块定义
在../../../terraform-modules/helm_install/main.tf第45行:此处需要参数或块定义。要设置参数,请使用等号"=“来引入参数值。
发布于 2021-01-25 15:32:00
data和binary_data是参数,不是块。dynamic blocks仅适用于块,而不适用于参数。
这意味着您不能在单个kubernetes_config_map中创建多个data和binary_data。您必须在资源级别应用for_each:
resource "kubernetes_config_map" "volume" {
for_each = var.volumes
metadata {
name = each.key
namespace = var.namespace
}
data = each.value["data"]
binary_data = each.value["binary_data"]
}我还没有验证上面的代码,因此威胁它只是作为一个例子。
https://stackoverflow.com/questions/65879801
复制相似问题