0

我正在使用由 Terraform 提供的Helm 图表,它创建了网络负载均衡器,但我不知道如何获取此均衡器的 DNS 名称,因此我可以在 Terraform 中为其创建 Route53 记录。

如果我能得到它的 ARN,我可以通过数据块调用它并读取 dns_name,但是 Helm 无法为我返回类似的东西。

你有什么建议吗?
我想尽可能保持它为 IaC

PS:我将一些值传递给 Helm 图表,因此它正在创建 NLB,此图表的本机功能是创建经典 LB。

   service.beta.kubernetes.io/aws-load-balancer-type: nlb
4

1 回答 1

1

我刚刚找到并回答,使用很简单:注意:我必须指定命名空间,否则服务为空(未找到)。

data "kubernetes_service" "ingress_nginx" {
  metadata {
    name = "ingress-nginx-controller"
    namespace = "kube-system"
  }
}
output "k8s_service_ingress" {
  description   = "External DN name of load balancer"
  value         = data.kubernetes_service.ingress_nginx.status.0.load_balancer.0.ingress.0.hostname
}

它也可以在官方文档中找到 - https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/data-sources/service

于 2021-10-26T09:02:15.570 回答