如何在 Terraform 中获取 Kubernetes 网关公共 IP?

问题描述 投票:0回答:1

我正在 Google Kubernetes Engine 中部署 Kubernetes 网关。如何获取外部 IP 将其公开为输出?

resource "kubernetes_manifest" "gateway" {
  manifest = {
    "apiVersion" = "gateway.networking.k8s.io/v1beta1"
    "kind"       = "Gateway"
    "metadata" = {
      "namespace" = "default"
      "name"      = "my-gateway"
    }
    "spec" = {
      "gatewayClassName" = "gke-l7-regional-external-managed" // Managed by GKE
      "listeners" = [
        {
          "name"     = "http"
          "protocol" = "HTTP"
          "port"     = 80
          "allowedRoutes" = {
            "namespaces" = {
              "from" : "All"
            }
            "kinds" = [{
              "kind" = "HTTPRoute"
            }]
          }
        }
      ]
    }
  }
}

当我运行

kubectl get gateways
时,我可以看到公共IP。

output "gateway_external_ip" {
  value = kubernetes_manifest.gateway. // what goes here?
}

我已经导出了整个资源,但我不知道如何获取IP。还可能吗?

kubernetes terraform google-kubernetes-engine
1个回答
0
投票

kubernetes_manifest 文档 说:

object(动态)由 API 返回的结果资源状态 从清单应用所需状态后的服务器

因此,我相信你应该从

开始
output "gateway_object" {
  value = kubernetes_manifest.gateway.object
}

并检查返回的对象,以便找到要提取的正确字段。

© www.soinside.com 2019 - 2024. All rights reserved.