-
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
fix(dedup): records with different type are not duplicates #4889
base: master
Are you sure you want to change the base?
Conversation
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
The committers listed above are authorized under a signed CLA. |
Welcome @jtszalay! |
Hi @jtszalay. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. 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. |
/ok-to-test |
Hi! If its ready then why it it waiting so logn for merge? |
This is could be outsude of the scope of that pull request, but could we add a null check? The null check will help to avoid external-dns crashlooping. We could of course rely on providers, but just a safety check.
|
@@ -45,7 +45,7 @@ func (ms *dedupSource) Endpoints(ctx context.Context) ([]*endpoint.Endpoint, err | |||
} | |||
|
|||
for _, ep := range endpoints { | |||
identifier := ep.DNSName + " / " + ep.SetIdentifier + " / " + ep.Targets.String() | |||
identifier := ep.RecordType + " / " + ep.DNSName + " / " + ep.SetIdentifier + " / " + ep.Targets.String() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Other options could be
identifier := strings.Join([]string{ep.DNSName, ep.SetIdentifier, ep.Targets.String()}, " / ")
or
identifier := fmt.Sprintf("%s / %s / %s", ep.DNSName, ep.SetIdentifier, ep.Targets.String())
Do we know why there are empty spaces " / "
? Just a question?
}, | ||
{ | ||
"two endpoints with same dnsname, different record type, and same target return two endpoints", | ||
[]*endpoint.Endpoint{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about case when one endpoint have no RecordType type and another one does?
Description
RecordType is not included in deduplication key and therefore records with same name, setid, and targets but with different recordtype currently are treated as duplicates.
Fixes #4888
Checklist
^ I'm not sure of any documentation to update?