Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

external-dns annotation is not working properly and trying to create existing route53 record #4805

Open
Neha-Anand01 opened this issue Oct 14, 2024 · 0 comments
Labels
kind/bug Categorizes issue or PR as related to a bug.

Comments

@Neha-Anand01
Copy link

We are trying to achieve NLB sharding for blue-green deployment strategy.

purple.eks1-dev.aws.cloud.co.uk -> A record -> weighted policy ->100 -> greenservice.eks1-dev.aws.cloud.co.uk -> Ingress gateway NLB
purple.eks1-dev.aws.cloud.co.uk -> A record ->Weighted policy ->0 ->blueservice.eks1-dev.aws.cloud.co.uk -> Ingress gateway NLB

What happened: While creating ingress gateway and virtual service we added below annotation to only sync or create hostname "greenservice.eks1-dev.aws.cloud.co.uk" and exclude other host details mentioned into same yamls file.

Annotations:
external-dns.alpha.kubernetes.io/hostname: greenservice.eks1-dev.aws.cloud.co.uk
external-dns.alpha.kubernetes.io/ingress-hostname-source: annotation-only

Spec:
rules:
- host: greenservice.eks1-dev.aws.cloud.co.uk
- host: purple.eks1-dev.aws.cloud.co.uk

Already existing Route 53 record:
purple.eks1-dev.aws.cloud.co.uk -> A record -> weighted policy ->100
purple.eks1-dev.aws.cloud.co.uk -> A record ->Weighted policy ->0

But it is still trying to sync and create purple.eks1-dev.aws.cloud.co.uk record, due to that external-dns pod is failing with CrashLoopBackOff error

level=error msg="Failed submitting change (error: InvalidChangeBatch: [RRSet with DNS name purple.eks1-dev.aws.cloud.co.uk., type A cannot be crea │
│ ted as other RRSets exist with the same name and type., Tried to create resource record set [name='purple-cname.eks1-dev.aws.cloud.co.uk.', type='TXT'] but it already e │
│ xists, Tried to create resource record set [name='purple-cname.eks1-dev.aws.cloud.co.uk', type='TXT'] but it already exists]\n\tstatus code: 400, request id: 9c831bb7-6b9d-4 │
│ 53f-87b0-126ee11066e3), it will be retried in a separate change batch in the next iteration

What you expected to happen:

Expected that it will exclude purple.eks1-dev.aws.cloud.co.uk record from filtering and only create greenservice.eks1-dev.aws.cloud.co.uk without any external-dns pod failures.

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

  1. Created a weighted CNAME record from route 53 console. It will ask for a Record ID.
  2. Create an ingress gateway with 'hosts' using the same name as the CNAME in step 1.

Anything else we need to know?:

Environment:

  • External-DNS version (use external-dns --version): 0.14.0
  • DNS provider: AWS
  • Others:
@Neha-Anand01 Neha-Anand01 added the kind/bug Categorizes issue or PR as related to a bug. label Oct 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug.
Projects
None yet
Development

No branches or pull requests

1 participant