【发布时间】:2021-01-06 16:42:51
【问题描述】:
我想创建一个动态块,它能够使用 terraform 为 kubernetes 内的 docker 容器动态创建环境。
我已经尝试创建一个列表 var 并遍历 env,但出现语法错误
错误:在非计数上下文中引用“计数”
在 kubernetes/kubernetes.main.tf 第 68 行,资源“kubernetes_deployment”“kube_deployment”中:
这是由于使用了资源块计数。
我现在正在寻找像这样创建多个环境
...
env {
name = "NAME"
value = "VALUE"
}
env {
name = "NAME"
value = "VALUE"
}
.
.
.
无论如何都可以创建此迭代或任何技巧来在容器块中创建动态环境。我了解动态块仅在资源、数据、提供者和供应者内部。 我以前使用 helm 来做这种模板,但现在我想完全转向 terraform。 我希望有任何解决此类问题的方法。
谢谢
resource "kubernetes_deployment" "kube_deployment" {
metadata {
name = var.deployment_name
labels = {
App = var.deployment_name
}
}
spec {
replicas = 1
selector {
match_labels = {
App = var.deployment_name
}
}
template {
metadata {
labels = {
App = var.deployment_name
}
}
spec {
container {
image = var.container_image
name = var.container_name
env {
name = "NAME"
value = "VALUE"
}
port {
container_port = var.container_port
}
}
}
}
}
}
【问题讨论】:
-
“无论如何要创建这个迭代或任何黑客来在容器块中创建动态环境” - terraform.io/docs/configuration/expressions.html#dynamic-blocks !?
-
谢谢上面提到的“。我知道动态块只在资源、数据、提供者和供应者内部”
-
您在
resource中,您可以开始了。你真的尝试过使用动态块吗? -
谢谢。我试过了。我有例外。我坚持我在一个嵌套块内。现在无论如何它都在工作。谢谢
标签: terraform gcloud terraform-provider-gcp infrastructure-as-code