Skip to content

docs(aws): scoping the IAM policy to explicitely defined Route53 zones#5663

Merged
k8s-ci-robot merged 5 commits intokubernetes-sigs:masterfrom
crtr109:master
Sep 5, 2025
Merged

docs(aws): scoping the IAM policy to explicitely defined Route53 zones#5663
k8s-ci-robot merged 5 commits intokubernetes-sigs:masterfrom
crtr109:master

Conversation

@crtr109
Copy link
Copy Markdown
Contributor

@crtr109 crtr109 commented Jul 19, 2025

What does it do ?

It makes end users to pass a zone/zones instead of allowing the policy to edit all zones hosted in an AWS account.

Motivation

Applying the principle of least privilege is one of the fundamental security best practices. It reduces blast radius and makes permissions more clear and auditable. It's also recommended by AWS https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege

More

  • [x ] Yes, this PR title follows Conventional Commits
  • Yes, I added unit tests
  • Yes, I updated end user documentation accordingly

@linux-foundation-easycla
Copy link
Copy Markdown

linux-foundation-easycla bot commented Jul 19, 2025

CLA Signed

The committers listed above are authorized under a signed CLA.

@k8s-ci-robot k8s-ci-robot added the cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. label Jul 19, 2025
@k8s-ci-robot k8s-ci-robot requested a review from mloiseleur July 19, 2025 13:25
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Welcome @crtr109!

It looks like this is your first PR to kubernetes-sigs/external-dns 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes-sigs/external-dns has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Hi @crtr109. 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 needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. and removed cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. labels Jul 19, 2025
@ivankatliarchuk
Copy link
Copy Markdown
Member

@crtr109
Copy link
Copy Markdown
Contributor Author

crtr109 commented Jul 21, 2025

hey @ivankatliarchuk

example from the link you provided implements filtering based on hostnames, the same way you can do from the external-dns side using the --domain-filter option

however the value for aws route53 resource remains *, meaning all zones that are hosted in that account
example.com can be hosted in one account as both private and public zones and access matrices to the resources can differ

my suggestion is a simple implementation of defense in depth approach, i.e having as much protective layers as possible

@mloiseleur
Copy link
Copy Markdown
Collaborator

@crtr109 thanks for your improvement on "route53:ListResourceRecordSets" and "route53:ListTagsForResources". It provides better security and makes sense.

For the default, I prefer to keep it with the *. It's better for userXP to have ready-to-go YAML. There is a clear invitation, with the note just above, to follow least privilege and set the expected zone id.

=> Would you please rework this PR accordingly ?

@crtr109
Copy link
Copy Markdown
Contributor Author

crtr109 commented Jul 27, 2025

hey @mloiseleur

are you suggesting to keep the default policy as it is to make it more beginner friendly but tighten down the second example which implements ABAC?

if i understood you correctly yes i can update the PR

otherwise please elaborate on how it should be reworked

@mloiseleur
Copy link
Copy Markdown
Collaborator

@crtr109 I've done some suggestion on the PR. I suggest also to add on L78 something like this:

On production, it's recommended to replace wildcard (*) with only explicit Hosted Zone IDs. It reduces blast radius and makes permissions more clear and auditable.

crtr109 and others added 2 commits July 30, 2025 17:24
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
@crtr109
Copy link
Copy Markdown
Contributor Author

crtr109 commented Jul 30, 2025

hey @mloiseleur

thank you for clarification

i've applied the suggested changes and added a section called Further improvements , please take a look

"route53:ChangeResourceRecordSets"
"route53:ChangeResourceRecordSets",
"route53:ListResourceRecordSets",
"route53:ListTagsForResources"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This will not work with service specific conditions.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

ListTagsForResources will not work as it will require healthcheck resource id as well.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

should then ListTagsForResources be placed under a separate allow statement?
this way it will possible to fine tune it later passing either zone(s) or health check(s) to it

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Hard to say. IAM is tricky. I just pointed that is not going to work, probably if you have access to AWS, worth to validate a policy.

Copy link
Copy Markdown
Contributor Author

@crtr109 crtr109 Aug 3, 2025

Choose a reason for hiding this comment

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

