我想做什么?
我想使用 terraform 創建一個kubernetes 服務物件,但要使其可重用。因此,每次有新服務時,我都可以附加變數。
我的問題:
我一直在閱讀并嘗試不同的事情,但我不確定如何回圈“注釋”和“選擇器”,它們將具有多個鍵值對。
代碼示例
Variables.tf 我想使用它來構建實際的 terraform 資源。
variable "apps" {
default = {
"app1" = {
svc_name = "app1"
namespace = "testns"
annotations = {
"testannotation" = "ann1"
}
selector = {
app = "podinfo"
env = "dev"
}
ports = {
name = "http"
port = 80
protocol = "TCP"
targetPort = 8008
}
},
"app2" = {
svc_name = "app2"
namespace = "testns"
annotations = {
"testannotation" = "ann1"
}
selector = {
app = "someapp"
env = "qa"
}
ports = {
name = "http"
port = 8080
protocol = "TCP"
targetPort = 8080
}
},
}
}
這是 main.tf,我想在其中回圈變數的“注釋”和“選擇器”,因為其中可能有多個。但是只有一個“注釋”和“選擇器”塊。所以我不能使用“動態”,因為它會生成許多這樣的塊。
resource "kubernetes_service" "service" {
for_each = var.apps
metadata {
name = each.value.svc_name
namespace = each.value.namespace
# annotations = {
# HOW DO I GET THE ANNOTATIONS HERE
# }
}
spec {
selector = {
## HOW DO I GET THE SELECTORS FROM VARIABLEES HERE
}
session_affinity = "ClientIP"
port {
port = each.value.ports.port
target_port = each.value.ports.targetPort
}
type = "ClusterIP"
}
}
我會很感激這里的任何指南、鏈接或建議!
uj5u.com熱心網友回復:
您對其他屬性執行相同操作:
resource "kubernetes_service" "service" {
for_each = var.apps
metadata {
name = each.value.svc_name
namespace = each.value.namespace
annotations = each.value.annotations
}
spec {
selector = each.value.selector
session_affinity = "ClientIP"
port {
port = each.value.ports.port
target_port = each.value.ports.targetPort
}
type = "ClusterIP"
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/470202.html
標籤:Kubernetes 地形