Terraform nginx ingress动态for_each规则主机



尝试创建一个动态主机规则,该规则以前存在于我的ingress yaml文件中。主要区别TF没有"规则"——它们只有一个"规则",但我认为这只是一个命名转换。目前我正在为每个项目创建一个入口,但我想做一个动态规则。我知道动态必须在资源/数据等中。我该如何做到这一点?(不是一个工作示例(

resource "kubernetes_ingress" "test" {
wait_for_load_balancer = false
metadata {
name = "my-test-${each.value}"
namespace = kubernetes_namespace.test.metadata.0.name
annotations = {
"kubernetes.io/ingress.class" = "nginx"
}
}
spec {
dynamic "rule" {
for_each = toset(var.types)
content {
host = "${each.value}.test.mydomain.com"
http {
path {
path = "/"
backend {
service_name = kubernetes_service.test[each.value].metadata.0.name
service_port = 8080
}
}
}
}
}
}
}

在使用动态块时,必须使用rule而不是each来引用for_each:中的项目

resource "kubernetes_ingress" "test" {
#..
spec {
dynamic "rule" {
for_each = toset(var.types)
content {
host = "${rule.value}.test.mydomain.com"
http {
path {
path = "/"
backend {
service_name = kubernetes_service.test[rule.value].metadata.0.name
service_port = 8080
}
}
}
}
}
}

最新更新