我正在使用Terraform创建EKS集群。流量通过AWS应用程序负载均衡器(ALB(-入口控制器进行路由。
我可以通过以下输出获得主机名kubernetes_ingress.app.status.0.load_balancer.0.ingress.0.hostname
然而,问题是Ingress和ALB自动创建一个安全组,我需要创建AWS API网关&VPC链接,如何获取该安全组的id?
我认为下面的链接可能会对您有所帮助,但如果它不可用,您可以通过名称破解LB对象。
您首先获得LB主机名(除了连字符上的split之外,您已经获得了LB主机名(,然后使用该名称创建一个"aws_LB"数据类型,然后应该像部署LB一样填充"aws_1b"。或者至少足以查询该类型的对象以获得所需的位。
locals {
lb_name_parts = split("-", split(".", kubernetes_ingress.alb_nginx_primary_ingress.status.0.load_balancer.0.ingress.0.hostname).0)
}
data "aws_lb" "alb_primary_ingress" {
name = join("-", slice(local.lb_name_parts, 0, length(local.lb_name_parts) - 1))
}
(我的主机名变量与您的略有不同,但您应该了解这个想法(
找到答案的聪明人:
https://github.com/hashicorp/terraform-provider-kubernetes/issues/942