Search code examples
kubernetes-ingressamazon-eksamazon-elbexternal-dns

EKS Ingress does not show created ALB Address


In my EKS cluster, I am using the AWS Load Balancer Controller to monitor the cluster and create an ALB when ingress resources are created/seen (This is working correctly, configured through annotations). I am trying to use External-DNS in order to update the Route53 entry to route the hostname in the ingress to the ALB that gets created through the Load Balancer Controller. The ALB is created but the address field in the cluster is empty, and this should contain the ALB URL that gets created.

NAMESPACE              NAME            CLASS    HOSTS                                               ADDRESS   PORTS   AGE  
test-ns   test-ingress   <none>   *.example.com                             8080      1d  

I believe this is causing external-dns to think that all entries are synced, as the external-dns logs show the below repeatedly

level=debug msg="No endpoints could be generated from service kube-system/core-dns"
level=debug msg="No endpoints could be generated from ingress test-ns/test-ingress"
level=debug msg="Refreshing zones list cache"
level=debug msg="Considering zone: /hostedzone/123123123123 (domain: example.com)"
level=info msg="Applying provider record filter for domains: [example.com]"
level=debug msg="Skipping endpoint *.example.com 300 IN CNAME  internal-alb-testing.us-west-1.elb.amazonaws.com [] because owner id does not match, found: \"\", required: \"externaldns\""
level=debug msg="Refreshing zones list cache"
level=debug msg="Considering zone: /hostedzone/123123123123 (domain: example.com)"
level=info msg="All records are already up to date"
level=debug msg="Refreshing zones list cache"
level=debug msg="Considering zone: /hostedzone/123123123123 (domain: example.com)"
level=info msg="All records are already up to date"

Solution

  • The WAF settings on the ALB were blocking the connection, so needed to add the below flags to the AWS Load Balancer Controller:

    --enable-waf=false
    --enable-wafv2=false