【发布时间】:2020-11-28 01:35:50
【问题描述】:
我正在尝试编写一些代码来接受这样的输入结构:
projects = {
"project1" = {
namespaces = ["mynamespace1"]
},
"project2" = {
namespaces = ["mynamespace2", "mynamespace3"]
}
}
并使用 for_each 提供多个资源,这将导致:
resource "rancher2_project" "project1" {
provider = rancher2.admin
cluster_id = module.k8s_cluster.cluster_id
wait_for_cluster = true
}
resource "rancher2_project" "project2" {
provider = rancher2.admin
cluster_id = module.k8s_cluster.cluster_id
wait_for_cluster = true
}
resource "rancher2_namespace" "mynamespace1" {
provider = rancher2.admin
project_id = rancher2_project.project1.id
depends_on = [rancher2_project.project1]
}
resource "rancher2_namespace" "mynamespace2" {
provider = rancher2.admin
project_id = rancher2_project.project2.id
depends_on = [rancher2_project.project2]
}
resource "rancher2_namespace" "mynamespace3" {
provider = rancher2.admin
project_id = rancher2_project.project2.id
depends_on = [rancher2_project.project2]
}
命名空间依赖于项目,需要将生成的 id 传递到命名空间。
有什么好的方法可以动态地做到这一点吗?我们可能有很多项目/命名空间。
感谢您的帮助和建议。
【问题讨论】:
-
您的示例不是迭代 2 个提供程序配置,而是超过 2 个使用相同提供程序但不同项目的资源。你在你的例子中遗漏了什么吗?
-
我的错误应该是超过 2 个资源。
标签: terraform