Skip to content

ingressClassName alb does not set aws-weight #5775

@FernandoMiguel

Description

@FernandoMiguel

What happened:
created an ingress with aws-weight

What you expected to happen:
a SIMPLE record was created

How to reproduce it (as minimally and precisely as possible):

kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
  annotations:
    alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:123456789:certificate/xpto,arn:aws:acm:us-east-1:123456789:certificate/xpto
    alb.ingress.kubernetes.io/group.name: public
    alb.ingress.kubernetes.io/healthcheck-path: /
    alb.ingress.kubernetes.io/load-balancer-attributes: access_logs.s3.enabled=true,access_logs.s3.bucket=logs
    alb.ingress.kubernetes.io/load-balancer-name: pub-app
    alb.ingress.kubernetes.io/scheme: internal
    alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy-TLS13-1-2-Res-2021-06
    alb.ingress.kubernetes.io/subnets: subnet-1234567
    alb.ingress.kubernetes.io/target-type: ip
    service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: preserve_client_ip.enabled=true
    external-dns.alpha.kubernetes.io/aws-weight: "200"
  finalizers:
  - group.ingress.k8s.aws/public
spec:
  ingressClassName: alb
  rules:
  - host: fernando.test.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: http-test-application
            port:
              number: 80
status:
  loadBalancer:
    ingress:
    - hostname: internal-app-123456789.us-east-1.elb.amazonaws.com
time="2025-08-28T11:54:17Z" level=debug msg="Endpoints generated from ingress: application-alpha/application-alpha-cts-alpha-ue1-39: [fernando.test.example.com 0 IN CNAME internal-app-123456789.us-east-1.elb.amazonaws.com [{aws/weight 200}]]"
time="2025-08-28T11:54:17Z" level=debug msg="Modifying endpoint: fernando.test.example.com 0 IN CNAME internal-app-123456789.us-east-1.elb.amazonaws.com [{aws/weight 200}], setting alias=true"
time="2025-08-28T11:54:17Z" level=debug msg="Adding fernando.test.example.com. to zone test.example.com. [Id: /hostedzone/123456789]"
time="2025-08-28T11:54:17Z" level=debug msg="Adding _externaldns.cname-fernando.test.example.com. to zone test.example.com. [Id: /hostedzone/123456789]"
time="2025-08-28T11:54:17Z" level=info msg="Desired change: CREATE _externaldns.cname-fernando.test.example.com TXT" profile=default zoneID=/hostedzone/123456789 zoneName=test.example.com.
time="2025-08-28T11:54:17Z" level=info msg="Desired change: CREATE fernando.test.example.com A" profile=default zoneID=/hostedzone/123456789 zoneName=test.example.com.
-----
time="2025-08-28T11:55:18Z" level=debug msg="Endpoints generated from ingress: application-alpha/application-alpha-cts-alpha-ue1-39: [fernando.test.example.com 0 IN CNAME   [{aws/weight 200}]]"
time="2025-08-28T11:55:18Z" level=debug msg="Modifying endpoint: fernando.test.example.com 0 IN CNAME internal-app-123456789.us-east-1.elb.amazonaws.com [{aws/weight 200}], setting alias=true"
time="2025-08-28T11:55:18Z" level=debug msg="Adding fernando.test.example.com. to zone test.example.com. [Id: /hostedzone/123456789]"
time="2025-08-28T11:55:18Z" level=debug msg="Adding _externaldns.cname-fernando.test.example.com. to zone test.example.com. [Id: /hostedzone/123456789]"
time="2025-08-28T11:55:18Z" level=debug msg="Adding fernando.test.example.com. to zone test.example.com. [Id: /hostedzone/123456789]"
time="2025-08-28T11:55:18Z" level=debug msg="Adding _externaldns.cname-fernando.test.example.com. to zone test.example.com. [Id: /hostedzone/123456789]"
time="2025-08-28T11:55:18Z" level=info msg="Desired change: DELETE _externaldns.cname-fernando.test.example.com TXT" profile=default zoneID=/hostedzone/123456789 zoneName=test.example.com.
time="2025-08-28T11:55:18Z" level=info msg="Desired change: DELETE fernando.test.example.com A" profile=default zoneID=/hostedzone/123456789 zoneName=test.example.com.
time="2025-08-28T11:55:18Z" level=info msg="Desired change: CREATE _externaldns.cname-fernando.test.example.com TXT" profile=default zoneID=/hostedzone/123456789 zoneName=test.example.com.
time="2025-08-28T11:55:18Z" level=info msg="Desired change: CREATE fernando.test.example.com A" profile=default zoneID=/hostedzone/123456789 zoneName=test.example.com.

after the initial creation of the A record with Simple Routing policy, every 30 sec, eDNS will delete the record and recreate it again, cause it does not match the expected routing policy.

Anything else we need to know?:
when using ingressClassName: nginx this works fine. but for ingressClassName: alb, we see this issue.

Environment:

  • External-DNS version (use external-dns --version): app.kubernetes.io/version: 0.18.0
  • DNS provider: aws route 53
  • Others: K8s Rev: v1.31.10-eks-931bdca
    spec:
      containers:
      - name: external-dns
        image: registry.k8s.io/external-dns/external-dns:v0.18.0
        args:
        - --log-level=debug
        - --log-format=text
        - --interval=1m
        - --source=service
        - --source=ingress
        - --policy=sync
        - --registry=txt
        - --txt-owner-id=alpha-ue1
        - --txt-prefix=_externaldns.
        - --managed-record-types=A
        - --managed-record-types=CNAME
        - --managed-record-types=TXT
        - --provider=aws
        - --zone-id-filter=123456789
        - --zone-id-filter=987654321
        - --zone-id-filter=123498765

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugCategorizes issue or PR as related to a bug.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions