Skip to content

feat: add support for PTR, MX and DS record types#6337

Open
castorw wants to merge 2 commits intokubernetes-sigs:masterfrom
castorw:support-record-types-ptr-mx-ds
Open

feat: add support for PTR, MX and DS record types#6337
castorw wants to merge 2 commits intokubernetes-sigs:masterfrom
castorw:support-record-types-ptr-mx-ds

Conversation

@castorw
Copy link
Copy Markdown

@castorw castorw commented Apr 1, 2026

What does it do ?

This PR allows use of the following record types:

  • PTR - Reverse IP mapping to forward records,
  • MX - Mail server record for domain,
  • DS - Delegations signer (used to establish a chain of trust for DNSSEC)

Motivation

While setting up external-dns as provisioner for reverse zones I noticed that the controller gets in a conflict loop while trying to create records which already exist. It creates records and then in the next loop attempts to create these again. This is caused by a simple omission of allowed record types in the recordfilter.go file. This will allow users to manage wider range of records.

More

  • Yes, this PR title follows Conventional Commits
  • Yes, I added unit tests
  • Yes, I updated end user documentation accordingly
    • not much to update as the docs basically states that this should work

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign ivankatliarchuk for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added provider Issues or PRs related to a provider cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Apr 1, 2026
@k8s-ci-robot k8s-ci-robot requested review from szuecs and vflaux April 1, 2026 21:22
@k8s-ci-robot k8s-ci-robot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Apr 1, 2026
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Hi @castorw. 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 /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work.

Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

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.

@k8s-ci-robot k8s-ci-robot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Apr 1, 2026
@ivankatliarchuk
Copy link
Copy Markdown
Member

I think you need to provide https://github.com/kubernetes-sigs/external-dns/blob/master/docs/contributing/bug-report.md.

The only record i'm not using is DS, rest are working fine. So not too clear what the problem is at the moment.

@castorw
Copy link
Copy Markdown
Author

castorw commented Apr 1, 2026

I am working with AWS provider, which does not load all record types due to the following call stack:

  1. https://github.com/kubernetes-sigs/external-dns/blob/master/provider/aws/aws.go#L526
  2. https://github.com/kubernetes-sigs/external-dns/blob/master/provider/aws/aws.go#L1450
  3. https://github.com/kubernetes-sigs/external-dns/blob/master/provider/recordfilter.go#L21

Therefore using supported record types defined in provider package, which do not include PTR, MX or DS types. This causes the controller to write these records to Route53 and in the next run it attempts to write them again which causes errors as the records already exist. Caused by the fact that the records are filtered out during planning read from Route53.

@castorw
Copy link
Copy Markdown
Author

castorw commented Apr 1, 2026

Other option would be to allow these only for Route53 provider here. But not sure if there is a reason for these types not being allowed globally.

@castorw
Copy link
Copy Markdown
Author

castorw commented Apr 8, 2026

/assign @ivankatliarchuk

@castorw
Copy link
Copy Markdown
Author

castorw commented Apr 8, 2026

@ivankatliarchuk Do you think we can move forward with this?

@ivankatliarchuk
Copy link
Copy Markdown
Member

I think you need to provide https://github.com/kubernetes-sigs/external-dns/blob/master/docs/contributing/bug-report.md.

The only record i'm not using is DS, rest are working fine. So not too clear what the problem is at the moment.

Still w8 to better understand the problem and risks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. provider Issues or PRs related to a provider size/S Denotes a PR that changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants