如何使用 Terraform 的 kubernetes_service 输出 node_port 值?
How do you output the node_port value with Terraform's kubernetes_service?
我正在尝试在我的 Terraform 模板中创建输出。
output "port" {
value = "${kubernetes_service.postgres_service.spec}"
}
会产生
ports = {
cluster_ip = 10.245.175.57
external_ips = []
external_name =
load_balancer_ip =
load_balancer_source_ranges = []
port = [map[node_port:30344 protocol:TCP name: port:5432 target_port:5432]]
selector = map[app:postgres]
session_affinity = None
type = NodePort
}
我试过 "${kubernetes_service.postgres_service.spec}.port"
但它产生语法错误。
我也试过"${lookup(kubernetes_service.postgres_service.spec[0], "port")}"
,但它只能用于平面地图。
我错过了什么吗?这是我第一次尝试 Terraform,它与我以前使用的 (CloudFormation) 有很大不同。任何帮助将不胜感激。我只是想在 运行 应用后获取 node_port (30344) 的值以输出到屏幕。
这应该有效:
output "port" {
value = "${kubernetes_service.postgres_service.spec.0.port.0.port}"
}
参考:
resource.TestCheckResourceAttr("kubernetes_service.test", "spec.0.port.0.port", "8080"),
我正在尝试在我的 Terraform 模板中创建输出。
output "port" {
value = "${kubernetes_service.postgres_service.spec}"
}
会产生
ports = {
cluster_ip = 10.245.175.57
external_ips = []
external_name =
load_balancer_ip =
load_balancer_source_ranges = []
port = [map[node_port:30344 protocol:TCP name: port:5432 target_port:5432]]
selector = map[app:postgres]
session_affinity = None
type = NodePort
}
我试过 "${kubernetes_service.postgres_service.spec}.port"
但它产生语法错误。
我也试过"${lookup(kubernetes_service.postgres_service.spec[0], "port")}"
,但它只能用于平面地图。
我错过了什么吗?这是我第一次尝试 Terraform,它与我以前使用的 (CloudFormation) 有很大不同。任何帮助将不胜感激。我只是想在 运行 应用后获取 node_port (30344) 的值以输出到屏幕。
这应该有效:
output "port" {
value = "${kubernetes_service.postgres_service.spec.0.port.0.port}"
}
参考:
resource.TestCheckResourceAttr("kubernetes_service.test", "spec.0.port.0.port", "8080"),