-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
WIP Always create AAAA alias records in route53 #3605
Conversation
d453731
to
620ab61
Compare
@johngmyers this will 1) change default to use dualstack and therefore 2) roughly double requests to AWS route53 with its "nice" API rate limits (see also #3402). |
One should not have to opt-in to expected, correct behavior. #3402 should address rate limiting, especially if it defaults to enabled. At worst, this should be opt-out, though that will further increase complexity and the number of needed test cases. |
620ab61
to
b3c998e
Compare
Also, why does a mere factor of 1.5 deserve such complexity? |
@johngmyers in general I agree with you! |
/ok-to-test |
I'm going to experiment with implementing this using |
b3c998e
to
12e27c8
Compare
The I don't think registries should be creating ownership records for endpoints that were added by I'm also thinking of writing a dynamodb registry. |
To avoid creating ownership records for the AAAA alias records, we could:
This wouldn't handle the case where the A record is deleted but the AAAA and TXT were not. To handle that case, the new interface method would have to take and endpointName, type, and possibly labels and return a set of additional endpointNames and types that the labels would apply to. |
/ok-to-test |
12e27c8
to
e553562
Compare
It is open source. |
not everyone can do this and fix the problem but still need the fix for their systems. So +1 from my site, I also need it. |
@johngmyers: The following test failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
The Kubernetes project currently lacks enough contributors to adequately respond to all PRs. This bot triages PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
The Kubernetes project currently lacks enough active contributors to adequately respond to all PRs. This bot triages PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten |
/remove-lifecycle rotten |
Hi there, I would like to push forward this fix, so I'm trying to raise a PR based on this one but it's not clear to me what's still pending and how to resolve the conflicts that this one has once you rebase from original/main, so I would need some heklp to go through them. For instance, changes like the ones here #3910 gets into conflict whit what had been changed in this PR. Thanks in advance! 🙂 |
Is this change scheduled? I still have to go around manually creating AAAA records pointing to my NLBs, and IPv4 has run out quite a while ago. |
The Kubernetes project currently lacks enough contributors to adequately respond to all PRs. This bot triages PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
Any progress on this? |
@mloiseleur @Raffo sorry to bother you guys, but i saw that you have been implicitly part of the discussion in #4511. I am eager to adopt/reopen the PR so we can move forward, wdyt about this approach? It actually resolves your past concern with vendor/provider specific labels in the core of the project and resolves the outstanding problem of missing dualstack capabilities for NLBs. |
@project0 long time no see :). Sure, as long as you address concerns expressed in #4511 (comment), it would be great to move forward on this subject. |
@project0 just wondered if you are still able to have a go at working on this? In the absence of anyone else trying to get this PR over the line, I might have a go myself - I'll be coming in from 0 background of working on external DNS but really would like this feature working |
OK so I've made a start. Just to let you know in case you don't want to work side-by-side unknowingly. I am feeling a bit more confident now I've actually made a start as well. I hope to raise a PR within a couple of days BUT (biggest BUT ever) it probably wont be merge-able for a while. I'll need to run tests, run it in our cluster to see if it behaves, try and understand why this PR never made it over the line, etc. I hope others will be able to help out once the PR is raised. |
@rlees85 the change itself is pretty simple, but it turned out updating the tests is the painful part (they way there are built, it is super hard to debug and update them) :-(. |
superseded by #5111 |
@mloiseleur: Closed this PR. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Description
Always creates both A and AAAA alias records in Route53.
When a Route53 AAAA alias record points to an IPv4-only resource, AAAA DNS queries return zero records. This is the same behavior as when there is no AAAA alias record but is an A alias record. For this reason, there is no rational reason to not also create the AAAA alias record.
Adds logic for reconciling discrepancies between the A and AAAA alias records, including when only one of the two is present. In some situations, this reconciliation will take two iterations of the reconciliation algorithm to converge, as the Route53 provider does not store all information about the AAAA record with the discrepancy in the Endpoint. Encoding this information in the provider-specific annotations would result in a lot of complicated code for a rare edge case. An alternative would be to add an opaque provider-specific
interface{}
toEndpoint
so that the Route53 provider could store theResourceRecordSet
directly.This PR is an alternative to #2050.
Fixes #3707
Checklist