i do have a live cluster but unfortunately without health checks configured

i'm also not really sure how to test it since i've never come across that functionality to be honest
is that the relevant part in the docs? https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md#associating-dns-records-with-healthchecks
if you can give me more hints on how to properly test i will do it

so for ListTagsForResources my suggestion will be the following:

      "Effect": "Allow",
      "Action": [
        "route53:ListTagsForResources"
      ],
      "Resource": [
        "arn:aws:route53:::hostedzone/*",
         "arn:aws:route53:::healthcheck/*",
      ]

this way if a user wants to make the policy tighter he has all the needed info to do it

please let me know how to proceed

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

yeah arn:aws:route53:::healthcheck/* is nice to have, but I'm not using it as well, so not sure what are the exact requirement are, and how to lock them down. Here is some helper https://www.awsiamactions.io/?o=ListTagsForResources

Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
@ivankatliarchuk
Copy link
Copy Markdown
Member

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Aug 1, 2025
breaking up lines to make it pass markdown linting
@ivankatliarchuk
Copy link
Copy Markdown
Member

I think we could further improve the AWS IAM docs in follow-ups

Currently arn:aws:route53:::healthcheck/* and similar resource conditions are missing. As well there is an issue #5773

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Sep 5, 2025
@mloiseleur mloiseleur changed the title docs: scoping the AWS IAM policy to explicitely defined AWS Route53 zones docs(aws): scoping the IAM policy to explicitely defined Route53 zones Sep 5, 2025
@mloiseleur
Copy link
Copy Markdown
Collaborator

/approve

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: mloiseleur

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

The pull request process is described 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 the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 5, 2025
@k8s-ci-robot k8s-ci-robot merged commit 72b1f30 into kubernetes-sigs:master Sep 5, 2025
14 checks passed
JesusMtnez pushed a commit to JesusMtnez/homelab that referenced this pull request Dec 1, 2025
…o v0.20.0 (#869)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [registry.k8s.io/external-dns/external-dns](https://github.com/kubernetes-sigs/external-dns) | minor | `v0.19.0` -> `v0.20.0` |

---

### Release Notes

<details>
<summary>kubernetes-sigs/external-dns (registry.k8s.io/external-dns/external-dns)</summary>

### [`v0.20.0`](https://github.com/kubernetes-sigs/external-dns/releases/tag/v0.20.0)

[Compare Source](kubernetes-sigs/external-dns@v0.19.0...v0.20.0)

#### 🚀 Features

- feat: add new flags to allow migration of OwnerID by [@&#8203;troll-os](https://github.com/troll-os) in [#&#8203;4823](kubernetes-sigs/external-dns#4823)
- feat(annotations): add custom annotation prefix support for split horizon DNS by [@&#8203;lexfrei](https://github.com/lexfrei) in [#&#8203;5889](kubernetes-sigs/external-dns#5889)
- feat(aws): add ap-southeast-6 region by [@&#8203;rhysmdnz](https://github.com/rhysmdnz) in [#&#8203;5812](kubernetes-sigs/external-dns#5812)
- feat(chart): Release for v0.19.0 by [@&#8203;stevehipwell](https://github.com/stevehipwell) in [#&#8203;5819](kubernetes-sigs/external-dns#5819)
- feat(cli): add Cobra binder and backend switch by [@&#8203;TobyTheHutt](https://github.com/TobyTheHutt) in [#&#8203;5820](kubernetes-sigs/external-dns#5820)
- feat(cli): migrate kingpin to cobra - dual parity by [@&#8203;TobyTheHutt](https://github.com/TobyTheHutt) in [#&#8203;5836](kubernetes-sigs/external-dns#5836)
- feat(coredns): add annotations for groups by [@&#8203;farodin91](https://github.com/farodin91) in [#&#8203;5842](kubernetes-sigs/external-dns#5842)
- feat(coredns): pass context to etcd client by [@&#8203;farodin91](https://github.com/farodin91) in [#&#8203;5915](kubernetes-sigs/external-dns#5915)
- feat(provider/cloudflare): add support for tags by [@&#8203;nkhl99](https://github.com/nkhl99) in [#&#8203;5862](kubernetes-sigs/external-dns#5862)
- feat(source): add min-ttl support by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5641](kubernetes-sigs/external-dns#5641)
- feat(source/f5-virtual-server): add host aliases support for Virtual … by [@&#8203;shkarface](https://github.com/shkarface) in [#&#8203;5745](kubernetes-sigs/external-dns#5745)

#### 🐛 Bug fixes

- fix(cloudflare): infinite reconciliation loop with cloudflare-record-comment flag by [@&#8203;vflaux](https://github.com/vflaux) in [#&#8203;5828](kubernetes-sigs/external-dns#5828)
- fix: cloudflare softError failedZones by [@&#8203;nissessenap](https://github.com/nissessenap) in [#&#8203;5899](kubernetes-sigs/external-dns#5899)
- fix(controller): panic in OCI provider build by [@&#8203;vflaux](https://github.com/vflaux) in [#&#8203;5877](kubernetes-sigs/external-dns#5877)
- fix(coredns): debug message on labels update by [@&#8203;bachorp](https://github.com/bachorp) in [#&#8203;5789](kubernetes-sigs/external-dns#5789)
- fix(deps): bump openshift with gateway-api by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5942](kubernetes-sigs/external-dns#5942)
- fix(endpoint): debug message when owner label is missing by [@&#8203;bachorp](https://github.com/bachorp) in [#&#8203;5788](kubernetes-sigs/external-dns#5788)
- fix(endpoint): deduplicate targets by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5805](kubernetes-sigs/external-dns#5805)
- fix(endpoint/source) Allow '.' in TXT Records by [@&#8203;onelapahead](https://github.com/onelapahead) in [#&#8203;5844](kubernetes-sigs/external-dns#5844)
- fix(gen/metrics): deduplicate generated in metrics.md by [@&#8203;vflaux](https://github.com/vflaux) in [#&#8203;5837](kubernetes-sigs/external-dns#5837)
- fix(service): rollback nodeinformer for addevent handler by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5941](kubernetes-sigs/external-dns#5941)
- fix(txt-register): reset existingTXTs even when ApplyChanges is skipped to avoid stale TXT records by [@&#8203;u-kai](https://github.com/u-kai) in [#&#8203;5897](kubernetes-sigs/external-dns#5897)

#### 📝 Documentation

- docs(advanced): configuration precedence by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5871](kubernetes-sigs/external-dns#5871)
- docs(aws): add missing supported DNS record types in Route53 ABAC  by [@&#8203;TobyTheHutt](https://github.com/TobyTheHutt) in [#&#8203;5839](kubernetes-sigs/external-dns#5839)
- docs(aws): scoping the IAM policy to explicitely defined Route53 zones by [@&#8203;crtr109](https://github.com/crtr109) in [#&#8203;5663](kubernetes-sigs/external-dns#5663)
- docs(ci): improve release note template by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5791](kubernetes-sigs/external-dns#5791)
- docs: clarify hostname annotation behavior by [@&#8203;PseudoResonance](https://github.com/PseudoResonance) in [#&#8203;5912](kubernetes-sigs/external-dns#5912)
- docs(contributing): add reference to developer documentation by [@&#8203;lexfrei](https://github.com/lexfrei) in [#&#8203;5923](kubernetes-sigs/external-dns#5923)
- docs(core-dns): update tutorial by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5926](kubernetes-sigs/external-dns#5926)
- docs: fix mkdocs build by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5795](kubernetes-sigs/external-dns#5795)
- docs(gateway-api): clarify annotation placement for sources by [@&#8203;lexfrei](https://github.com/lexfrei) in [#&#8203;5918](kubernetes-sigs/external-dns#5918)
- docs(myra): add info about protection option and docker image by [@&#8203;armaaar](https://github.com/armaaar) in [#&#8203;5879](kubernetes-sigs/external-dns#5879)
- docs(release): update release docs by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5893](kubernetes-sigs/external-dns#5893)
- docs(tutorials): import existing DNS records into ExternalDNS by [@&#8203;naavveenn](https://github.com/naavveenn) in [#&#8203;5811](kubernetes-sigs/external-dns#5811)
- docs(txt-registry): improve formatting and examples for apex record by [@&#8203;u-kai](https://github.com/u-kai) in [#&#8203;5863](kubernetes-sigs/external-dns#5863)
- docs(webhook): add volcengine provider to readme by [@&#8203;firemiles](https://github.com/firemiles) in [#&#8203;5866](kubernetes-sigs/external-dns#5866)

#### 📦 Others

- Build(tool) remove vacuum by [@&#8203;szuecs](https://github.com/szuecs) in [#&#8203;5955](kubernetes-sigs/external-dns#5955)
- chore(ci): fix releaser script by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5953](kubernetes-sigs/external-dns#5953)
- chore(ci): speed-up & coveralls by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5870](kubernetes-sigs/external-dns#5870)
- chore(cloudflare): migrate `DeleteCustomHostname()` to new lib by [@&#8203;vflaux](https://github.com/vflaux) in [#&#8203;5880](kubernetes-sigs/external-dns#5880)
- chore(cloudflare): migrate DeleteDNSRecord() to new lib by [@&#8203;vflaux](https://github.com/vflaux) in [#&#8203;5780](kubernetes-sigs/external-dns#5780)
- chore(cloudflare): migrate ListRecords() to new lib by [@&#8203;vflaux](https://github.com/vflaux) in [#&#8203;5778](kubernetes-sigs/external-dns#5778)
- chore(cloudflare): migrate UpdateDNSRecord() to new lib by [@&#8203;vflaux](https://github.com/vflaux) in [#&#8203;5781](kubernetes-sigs/external-dns#5781)
- chore(controller-gen): move tools under go tools by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5878](kubernetes-sigs/external-dns#5878)
- chore(deps): bump renovatebot/github-action from 43.0.10 to 43.0.11 in the dev-dependencies group by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5823](kubernetes-sigs/external-dns#5823)
- chore(deps): bump renovatebot/github-action from 43.0.11 to 43.0.12 in the dev-dependencies group by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5840](kubernetes-sigs/external-dns#5840)
- chore(deps): bump renovatebot/github-action from 43.0.12 to 43.0.13 in the dev-dependencies group by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5856](kubernetes-sigs/external-dns#5856)
- chore(deps): bump renovatebot/github-action from 43.0.13 to 43.0.14 in the dev-dependencies group by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5874](kubernetes-sigs/external-dns#5874)
- chore(deps): bump renovatebot/github-action from 43.0.14 to 43.0.15 in the dev-dependencies group by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5890](kubernetes-sigs/external-dns#5890)
- chore(deps): bump renovatebot/github-action from 43.0.9 to 43.0.10 in the dev-dependencies group by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5797](kubernetes-sigs/external-dns#5797)
- chore(deps): bump the dev-dependencies group across 1 directory with 15 updates by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5952](kubernetes-sigs/external-dns#5952)
- chore(deps): bump the dev-dependencies group across 1 directory with 36 updates by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5943](kubernetes-sigs/external-dns#5943)
- chore(deps): bump the dev-dependencies group across 1 directory with 5 updates by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5940](kubernetes-sigs/external-dns#5940)
- chore(deps): bump the dev-dependencies group across 1 directory with 9 updates by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5949](kubernetes-sigs/external-dns#5949)
- chore(deps): bump the dev-dependencies group with 2 updates by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5895](kubernetes-sigs/external-dns#5895)
- chore(deps): bump the dev-dependencies group with 2 updates by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5946](kubernetes-sigs/external-dns#5946)
- chore(deps): bump the dev-dependencies group with 3 updates by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5806](kubernetes-sigs/external-dns#5806)
- chore(lint): configure goconst linter by [@&#8203;lexfrei](https://github.com/lexfrei) in [#&#8203;5929](kubernetes-sigs/external-dns#5929)
- chore(owners): update reviewers by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5925](kubernetes-sigs/external-dns#5925)
- chore(pihole): reduce cyclometic complexity of TestListRecords by [@&#8203;AndrewCharlesHay](https://github.com/AndrewCharlesHay) in [#&#8203;5802](kubernetes-sigs/external-dns#5802)
- chore(release): updates kustomize & docs with v0.19.0 by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5792](kubernetes-sigs/external-dns#5792)
- chore: upgrade ExternalDNS to go v1.25 and golangci-lint v2.5 by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5869](kubernetes-sigs/external-dns#5869)
- ci(linter): add gochecknoinits by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5911](kubernetes-sigs/external-dns#5911)
- ci(linter): add go-critic by [@&#8203;PascalBourdier](https://github.com/PascalBourdier) in [#&#8203;5875](kubernetes-sigs/external-dns#5875)
- doc(tutorials/rfc2136): fix RBAC by [@&#8203;vflaux](https://github.com/vflaux) in [#&#8203;5827](kubernetes-sigs/external-dns#5827)
- refactor(annotations): modernize ProviderSpecificAnnotation by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5813](kubernetes-sigs/external-dns#5813)
- refactor(pihole): reduce cyclomatic complexity of TestProvider by [@&#8203;AndrewCharlesHay](https://github.com/AndrewCharlesHay) in [#&#8203;5865](kubernetes-sigs/external-dns#5865)
- refactor(pihole): reduce cyclomatic complexity of TestProviderV6 by [@&#8203;AndrewCharlesHay](https://github.com/AndrewCharlesHay) in [#&#8203;5876](kubernetes-sigs/external-dns#5876)
- refactor(service): reduce cyclomatic complexity of extractHeadlessEndpoints by [@&#8203;AndrewCharlesHay](https://github.com/AndrewCharlesHay) in [#&#8203;5822](kubernetes-sigs/external-dns#5822)
- refactor(source/nat64): optional source & early prefixes parsing by [@&#8203;vflaux](https://github.com/vflaux) in [#&#8203;5810](kubernetes-sigs/external-dns#5810)
- refactor(source/wrappers): move wrappers logic away from execute file by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5888](kubernetes-sigs/external-dns#5888)
- test(cloudflare): clear environment variables before setting test values by [@&#8203;u-kai](https://github.com/u-kai) in [#&#8203;5851](kubernetes-sigs/external-dns#5851)
- test(cloudflare): improve coverage of zoneService by [@&#8203;vflaux](https://github.com/vflaux) in [#&#8203;5800](kubernetes-sigs/external-dns#5800)
- test(cloudflare): mock provider for cf change tests by [@&#8203;vflaux](https://github.com/vflaux) in [#&#8203;5852](kubernetes-sigs/external-dns#5852)
- test(cloudflare): modernize zoneDomainFilter test by [@&#8203;vflaux](https://github.com/vflaux) in [#&#8203;5853](kubernetes-sigs/external-dns#5853)
- test(controller): improve code coverage by [@&#8203;TobyTheHutt](https://github.com/TobyTheHutt) in [#&#8203;5816](kubernetes-sigs/external-dns#5816)
- test(source): fqdn for source/service/nodeport/srv records by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5554](kubernetes-sigs/external-dns#5554)
- test(source/service): add serviceTypeFilter edge case by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5872](kubernetes-sigs/external-dns#5872)
- test(source/wrappers): fix race condition by [@&#8203;vflaux](https://github.com/vflaux) in [#&#8203;5841](kubernetes-sigs/external-dns#5841)
- test: update goversion label to 1.25 in metrics test by [@&#8203;AndrewCharlesHay](https://github.com/AndrewCharlesHay) in [#&#8203;5886](kubernetes-sigs/external-dns#5886)
- update test certs used for pdns by [@&#8203;Raffo](https://github.com/Raffo) in [#&#8203;5902](kubernetes-sigs/external-dns#5902)

#### 📦 Docker Image

```sh
docker pull registry.k8s.io/external-dns/external-dns:v0.20.0
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMS4wIiwidXBkYXRlZEluVmVyIjoiNDIuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwL21pbm9yIl19-->

Reviewed-on: https://codeberg.org/JesusMtnez/homelab/pulls/869
Co-authored-by: JesusMtnez-bot <jesusmartinez93+bot@gmail.com>
Co-committed-by: JesusMtnez-bot <jesusmartinez93+bot@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. docs lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. 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.

4 participants