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

Drop support for metadata records #403

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

MartinWeindel
Copy link
Member

@MartinWeindel MartinWeindel commented Dec 10, 2024

What this PR does / why we need it:
The creation and management of metadata DNS records holding the owner identifier for each DNSEntry has been removed.
These metadata DNS records will be removed automatically. To avoid running into rate limits, this removals will happen only during updates or with low batch size during the periodic reconciliation.
Depending on the size of the hosted zone the cleanup can take multiple days for very large hosted zone.
To ensure the correct work of the cleanup of these special TXT DNS records, the owner identifier provided via the --identifier command line option and the DNSOwner custom resources must still be provided.

These identifiers are only used for cleanup, but not for any other purposes.
These ownership information was used to several purposes:

  • detect conflicts (i.e. same DNS record written by multiple dns-controller-manager instances)
  • handing over responsibility of DNS records from one to another controller instance
  • detection of orphan DNS records and their cleanup

Please note that these edge cases are not supported anymore.
For handing over responsibility of DNS record, please use the dns.gardener.cloud/ignore=true annotation on DNSEntries or the annotated source objects (like Ingress, Service, etc.)

Which issue(s) this PR fixes:
Fixes #

Special notes for your reviewer:

Release note:

The creation and management of metadata DNS records holding the owner identifier for each `DNSEntry` has been removed. These metadata DNS records will be removed automatically.
For more details, please see https://github.com/gardener/external-dns-management/tree/master?tab=readme-ov-file#important-note-support-for-owner-identifiers-is-discontinued

@MartinWeindel MartinWeindel requested a review from a team as a code owner December 10, 2024 08:03
@gardener-robot gardener-robot added needs/review Needs review size/xl Size of pull request is huge (see gardener-robot robot/bots/size.py) needs/second-opinion Needs second review by someone else labels Dec 10, 2024
@gardener-robot-ci-2 gardener-robot-ci-2 added the reviewed/ok-to-test Has approval for testing (check PR in detail before setting this label because PR is run on CI/CD) label Dec 10, 2024
@gardener-robot-ci-3 gardener-robot-ci-3 added needs/ok-to-test Needs approval for testing (check PR in detail before setting this label because PR is run on CI/CD) and removed reviewed/ok-to-test Has approval for testing (check PR in detail before setting this label because PR is run on CI/CD) labels Dec 10, 2024
@gardener-robot-ci-3 gardener-robot-ci-3 added the reviewed/ok-to-test Has approval for testing (check PR in detail before setting this label because PR is run on CI/CD) label Dec 10, 2024
@gardener-robot-ci-3 gardener-robot-ci-3 removed the reviewed/ok-to-test Has approval for testing (check PR in detail before setting this label because PR is run on CI/CD) label Dec 10, 2024
@gardener-robot-ci-1 gardener-robot-ci-1 added the reviewed/ok-to-test Has approval for testing (check PR in detail before setting this label because PR is run on CI/CD) label Dec 10, 2024
@gardener-robot-ci-3 gardener-robot-ci-3 removed the reviewed/ok-to-test Has approval for testing (check PR in detail before setting this label because PR is run on CI/CD) label Dec 10, 2024
@marc1404 marc1404 changed the title Drop support for meta data records Drop support for metadata records Dec 10, 2024
Copy link
Member

@marc1404 marc1404 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work and thanks for the well-structured PR! I have an initial set of suggestions from jumping through the commits :)

pkg/dns/provider/changemodel.go Outdated Show resolved Hide resolved
Options *FactoryOptions
Factory DNSHandlerFactory
RemoteAccessConfig *embed.RemoteAccessServerConfig
MaxMetadataRecordDeletionsPerReconciliation int
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Due to the indentation and in comparison to the otherwise relatively brief option names it reminded me of:

😛

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, this field will only exist for one or two releases and is only used in a few places.
Suggestions for a shorter name without loss of much information are welcome!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't mean to criticize the length of the field name :) I think it's totally fair and appropriate :D As otherwise stated, I usually prefer verbose, clear names but I'll take any chance that I can get to bring up my favorite Welsh train station 🚂

pkg/dns/provider/zonecache.go Outdated Show resolved Hide resolved
pkg/dns/dnsset.go Outdated Show resolved Hide resolved
@@ -640,6 +648,7 @@ Flags:
--compound.infoblox-dns.ratelimiter.enabled enables rate limiter for DNS provider requests of controller compound
--compound.infoblox-dns.ratelimiter.qps int maximum requests/queries per second of controller compound
--compound.lock-status-check-period duration interval for dns lock status checks of controller compound
--compound.max-metadata-record-deletions-per-reconciliation int maximum number of metadata owner records that can be deleted per zone reconciliation of controller compound
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably irrelevant: I'm only mentioning it since the options list is so neatly formatted already: Strictly speaking, all lines would have to be indented again 🙃

README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
@gardener-robot-ci-1 gardener-robot-ci-1 added the reviewed/ok-to-test Has approval for testing (check PR in detail before setting this label because PR is run on CI/CD) label Dec 10, 2024
@gardener-robot-ci-2 gardener-robot-ci-2 removed the reviewed/ok-to-test Has approval for testing (check PR in detail before setting this label because PR is run on CI/CD) label Dec 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs/ok-to-test Needs approval for testing (check PR in detail before setting this label because PR is run on CI/CD) needs/review Needs review needs/second-opinion Needs second review by someone else size/xl Size of pull request is huge (see gardener-robot robot/bots/size.py)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants