Skip to content

feat(ovh): major rewriting of the provider #5143

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

Merged
merged 5 commits into from
Mar 17, 2025

Conversation

rbeuque74
Copy link
Contributor

Hello 👋

Description

Major rewriting of the OVHcloud provider:

  • better DNS record update process: previously, updated record were performing a delete+create operation, now it perform an update operation
  • dry-run has been implemented
  • better cache invalidation on errors: we now perform a more optimized cache invalidation, without refreshing the DNS zone to avoid inconsistent zone push
  • relative CNAME handling: previous implementation handled only absolut CNAME target, we now allow to use relative one (optional to avoid breaking changes for exisitng users)
  • maintainers update: as part of the OVHcloud API core team, I will maintain the provider part :)

Checklist

  • Unit tests updated
  • End user documentation updated

@k8s-ci-robot k8s-ci-robot requested a review from mloiseleur March 5, 2025 00:20
@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Mar 5, 2025
@k8s-ci-robot k8s-ci-robot requested a review from szuecs March 5, 2025 00:20
@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 Mar 5, 2025
@k8s-ci-robot
Copy link
Contributor

Hi @rbeuque74. 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.

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/XL Denotes a PR that changes 500-999 lines, ignoring generated files. label Mar 5, 2025
@mloiseleur
Copy link
Collaborator

Hello @rbeuque74,

We have started the process to move providers out of tree, with a webhook system. See #4347 and webhook provider doc

Since you seem to work for OVH, wdyt about creating a webhook provider for OVH ?

As you can see, there are already many webhook providers.

@rbeuque74
Copy link
Contributor Author

Hello @mloiseleur

That seem a great idea that we can put in our backlog.
What is the suggested workflow for existing users that will have to migrate ?

Also, since #4932, changes regarding cache invalidation cause users that have multiple instances of external-dns to harmer the OVHcloud DNS API.
I would like to have this merge prior the webhook migration.

Thanks
Romain

@ivankatliarchuk
Copy link
Contributor

The pull request seems like doing more then just cache invalidation. Am I understand the changes correctly?

@rbeuque74
Copy link
Contributor Author

Yes indeed, I took the opportunity to refactor a bit how things were working in the ovh provider engine.
UpdateOld and UpdateNew changes were always triggering deletion of the records and re-creation of the records associated to the endpoint, while sometime it just needed to add a new record, or just update an existing one.
This will prevent the item deleted error while applying the changes.

Also, we improved the cache regarding already fetched records between Records and ApplyChanges to prevent unnecessary fetching.

@ivankatliarchuk
Copy link
Contributor

I'll try to review code as soon as I could. Could you also provide a set of manual test steps using manifests and kubectl commands? This will help in understanding and verifying the implementation for areas touched? example #5085 (comment)

@ivankatliarchuk
Copy link
Contributor

/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 Mar 5, 2025
@rbeuque74
Copy link
Contributor Author

/retest

@ivankatliarchuk
Copy link
Contributor

/label tide/merge-method-squash

@k8s-ci-robot k8s-ci-robot added the tide/merge-method-squash Denotes a PR that should be squashed by tide when it merges. label Mar 6, 2025
@rbeuque74 rbeuque74 force-pushed the ovhcloud branch 2 times, most recently from 38e8f26 to e61ad60 Compare March 6, 2025 12:03
@rbeuque74
Copy link
Contributor Author

I'll try to review code as soon as I could. Could you also provide a set of manual test steps using manifests and kubectl commands? This will help in understanding and verifying the implementation for areas touched? example #5085 (comment)

Do you also need OVHcloud DNS API credentials, or you already have an account ?
If you don't, I can provide some, but that would require a GPG key to send them over to you.

@ivankatliarchuk
Copy link
Contributor

ivankatliarchuk commented Mar 6, 2025

Would be nice to have a testing account. Ping me in kubernetes slack if you could. Or you could run smoke tests and share steps and results here.

@ivankatliarchuk
Copy link
Contributor

Is it ok not to force-push? Difficutl to understand what was reviewed. Last commit could be a squash

@ivankatliarchuk
Copy link
Contributor

ivankatliarchuk commented Mar 6, 2025

could you also execute please make cover-html and cover modified lines with unit test? For lines related to logs output, we have a test helper

func LogsToBuffer(level log.Level, t *testing.T) *bytes.Buffer {
would be quite nice to cover where possible.

@k8s-ci-robot k8s-ci-robot removed the size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. label Mar 7, 2025
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Mar 16, 2025
@rbeuque74
Copy link
Contributor Author

Hello @mloiseleur ,
thanks for review. Comments have been adressed :)

Romain

@mloiseleur
Copy link
Collaborator

/ok-to-test

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 17, 2025
@k8s-ci-robot k8s-ci-robot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Mar 17, 2025
@rbeuque74
Copy link
Contributor Author

Hey,

Comments have been addressed, and commits have been rebased to make sure tests can run.

@rbeuque74 rbeuque74 requested a review from mloiseleur March 17, 2025 11:17
@mloiseleur
Copy link
Collaborator

/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Mar 17, 2025
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ivankatliarchuk, mloiseleur

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

The pull request process is described here

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 Mar 17, 2025
@k8s-ci-robot k8s-ci-robot merged commit ecd57c8 into kubernetes-sigs:master Mar 17, 2025
14 checks passed
ivankatliarchuk added a commit to gofogo/k8s-sigs-external-dns-fork that referenced this pull request Mar 28, 2025
…' into feat-code-cleanup-0

* refs/remotes/origin/feat-code-cleanup-0:
  fix(cloudflare): custom hostnames edge-cases causing duplicates (kubernetes-sigs#5183)
  feat(banner): standardize user agent and output (kubernetes-sigs#5154)
  feat: IDNA awareness in the zone finder (kubernetes-sigs#5147)
  chore(deps): bump the dev-dependencies group across 1 directory with 20 updates
  chore(deps): bump renovatebot/github-action
  feat(chart): Update image to v0.16.1
  fix: correct route53 iam
  chore(deps): bump renovatebot/github-action
  feat(ovh): major rewriting of the provider (kubernetes-sigs#5143)
  Add Yandex Cloud Webhook
  chore(openstack designate)!: remove in-tree provider
ivankatliarchuk pushed a commit to gofogo/k8s-sigs-external-dns-fork that referenced this pull request Apr 16, 2025
fix(registry): improve logging for TXT records with empty targets and add unit test

test(registry): enhance logging for empty targets in TXT records test

Test author (#1)

* fix(aws-sd): service instances registration and deregistration (kubernetes-sigs#5135)

* Only de-register removed targets

* Use maps for current targets lookup.

* Use camelCase, not _

* fix(registry): handle empty targets in TXT records logging an error

* fix(registry): improve logging for TXT records with empty targets and add unit test

* test(registry): enhance logging for empty targets in TXT records test

fix: add mexico region to external dns supported load balancers (kubernetes-sigs#5157)

add: auto label source and providers

Signed-off-by: Sandor Szuecs <[email protected]>

feat(source): fitler by gateway name (kubernetes-sigs#5160)

* feat: filter by gateway name

Signed-off-by: Steven Kreitzer <[email protected]>

* address comments

* address comments

* address comments

---------

Signed-off-by: Steven Kreitzer <[email protected]>

chore: update OWNERs with left required config file

cloudflare: bugfix - do not attempt to create unconfigured empty custom hostnames; improve tests; streamline logic (kubernetes-sigs#5146)

improve test coverage

test the edge case when the custom hostname has changed during the record deletion

don't use custom hostnames if Cloudflare for SaaS fails to authenticate

Use new --cloudflare-custom-hostnames flag to enable cloudflare custom hostnames support

custom hostnames flags --cloudflare-custom-hostnames-min-tls-version and --cloudflare-custom-hostnames-certificate-authority support

markdown lint

Update cloudflare.md

fix(source): config didnt set gatewayname

fix(cloudflare): infinite loop with more than 50 custom hostnames (kubernetes-sigs#5181)

* bugfix - do not reset the resultInfo var, causing infinite loop when number of custom hostnames more than 50

* support paging for custom hostnames tests; update doc

chore(release): updates kustomize & docs with v0.16.1

Signed-off-by: Michel Loiseleur <[email protected]>

update release script

update release instructions

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(openstack designate)!: remove in-tree provider

Add Yandex Cloud Webhook

feat(ovh): major rewriting of the provider (kubernetes-sigs#5143)

* feat: ovh: improve cache invalidation on errors + dry-run mode + relative CNAME handling + optimization

Signed-off-by: Romain Beuque <[email protected]>

* chore: add more tests

Signed-off-by: Romain Beuque <[email protected]>

* fix: align cache expiration with Default value

* chore: address comments from review + updated documentation

* chore: address comments from review

---------

Signed-off-by: Romain Beuque <[email protected]>

chore(deps): bump renovatebot/github-action

Bumps the dev-dependencies group with 1 update: [renovatebot/github-action](https://github.com/renovatebot/github-action).

Updates `renovatebot/github-action` from 41.0.14 to 41.0.16
- [Release notes](https://github.com/renovatebot/github-action/releases)
- [Changelog](https://github.com/renovatebot/github-action/blob/main/CHANGELOG.md)
- [Commits](renovatebot/github-action@v41.0.14...v41.0.16)

---
updated-dependencies:
- dependency-name: renovatebot/github-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <[email protected]>

feat(chart): Update image to v0.16.1

Signed-off-by: Steve Hipwell <[email protected]>

chore(deps): bump renovatebot/github-action

Bumps the dev-dependencies group with 1 update: [renovatebot/github-action](https://github.com/renovatebot/github-action).

Updates `renovatebot/github-action` from 41.0.16 to 41.0.17
- [Release notes](https://github.com/renovatebot/github-action/releases)
- [Changelog](https://github.com/renovatebot/github-action/blob/main/CHANGELOG.md)
- [Commits](renovatebot/github-action@v41.0.16...v41.0.17)

---
updated-dependencies:
- dependency-name: renovatebot/github-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <[email protected]>

feat: IDNA awareness in the zone finder (kubernetes-sigs#5147)

* feat: IDNA awareness in the zone finder

* feat: update zonefinder unit tests

* chore: add warning log and respective test

feat(banner): standardize user agent and output (kubernetes-sigs#5154)

* chore(banner): add banner

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(banner): add banner

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(banner): add banner

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(banner): add banner

Signed-off-by: ivan katliarchuk <[email protected]>

* feat(banner): standartise user agent and output banner

Signed-off-by: ivan katliarchuk <[email protected]>

---------

Signed-off-by: ivan katliarchuk <[email protected]>

fix(cloudflare): custom hostnames edge-cases causing duplicates (kubernetes-sigs#5183)

* fix(cloudflare): custom hostnames edge-cases causing duplicates

* syntax/style

* Use %q log fmt for cloudflare provider code

* move custom hostnames related submitChanges() implementation to a separate method submitCustomHostnameChanges(); extend truncated logging

* use maps for DNS records getRecordID() and custom hostnames getCustomHostname() for faster lookups

* types for records/custom hostnames maps

* tidy up using underlying maps for dns records and custom hostnames

* style/naming

* fix private names

* combine unnecessarily separated conditions

fix: correct route53 iam

chore(deps): bump the dev-dependencies group across 1 directory with 20 updates

Bumps the dev-dependencies group with 16 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [github.com/Azure/azure-sdk-for-go/sdk/azcore](https://github.com/Azure/azure-sdk-for-go) | `1.17.0` | `1.17.1` |
| [github.com/IBM-Cloud/ibm-cloud-cli-sdk](https://github.com/IBM-Cloud/ibm-cloud-cli-sdk) | `1.6.2` | `1.7.0` |
| [github.com/IBM/go-sdk-core/v5](https://github.com/IBM/go-sdk-core) | `5.18.5` | `5.19.0` |
| [github.com/aliyun/alibaba-cloud-sdk-go](https://github.com/aliyun/alibaba-cloud-sdk-go) | `1.63.92` | `1.63.100` |
| [github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue](https://github.com/aws/aws-sdk-go-v2) | `1.18.7` | `1.18.8` |
| [github.com/aws/aws-sdk-go-v2/service/route53](https://github.com/aws/aws-sdk-go-v2) | `1.49.1` | `1.50.0` |
| [github.com/civo/civogo](https://github.com/civo/civogo) | `0.3.94` | `0.3.95` |
| [github.com/digitalocean/godo](https://github.com/digitalocean/godo) | `1.138.0` | `1.141.0` |
| [github.com/miekg/dns](https://github.com/miekg/dns) | `1.1.63` | `1.1.64` |
| [github.com/oracle/oci-go-sdk/v65](https://github.com/oracle/oci-go-sdk) | `65.85.0` | `65.87.0` |
| [github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common](https://github.com/tencentcloud/tencentcloud-sdk-go) | `1.0.1115` | `1.0.1129` |
| [github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod](https://github.com/tencentcloud/tencentcloud-sdk-go) | `1.0.1115` | `1.0.1128` |
| [go.etcd.io/etcd/client/v3](https://github.com/etcd-io/etcd) | `3.5.19` | `3.5.20` |
| [google.golang.org/api](https://github.com/googleapis/google-api-go-client) | `0.223.0` | `0.227.0` |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.32.2` | `0.32.3` |
| [k8s.io/client-go](https://github.com/kubernetes/client-go) | `0.32.2` | `0.32.3` |

Updates `github.com/Azure/azure-sdk-for-go/sdk/azcore` from 1.17.0 to 1.17.1
- [Release notes](https://github.com/Azure/azure-sdk-for-go/releases)
- [Changelog](https://github.com/Azure/azure-sdk-for-go/blob/main/documentation/release.md)
- [Commits](Azure/azure-sdk-for-go@sdk/azcore/v1.17.0...sdk/azcore/v1.17.1)

Updates `github.com/IBM-Cloud/ibm-cloud-cli-sdk` from 1.6.2 to 1.7.0
- [Release notes](https://github.com/IBM-Cloud/ibm-cloud-cli-sdk/releases)
- [Commits](IBM-Cloud/ibm-cloud-cli-sdk@v1.6.2...v1.7.0)

Updates `github.com/IBM/go-sdk-core/v5` from 5.18.5 to 5.19.0
- [Release notes](https://github.com/IBM/go-sdk-core/releases)
- [Changelog](https://github.com/IBM/go-sdk-core/blob/main/CHANGELOG.md)
- [Commits](IBM/go-sdk-core@v5.18.5...v5.19.0)

Updates `github.com/aliyun/alibaba-cloud-sdk-go` from 1.63.92 to 1.63.100
- [Release notes](https://github.com/aliyun/alibaba-cloud-sdk-go/releases)
- [Changelog](https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/ChangeLog.txt)
- [Commits](aliyun/alibaba-cloud-sdk-go@v1.63.92...v1.63.100)

Updates `github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue` from 1.18.7 to 1.18.8
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](aws/aws-sdk-go-v2@config/v1.18.7...config/v1.18.8)

Updates `github.com/aws/aws-sdk-go-v2/service/dynamodb` from 1.41.1 to 1.42.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](aws/aws-sdk-go-v2@service/ecr/v1.41.1...service/s3/v1.42.0)

Updates `github.com/aws/aws-sdk-go-v2/service/route53` from 1.49.1 to 1.50.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](aws/aws-sdk-go-v2@service/ssm/v1.49.1...service/s3/v1.50.0)

Updates `github.com/civo/civogo` from 0.3.94 to 0.3.95
- [Release notes](https://github.com/civo/civogo/releases)
- [Changelog](https://github.com/civo/civogo/blob/master/changelog.yml)
- [Commits](civo/civogo@v0.3.94...v0.3.95)

Updates `github.com/digitalocean/godo` from 1.138.0 to 1.141.0
- [Release notes](https://github.com/digitalocean/godo/releases)
- [Changelog](https://github.com/digitalocean/godo/blob/main/CHANGELOG.md)
- [Commits](digitalocean/godo@v1.138.0...v1.141.0)

Updates `github.com/miekg/dns` from 1.1.63 to 1.1.64
- [Changelog](https://github.com/miekg/dns/blob/master/Makefile.release)
- [Commits](miekg/dns@v1.1.63...v1.1.64)

Updates `github.com/oracle/oci-go-sdk/v65` from 65.85.0 to 65.87.0
- [Release notes](https://github.com/oracle/oci-go-sdk/releases)
- [Changelog](https://github.com/oracle/oci-go-sdk/blob/master/CHANGELOG.md)
- [Commits](oracle/oci-go-sdk@v65.85.0...v65.87.0)

Updates `github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common` from 1.0.1115 to 1.0.1129
- [Commits](TencentCloud/tencentcloud-sdk-go@v1.0.1115...v1.0.1129)

Updates `github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod` from 1.0.1115 to 1.0.1128
- [Commits](TencentCloud/tencentcloud-sdk-go@v1.0.1115...v1.0.1128)

Updates `go.etcd.io/etcd/client/v3` from 3.5.19 to 3.5.20
- [Release notes](https://github.com/etcd-io/etcd/releases)
- [Commits](etcd-io/etcd@v3.5.19...v3.5.20)

Updates `golang.org/x/net` from 0.36.0 to 0.37.0
- [Commits](golang/net@v0.36.0...v0.37.0)

Updates `golang.org/x/text` from 0.22.0 to 0.23.0
- [Release notes](https://github.com/golang/text/releases)
- [Commits](golang/text@v0.22.0...v0.23.0)

Updates `google.golang.org/api` from 0.223.0 to 0.227.0
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.223.0...v0.227.0)

Updates `k8s.io/api` from 0.32.2 to 0.32.3
- [Commits](kubernetes/api@v0.32.2...v0.32.3)

Updates `k8s.io/apimachinery` from 0.32.2 to 0.32.3
- [Commits](kubernetes/apimachinery@v0.32.2...v0.32.3)

Updates `k8s.io/client-go` from 0.32.2 to 0.32.3
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](kubernetes/client-go@v0.32.2...v0.32.3)

---
updated-dependencies:
- dependency-name: github.com/Azure/azure-sdk-for-go/sdk/azcore
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/IBM-Cloud/ibm-cloud-cli-sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/IBM/go-sdk-core/v5
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/aliyun/alibaba-cloud-sdk-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/dynamodb
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/route53
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/civo/civogo
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/digitalocean/godo
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/miekg/dns
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/oracle/oci-go-sdk/v65
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: go.etcd.io/etcd/client/v3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: golang.org/x/net
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: golang.org/x/text
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: k8s.io/api
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: k8s.io/apimachinery
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: k8s.io/client-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

feat: added expose internal ipv6 flag

fix: removing fmt.Printf

fix: fixing ci lint

docs: added documentation in node source

edited docs and made new test

added warn log

detailed documentation with no-expose

added new tests to handle edge case

renaming variable

removing reduntant code

fix(chart): add missing types for empty values (kubernetes-sigs#5207)

* fix(chart): add missing types for empty values

Signed-off-by: t3mi <[email protected]>

* fix(chart): add one more space before comment

Signed-off-by: t3mi <[email protected]>

* chore: add changelog entry

Signed-off-by: t3mi <[email protected]>

* fix: use default value for service account token

Signed-off-by: t3mi <[email protected]>

* fix: tests for new default values

Signed-off-by: t3mi <[email protected]>

* chore: add one more changelog entry

Signed-off-by: t3mi <[email protected]>

---------

Signed-off-by: t3mi <[email protected]>

fix(node): logger test fixed (kubernetes-sigs#5232)

Signed-off-by: ivan katliarchuk <[email protected]>

docs: Fix typo: grcp → grpc.

chore(deps): bump the dev-dependencies group across 1 directory with 17 updates

Bumps the dev-dependencies group with 15 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [github.com/IBM/networking-go-sdk](https://github.com/IBM/networking-go-sdk) | `0.51.2` | `0.51.3` |
| [github.com/aliyun/alibaba-cloud-sdk-go](https://github.com/aliyun/alibaba-cloud-sdk-go) | `1.63.100` | `1.63.103` |
| [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.29.9` | `1.29.12` |
| [github.com/civo/civogo](https://github.com/civo/civogo) | `0.3.95` | `0.3.96` |
| [github.com/digitalocean/godo](https://github.com/digitalocean/godo) | `1.141.0` | `1.142.0` |
| [github.com/oracle/oci-go-sdk/v65](https://github.com/oracle/oci-go-sdk) | `65.87.0` | `65.88.0` |
| [github.com/projectcontour/contour](https://github.com/projectcontour/contour) | `1.30.2` | `1.30.3` |
| [github.com/scaleway/scaleway-sdk-go](https://github.com/scaleway/scaleway-sdk-go) | `1.0.0-beta.32` | `1.0.0-beta.33` |
| [github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common](https://github.com/tencentcloud/tencentcloud-sdk-go) | `1.0.1129` | `1.0.1134` |
| [github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod](https://github.com/tencentcloud/tencentcloud-sdk-go) | `1.0.1128` | `1.0.1134` |
| [github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns](https://github.com/tencentcloud/tencentcloud-sdk-go) | `1.0.1115` | `1.0.1132` |
| [go.etcd.io/etcd/client/v3](https://github.com/etcd-io/etcd) | `3.5.20` | `3.5.21` |
| [google.golang.org/api](https://github.com/googleapis/google-api-go-client) | `0.227.0` | `0.228.0` |
| [istio.io/api](https://github.com/istio/api) | `1.25.0` | `1.25.1` |
| [istio.io/client-go](https://github.com/istio/client-go) | `1.25.0` | `1.25.1` |

Updates `github.com/IBM/networking-go-sdk` from 0.51.2 to 0.51.3
- [Release notes](https://github.com/IBM/networking-go-sdk/releases)
- [Changelog](https://github.com/IBM/networking-go-sdk/blob/master/CHANGELOG.md)
- [Commits](IBM/networking-go-sdk@v0.51.2...v0.51.3)

Updates `github.com/aliyun/alibaba-cloud-sdk-go` from 1.63.100 to 1.63.103
- [Release notes](https://github.com/aliyun/alibaba-cloud-sdk-go/releases)
- [Changelog](https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/ChangeLog.txt)
- [Commits](aliyun/alibaba-cloud-sdk-go@v1.63.100...v1.63.103)

Updates `github.com/aws/aws-sdk-go-v2/config` from 1.29.9 to 1.29.12
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](aws/aws-sdk-go-v2@config/v1.29.9...config/v1.29.12)

Updates `github.com/aws/aws-sdk-go-v2/credentials` from 1.17.62 to 1.17.65
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](aws/aws-sdk-go-v2@credentials/v1.17.62...credentials/v1.17.65)

Updates `github.com/civo/civogo` from 0.3.95 to 0.3.96
- [Release notes](https://github.com/civo/civogo/releases)
- [Changelog](https://github.com/civo/civogo/blob/master/changelog.yml)
- [Commits](civo/civogo@v0.3.95...v0.3.96)

Updates `github.com/digitalocean/godo` from 1.141.0 to 1.142.0
- [Release notes](https://github.com/digitalocean/godo/releases)
- [Changelog](https://github.com/digitalocean/godo/blob/main/CHANGELOG.md)
- [Commits](digitalocean/godo@v1.141.0...v1.142.0)

Updates `github.com/oracle/oci-go-sdk/v65` from 65.87.0 to 65.88.0
- [Release notes](https://github.com/oracle/oci-go-sdk/releases)
- [Changelog](https://github.com/oracle/oci-go-sdk/blob/master/CHANGELOG.md)
- [Commits](oracle/oci-go-sdk@v65.87.0...v65.88.0)

Updates `github.com/projectcontour/contour` from 1.30.2 to 1.30.3
- [Release notes](https://github.com/projectcontour/contour/releases)
- [Changelog](https://github.com/projectcontour/contour/blob/main/RELEASES.md)
- [Commits](projectcontour/contour@v1.30.2...v1.30.3)

Updates `github.com/scaleway/scaleway-sdk-go` from 1.0.0-beta.32 to 1.0.0-beta.33
- [Release notes](https://github.com/scaleway/scaleway-sdk-go/releases)
- [Changelog](https://github.com/scaleway/scaleway-sdk-go/blob/master/CHANGELOG.md)
- [Commits](scaleway/scaleway-sdk-go@v1.0.0-beta.32...v1.0.0-beta.33)

Updates `github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common` from 1.0.1129 to 1.0.1134
- [Commits](TencentCloud/tencentcloud-sdk-go@v1.0.1129...v1.0.1134)

Updates `github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod` from 1.0.1128 to 1.0.1134
- [Commits](TencentCloud/tencentcloud-sdk-go@v1.0.1128...v1.0.1134)

Updates `github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns` from 1.0.1115 to 1.0.1132
- [Commits](TencentCloud/tencentcloud-sdk-go@v1.0.1115...v1.0.1132)

Updates `go.etcd.io/etcd/client/v3` from 3.5.20 to 3.5.21
- [Release notes](https://github.com/etcd-io/etcd/releases)
- [Commits](etcd-io/etcd@v3.5.20...v3.5.21)

Updates `golang.org/x/net` from 0.37.0 to 0.38.0
- [Commits](golang/net@v0.37.0...v0.38.0)

Updates `google.golang.org/api` from 0.227.0 to 0.228.0
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](googleapis/google-api-go-client@v0.227.0...v0.228.0)

Updates `istio.io/api` from 1.25.0 to 1.25.1
- [Commits](istio/api@1.25.0...1.25.1)

Updates `istio.io/client-go` from 1.25.0 to 1.25.1
- [Commits](istio/client-go@1.25.0...1.25.1)

---
updated-dependencies:
- dependency-name: github.com/IBM/networking-go-sdk
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/aliyun/alibaba-cloud-sdk-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/credentials
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/civo/civogo
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/digitalocean/godo
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/oracle/oci-go-sdk/v65
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/projectcontour/contour
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/scaleway/scaleway-sdk-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: go.etcd.io/etcd/client/v3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: golang.org/x/net
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: google.golang.org/api
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: istio.io/api
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: istio.io/client-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <[email protected]>

chore: add se for nlb, alb in thailand region

chore(code-cleanup): move logic away from main.go add tests (kubernetes-sigs#5222)

* feat(code cleanup): remove from main.go

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(code-cleanup): move logic from main.go add tests

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(code-cleanup): move logic from main.go add tests

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(code-cleanup): move logic from main.go add tests

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(code-cleanup): move logic from main.go add tests

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(code-cleanup): move logic away from main.go add tests

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(code-cleanup): move logic away from main.go add tests

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(code-cleanup): move logic away from main.go add tests

Co-authored-by: Michel Loiseleur <[email protected]>

* chore(code-cleanup): move logic away from main.go add tests

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(code-cleanup): move logic away from main.go add tests

Signed-off-by: ivan katliarchuk <[email protected]>

---------

Signed-off-by: ivan katliarchuk <[email protected]>
Co-authored-by: Michel Loiseleur <[email protected]>

docs(proposal): externaldns api graduation to beta (kubernetes-sigs#5079)

* docs(proposal): externaldns api graduation to beta

Signed-off-by: ivan katliarchuk <[email protected]>

* docs(proposal): externaldns api graduation to beta

Signed-off-by: ivan katliarchuk <[email protected]>

* docs(proposal): externaldns api graduation to beta

Signed-off-by: ivan katliarchuk <[email protected]>

* docs(proposal): externaldns api graduation to beta

Signed-off-by: ivan katliarchuk <[email protected]>

* docs(proposal): externaldns api graduation to beta

Signed-off-by: ivan katliarchuk <[email protected]>

* docs(proposal): externaldns api graduation to beta

Signed-off-by: ivan katliarchuk <[email protected]>

* docs(proposal): externaldns api graduation to beta

Signed-off-by: ivan katliarchuk <[email protected]>

* docs(proposal): externaldns api graduation to beta

Signed-off-by: ivan katliarchuk <[email protected]>

* docs(proposal): externaldns api graduation to beta

Co-authored-by: Michel Loiseleur <[email protected]>

* docs(proposal): externaldns api graduation to beta

---------

Signed-off-by: ivan katliarchuk <[email protected]>
Co-authored-by: Michel Loiseleur <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

fix(helm): added missing schema values (kubernetes-sigs#5228)

* fix(helm): added missing schema values

Signed-off-by: ivan katliarchuk <[email protected]>

* fix(helm): added missing schema values

Signed-off-by: ivan katliarchuk <[email protected]>

* fix(helm): added missing schema values

Signed-off-by: ivan katliarchuk <[email protected]>

* fix(helm): added missing schema values

Signed-off-by: ivan katliarchuk <[email protected]>

* fix(helm): added missing schema values

Signed-off-by: ivan katliarchuk <[email protected]>

* fix(helm): added missing schema values

Signed-off-by: ivan katliarchuk <[email protected]>

* fix(helm): added missing schema values

Signed-off-by: ivan katliarchuk <[email protected]>

* fix(helm): added missing schema values

Signed-off-by: ivan katliarchuk <[email protected]>

* fix(helm): added missing schema values

Signed-off-by: ivan katliarchuk <[email protected]>

* fix(helm): added missing schema values

Signed-off-by: ivan katliarchuk <[email protected]>

* fix(helm): added missing schema values

Signed-off-by: ivan katliarchuk <[email protected]>

* fix(helm): added missing schema values

Signed-off-by: ivan katliarchuk <[email protected]>

---------

Signed-off-by: ivan katliarchuk <[email protected]>

chore(ci): update linter to v2.0.2

feat(pihole): add optional support for v6 (kubernetes-sigs#5226)

* Pi hole V6 impl

* Code Review Part One

* Fix Go Lint

* Regenerate Flags file

* Increase code coverage 1/2

* Increase code coverage 2/2

* Fix merge conflict => Provider init move from main.go to execute.go

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

fix(cloudflare): custom hostnames edge-cases causing duplicates

syntax/style

Use %q log fmt for cloudflare provider code

move custom hostnames related submitChanges() implementation to a separate method submitCustomHostnameChanges(); extend truncated logging

use maps for DNS records getRecordID() and custom hostnames getCustomHostname() for faster lookups

types for records/custom hostnames maps

tidy up using underlying maps for dns records and custom hostnames

style/naming

fix private names

combine unnecessarily separated conditions

feat(cloudflare): multiple custom hostnames support

remove redunaant custom hostnames sort

rename variables with ambiguous "endpoint" names

Update cloudflare.md

split long lines

[attempt to] improve nested conditions readability for cloudflare tests failures scenarios

add test for logging error when creating endpoint and ignoring too long record name (shouldn't happen)

docs: update link to Anexia webhook provider

chore(deps): bump the dev-dependencies group across 1 directory with 2 updates

Bumps the dev-dependencies group with 2 updates in the / directory: [renovatebot/github-action](https://github.com/renovatebot/github-action) and [actions/setup-python](https://github.com/actions/setup-python).

Updates `renovatebot/github-action` from 41.0.17 to 41.0.18
- [Release notes](https://github.com/renovatebot/github-action/releases)
- [Changelog](https://github.com/renovatebot/github-action/blob/main/CHANGELOG.md)
- [Commits](renovatebot/github-action@v41.0.17...v41.0.18)

Updates `actions/setup-python` from 5.4.0 to 5.5.0
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@4237552...8d9ed9a)

---
updated-dependencies:
- dependency-name: renovatebot/github-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <[email protected]>

feat(source): optional exclusion of unschedulable nodes (kubernetes-sigs#5045)

* feat(source/node): Make exclusion of unschedulable Nodes configurable

This fixes a behavioral regression introduced in kubernetes-sigs#4761, where
nodes that were previously added to DNS are removed when they are considered
unschedulable, for example due to automated maintenance tasks.

This change will introduce a new flag called `exclude-unschedulable`, which
defaults to `true` in order to keep in line with the current behavior.
However, it would also be reasonable to restore the initial behavior before

* Allow testing for expected log entries in testNodeSourceEndpoints

This commit adds the required logic to be able to test for
the existence (and absence) of certain log messages
in testNodeSourceEndpoints. As an example, this is implemented
for the tests around excludeUnschedulable.

A side effect of using LogsToBuffer is that tests can't run in
parallel due to the log buffer being shared across all
parallel test cases. As such, these specific tests are now executed
one after another.

* Ensure logging is only hooked for tests that require it

* Document new exclude-unschedulable flag for nodes source

chore(deps): bump the dev-dependencies group across 1 directory with 19 updates

Bumps the dev-dependencies group with 14 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [github.com/Azure/azure-sdk-for-go/sdk/azcore](https://github.com/Azure/azure-sdk-for-go) | `1.17.1` | `1.18.0` |
| [github.com/aliyun/alibaba-cloud-sdk-go](https://github.com/aliyun/alibaba-cloud-sdk-go) | `1.63.103` | `1.63.104` |
| [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.29.12` | `1.29.13` |
| [github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue](https://github.com/aws/aws-sdk-go-v2) | `1.18.8` | `1.18.9` |
| [github.com/aws/aws-sdk-go-v2/service/route53](https://github.com/aws/aws-sdk-go-v2) | `1.50.0` | `1.51.0` |
| [github.com/aws/aws-sdk-go-v2/service/servicediscovery](https://github.com/aws/aws-sdk-go-v2) | `1.35.1` | `1.35.2` |
| [github.com/linode/linodego](https://github.com/linode/linodego) | `1.48.1` | `1.49.0` |
| [github.com/miekg/dns](https://github.com/miekg/dns) | `1.1.64` | `1.1.65` |
| [github.com/oracle/oci-go-sdk/v65](https://github.com/oracle/oci-go-sdk) | `65.88.0` | `65.88.1` |
| [github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common](https://github.com/tencentcloud/tencentcloud-sdk-go) | `1.0.1134` | `1.0.1140` |
| [github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod](https://github.com/tencentcloud/tencentcloud-sdk-go) | `1.0.1134` | `1.0.1136` |
| [golang.org/x/net](https://github.com/golang/net) | `0.38.0` | `0.39.0` |
| [golang.org/x/oauth2](https://github.com/golang/oauth2) | `0.28.0` | `0.29.0` |
| gopkg.in/ns1/ns1-go.v2 | `2.13.0` | `2.14.1` |

Updates `github.com/Azure/azure-sdk-for-go/sdk/azcore` from 1.17.1 to 1.18.0
- [Release notes](https://github.com/Azure/azure-sdk-for-go/releases)
- [Changelog](https://github.com/Azure/azure-sdk-for-go/blob/main/documentation/release.md)
- [Commits](Azure/azure-sdk-for-go@sdk/azcore/v1.17.1...sdk/azcore/v1.18.0)

Updates `github.com/aliyun/alibaba-cloud-sdk-go` from 1.63.103 to 1.63.104
- [Release notes](https://github.com/aliyun/alibaba-cloud-sdk-go/releases)
- [Changelog](https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/ChangeLog.txt)
- [Commits](aliyun/alibaba-cloud-sdk-go@v1.63.103...v1.63.104)

Updates `github.com/aws/aws-sdk-go-v2/config` from 1.29.12 to 1.29.13
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](aws/aws-sdk-go-v2@config/v1.29.12...config/v1.29.13)

Updates `github.com/aws/aws-sdk-go-v2/credentials` from 1.17.65 to 1.17.66
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](aws/aws-sdk-go-v2@credentials/v1.17.65...credentials/v1.17.66)

Updates `github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue` from 1.18.8 to 1.18.9
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/config/v1.18.9/CHANGELOG.md)
- [Commits](aws/aws-sdk-go-v2@config/v1.18.8...config/v1.18.9)

Updates `github.com/aws/aws-sdk-go-v2/service/dynamodb` from 1.42.0 to 1.42.1
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](aws/aws-sdk-go-v2@service/s3/v1.42.0...service/s3/v1.42.1)

Updates `github.com/aws/aws-sdk-go-v2/service/route53` from 1.50.0 to 1.51.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](aws/aws-sdk-go-v2@service/s3/v1.50.0...service/s3/v1.51.0)

Updates `github.com/aws/aws-sdk-go-v2/service/servicediscovery` from 1.35.1 to 1.35.2
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](aws/aws-sdk-go-v2@service/kms/v1.35.1...service/ecr/v1.35.2)

Updates `github.com/aws/aws-sdk-go-v2/service/sts` from 1.33.17 to 1.33.18
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json)
- [Commits](aws/aws-sdk-go-v2@service/sns/v1.33.17...service/sns/v1.33.18)

Updates `github.com/linode/linodego` from 1.48.1 to 1.49.0
- [Release notes](https://github.com/linode/linodego/releases)
- [Commits](linode/linodego@v1.48.1...v1.49.0)

Updates `github.com/miekg/dns` from 1.1.64 to 1.1.65
- [Changelog](https://github.com/miekg/dns/blob/master/Makefile.release)
- [Commits](miekg/dns@v1.1.64...v1.1.65)

Updates `github.com/oracle/oci-go-sdk/v65` from 65.88.0 to 65.88.1
- [Release notes](https://github.com/oracle/oci-go-sdk/releases)
- [Changelog](https://github.com/oracle/oci-go-sdk/blob/master/CHANGELOG.md)
- [Commits](oracle/oci-go-sdk@v65.88.0...v65.88.1)

Updates `github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common` from 1.0.1134 to 1.0.1140
- [Commits](TencentCloud/tencentcloud-sdk-go@v1.0.1134...v1.0.1140)

Updates `github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod` from 1.0.1134 to 1.0.1136
- [Commits](TencentCloud/tencentcloud-sdk-go@v1.0.1134...v1.0.1136)

Updates `golang.org/x/net` from 0.38.0 to 0.39.0
- [Commits](golang/net@v0.38.0...v0.39.0)

Updates `golang.org/x/oauth2` from 0.28.0 to 0.29.0
- [Commits](golang/oauth2@v0.28.0...v0.29.0)

Updates `golang.org/x/sync` from 0.12.0 to 0.13.0
- [Commits](golang/sync@v0.12.0...v0.13.0)

Updates `golang.org/x/text` from 0.23.0 to 0.24.0
- [Release notes](https://github.com/golang/text/releases)
- [Commits](golang/text@v0.23.0...v0.24.0)

Updates `gopkg.in/ns1/ns1-go.v2` from 2.13.0 to 2.14.1

---
updated-dependencies:
- dependency-name: github.com/Azure/azure-sdk-for-go/sdk/azcore
  dependency-version: 1.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/aliyun/alibaba-cloud-sdk-go
  dependency-version: 1.63.104
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-version: 1.29.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/credentials
  dependency-version: 1.17.66
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue
  dependency-version: 1.18.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/dynamodb
  dependency-version: 1.42.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/route53
  dependency-version: 1.51.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/servicediscovery
  dependency-version: 1.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/sts
  dependency-version: 1.33.18
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/linode/linodego
  dependency-version: 1.49.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/miekg/dns
  dependency-version: 1.1.65
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/oracle/oci-go-sdk/v65
  dependency-version: 65.88.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common
  dependency-version: 1.0.1140
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod
  dependency-version: 1.0.1136
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: golang.org/x/net
  dependency-version: 0.39.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: golang.org/x/oauth2
  dependency-version: 0.29.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: golang.org/x/sync
  dependency-version: 0.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: golang.org/x/text
  dependency-version: 0.24.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: gopkg.in/ns1/ns1-go.v2
  dependency-version: 2.14.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <[email protected]>

chore(helm): add validation for prefix and suffix and capture regression (kubernetes-sigs#5250)

* chore(helm): add valiation.tpl and capture regression

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(helm): add valiation.tpl and capture regression

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(helm): add validation.tpl and capture regression

Co-authored-by: Michel Loiseleur <[email protected]>

* chore(helm): add validation.tpl and capture regression

Co-authored-by: Michel Loiseleur <[email protected]>

* chore(helm): add validation.tpl and capture regression

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(helm): add validation.tpl and capture regression

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(helm): add validation for prefix and suffix and capture regression

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(helm): add validation for prefix and suffix and capture regression

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(helm): add validation for prefix and suffix and capture regression

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(helm): add validation for prefix and suffix and capture regression

Co-authored-by: Steve Hipwell <[email protected]>

---------

Signed-off-by: ivan katliarchuk <[email protected]>
Co-authored-by: Michel Loiseleur <[email protected]>
Co-authored-by: Steve Hipwell <[email protected]>

chore(ci): fix random data race failure on source/node test

only consider accepted gateway routes if the condition generation matches the current one

use route parentRef from spec instead of observedGeneration to select correct status conditions to evaluate

update all route tests to have a valid spec.parentRef entry

add missing lookup for TLSRoute

update gatewayRoute to contain spec.parentRefs instead of extracting that directly from each route during the resolve stage

update comment on gwRouteIsAccepted

validate group and kind on the spec.parentRef. Move check into gwRouteHasParentRef

remove unnecessary variable

chore: Release Helm chart v1.16.1

Signed-off-by: Steve Hipwell <[email protected]>

fix cloudflare regional hostnames

Implements create & delete of regional hostnames for A, AAAA & CNAME
records.
Implements "external-dns.alpha.kubernetes.io/cloudflare-region-key"
annotation.

add tests & fixes for dataLocalizationRegionalHostnamesChanges()

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>

changes to goccy yaml

Signed-off-by: Raffaele Di Fazio <[email protected]>

use json to unmarshal json

Signed-off-by: Raffaele Di Fazio <[email protected]>

chore(dependencies): update toools versions (kubernetes-sigs#5252)

* chore(dependencies): update toools versions

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(dependencies): update toools versions

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(dependencies): update toools versions

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(dependencies): update toools versions

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(dependencies): update toools versions

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(dependencies): update toools versions

Signed-off-by: ivan katliarchuk <[email protected]>

* chore(dependencies): update toools versions

Signed-off-by: ivan katliarchuk <[email protected]>

---------

Signed-off-by: ivan katliarchuk <[email protected]>

chore(source): code cleanup

Signed-off-by: ivan katliarchuk <[email protected]>
@rbeuque74 rbeuque74 deleted the ovhcloud branch April 18, 2025 17:50
JesusMtnez added a commit to JesusMtnez/homelab that referenced this pull request May 29, 2025
…o v0.17.0 (#712)

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.16.1` -> `v0.17.0` |

---

### Release Notes

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

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

[Compare Source](kubernetes-sigs/external-dns@v0.16.1...v0.17.0)

#### Global information

:information_source: On Pi Hole, support for v6 has been added. Pi Hole v5 support is deprecated and will be removed in a future version

:information_source: On OVH, the provider has been heavily rewritten. New ACLs are need. See documentation and PR [#&#8203;5143](kubernetes-sigs/external-dns#5143) for details.

:information_source: On IPv6, the [proposal 002](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/proposal/002-internal-ipv6-handling-rollback.md) has been implemented, thanks to [@&#8203;hjoshi123](https://github.com/hjoshi123)

-   ⚠️ In the next release, the default of this new `expose-internal-ipv6` flag will be set to false

⚠️ There is a severe known issue with Active Directory ([#&#8203;5240](kubernetes-sigs/external-dns#5240)) since v0.16.0. PR to fix it ([#&#8203;5385](kubernetes-sigs/external-dns#5385)) is in review

:information_source: The legacy txt-format will be removed in the next minor version ([#&#8203;5172](kubernetes-sigs/external-dns#5172))

-   ⚠️ There is currently no migration script to clean old style txt records. If you need it, if you think you can do it, PRs are welcome.

ℹ️ A new Nomad source may be added to external-dns ([#&#8203;5284](kubernetes-sigs/external-dns#5284))

-   This PR can be merged only after a review and test from real Nomad users

#### 🚀 Features

-   feat: additional template functions by [@&#8203;matkam](https://github.com/matkam) in [#&#8203;3949](kubernetes-sigs/external-dns#3949)
-   feat(banner): standardize user agent and output by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5154](kubernetes-sigs/external-dns#5154)
-   feat(chart): Update image to v0.16.1 by [@&#8203;stevehipwell](https://github.com/stevehipwell) in [#&#8203;5201](kubernetes-sigs/external-dns#5201)
-   feat(cloudflare): multiple custom hostnames support by [@&#8203;mrozentsvayg](https://github.com/mrozentsvayg) in [#&#8203;5239](kubernetes-sigs/external-dns#5239)
-   feat(helm): allow extraArgs to also be a map enabling overrides of individual values by [@&#8203;frittentheke](https://github.com/frittentheke) in [#&#8203;5293](kubernetes-sigs/external-dns#5293)
-   feat: IDNA awareness in the zone finder by [@&#8203;lexisother](https://github.com/lexisother) in [#&#8203;5147](kubernetes-sigs/external-dns#5147)
-   feat(ovh): major rewriting of the provider by [@&#8203;rbeuque74](https://github.com/rbeuque74) in [#&#8203;5143](kubernetes-sigs/external-dns#5143)
-   feat(pihole): add optional support for v6 by [@&#8203;tJouve](https://github.com/tJouve) in [#&#8203;5226](kubernetes-sigs/external-dns#5226)
-   feat(pihole): add support for IPv6 Dual format by [@&#8203;tJouve](https://github.com/tJouve) in [#&#8203;5253](kubernetes-sigs/external-dns#5253)
-   feat(source): optional exclusion of unschedulable nodes by [@&#8203;Hayajiro](https://github.com/Hayajiro) in [#&#8203;5045](kubernetes-sigs/external-dns#5045)
-   feat(source): optional expose of nodes internal ipv6 by [@&#8203;hjoshi123](https://github.com/hjoshi123) in [#&#8203;5192](kubernetes-sigs/external-dns#5192)

#### 🐛 Bug fixes

-   fix(aws): typo on route53 IAM by [@&#8203;tico24](https://github.com/tico24) in [#&#8203;5197](kubernetes-sigs/external-dns#5197)
-   fix(chart): add missing types for empty values by [@&#8203;t3mi](https://github.com/t3mi) in [#&#8203;5207](kubernetes-sigs/external-dns#5207)
-   fix(cloudflare): custom hostnames edge-cases causing duplicates by [@&#8203;mrozentsvayg](https://github.com/mrozentsvayg) in [#&#8203;5183](kubernetes-sigs/external-dns#5183)
-   fix(cloudflare): regional hostnames by [@&#8203;vflaux](https://github.com/vflaux) in [#&#8203;5175](kubernetes-sigs/external-dns#5175)
-   fix(Gateway API): ensure generation match by [@&#8203;davidwin93](https://github.com/davidwin93) in [#&#8203;5241](kubernetes-sigs/external-dns#5241)
-   fix(gateway-api): ensure to use only latest generation with HTTPRoutes by [@&#8203;kashalls](https://github.com/kashalls) in [#&#8203;5349](kubernetes-sigs/external-dns#5349)
-   fix(helm): added missing schema values by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5228](kubernetes-sigs/external-dns#5228)
-   fix(helm): update helm schema by [@&#8203;semnell](https://github.com/semnell) in [#&#8203;5297](kubernetes-sigs/external-dns#5297)
-   fix(log testing): re-use logger library testing functionality by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5368](kubernetes-sigs/external-dns#5368)
-   fix(node): logger test fixed by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5232](kubernetes-sigs/external-dns#5232)
-   fix(ovh): handling capitalized DNS records + prevent panic by [@&#8203;rbeuque74](https://github.com/rbeuque74) in [#&#8203;5390](kubernetes-sigs/external-dns#5390)
-   fix(webhook): api json object plan.Changes case by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5355](kubernetes-sigs/external-dns#5355)
-   fix(zonefinder): handle underscores in dns records by [@&#8203;arthlr](https://github.com/arthlr) in [#&#8203;5281](kubernetes-sigs/external-dns#5281)

#### 📝 Documentation

-   docs(contributing): add conventional commits by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5333](kubernetes-sigs/external-dns#5333)
-   docs(proposal): externaldns api graduation to beta by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5079](kubernetes-sigs/external-dns#5079)
-   docs(rfc2136): fix env variable in the guideline by [@&#8203;riupie](https://github.com/riupie) in [#&#8203;5352](kubernetes-sigs/external-dns#5352)
-   docs(tutorials): add IONOS Cloud  setup tutorial for ExternalDNS by [@&#8203;smilutinovic-ionos](https://github.com/smilutinovic-ionos) in [#&#8203;5364](kubernetes-sigs/external-dns#5364)
-   docs(typo): grcp → grpc by [@&#8203;octo](https://github.com/octo) in [#&#8203;5231](kubernetes-sigs/external-dns#5231)
-   docs: update link to Anexia webhook provider by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5244](kubernetes-sigs/external-dns#5244)
-   docs: update rfc2136 by [@&#8203;BasJ93](https://github.com/BasJ93) in [#&#8203;5325](kubernetes-sigs/external-dns#5325)

#### 📦 Others

-   Add Yandex Cloud Webhook by [@&#8203;ismailbaskin](https://github.com/ismailbaskin) in [#&#8203;5190](kubernetes-sigs/external-dns#5190)
-   chore: add se for nlb, alb in thailand region by [@&#8203;xshot9011](https://github.com/xshot9011) in [#&#8203;5200](kubernetes-sigs/external-dns#5200)
-   chore: fix typo on txtOwnerId comment/description by [@&#8203;lanandra](https://github.com/lanandra) in [#&#8203;5351](kubernetes-sigs/external-dns#5351)
-   chore(ci): fix random data race failure on source/node test by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5268](kubernetes-sigs/external-dns#5268)
-   chore(ci): improve release script by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5394](kubernetes-sigs/external-dns#5394)
-   chore(ci): update linter to v2.0.2 by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5246](kubernetes-sigs/external-dns#5246)
-   chore(code-cleanup): move logic away from main.go add tests by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5222](kubernetes-sigs/external-dns#5222)
-   chore(code): improve some tests + re-order sources flags CLI by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5288](kubernetes-sigs/external-dns#5288)
-   chore(code-quality): added lint checks by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5318](kubernetes-sigs/external-dns#5318)
-   chore(code-quality): providers linter warnings fixes by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5320](kubernetes-sigs/external-dns#5320)
-   chore(code-quality): refactoring and linter fixes by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5374](kubernetes-sigs/external-dns#5374)
-   chore(code-quality): webhook increase code coverage by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5337](kubernetes-sigs/external-dns#5337)
-   chore(crd): use conventional paths and update controller-gen to v0.17.2 by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5287](kubernetes-sigs/external-dns#5287)
-   chore(dependencies): update toools versions by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5252](kubernetes-sigs/external-dns#5252)
-   chore(deps): build with go 1.24.2 by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5306](kubernetes-sigs/external-dns#5306)
-   chore(deps): bump renovatebot/github-action from 41.0.14 to 41.0.16 in the dev-dependencies group by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5188](kubernetes-sigs/external-dns#5188)
-   chore(deps): bump renovatebot/github-action from 41.0.16 to 41.0.17 in the dev-dependencies group by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5210](kubernetes-sigs/external-dns#5210)
-   chore(deps): bump the dev-dependencies group across 1 directory with 14 updates by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5346](kubernetes-sigs/external-dns#5346)
-   chore(deps): bump the dev-dependencies group across 1 directory with 14 updates by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5382](kubernetes-sigs/external-dns#5382)
-   chore(deps): bump the dev-dependencies group across 1 directory with 17 updates by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5238](kubernetes-sigs/external-dns#5238)
-   chore(deps): bump the dev-dependencies group across 1 directory with 19 updates by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5262](kubernetes-sigs/external-dns#5262)
-   chore(deps): bump the dev-dependencies group across 1 directory with 20 updates by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5211](kubernetes-sigs/external-dns#5211)
-   chore(deps): bump the dev-dependencies group across 1 directory with 21 updates by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5313](kubernetes-sigs/external-dns#5313)
-   chore(deps): bump the dev-dependencies group across 1 directory with 2 updates by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5247](kubernetes-sigs/external-dns#5247)
-   chore(deps): bump the dev-dependencies group across 1 directory with 2 updates by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5301](kubernetes-sigs/external-dns#5301)
-   chore(deps): bump the dev-dependencies group across 1 directory with 2 updates by [@&#8203;app/dependabot](https://github.com/app/dependabot) in [#&#8203;5323](kubernetes-sigs/external-dns#5323)
-   chore(deps): code cleanup, pkg/errors is archived by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5335](kubernetes-sigs/external-dns#5335)
-   chore(deps): switch to goccy yaml by [@&#8203;Raffo](https://github.com/Raffo) in [#&#8203;5292](kubernetes-sigs/external-dns#5292)
-   chore(deps): update linter to v2.1.x by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5366](kubernetes-sigs/external-dns#5366)
-   chore(fqdn-template): fqdn templating move to specific folder and update documentation by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5354](kubernetes-sigs/external-dns#5354)
-   chore(github): add a release template by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5324](kubernetes-sigs/external-dns#5324)
-   chore(helm): add validation for prefix and suffix and capture regression by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5250](kubernetes-sigs/external-dns#5250)
-   chore(openstack designate)!: remove in-tree provider by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5126](kubernetes-sigs/external-dns#5126)
-   chore(providers): rename custom TTL constants to defaultTTL by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5312](kubernetes-sigs/external-dns#5312)
-   chore: Release Helm chart v1.16.1 by [@&#8203;stevehipwell](https://github.com/stevehipwell) in [#&#8203;5270](kubernetes-sigs/external-dns#5270)
-   chore(release): updates kustomize & docs with v0.16.1 by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5184](kubernetes-sigs/external-dns#5184)
-   chore(source): code cleanup by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5304](kubernetes-sigs/external-dns#5304)
-   chore(webhook): bump cenkalti/backoff version by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5342](kubernetes-sigs/external-dns#5342)
-   test: add tests for cloudflare provider by [@&#8203;natitomattis](https://github.com/natitomattis) in [#&#8203;5248](kubernetes-sigs/external-dns#5248)
-   test(log): execute on multiple platforms by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5370](kubernetes-sigs/external-dns#5370)
-   test(log): fix random race detection by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5273](kubernetes-sigs/external-dns#5273)
-   test(source): cover unhappy paths by [@&#8203;linoleparquet](https://github.com/linoleparquet) in [#&#8203;5369](kubernetes-sigs/external-dns#5369)
-   test(source): fix data race on node_test by [@&#8203;mloiseleur](https://github.com/mloiseleur) in [#&#8203;5334](kubernetes-sigs/external-dns#5334)
-   test(source/pod): improve code coverage by [@&#8203;ivankatliarchuk](https://github.com/ivankatliarchuk) in [#&#8203;5378](kubernetes-sigs/external-dns#5378)
-   test(tlsconfig): add unit tests by [@&#8203;linoleparquet](https://github.com/linoleparquet) in [#&#8203;5381](kubernetes-sigs/external-dns#5381)
-   test(zone_filter): improve coverage from 66.7% to 100% by [@&#8203;upsaurav12](https://github.com/upsaurav12) in [#&#8203;5388](kubernetes-sigs/external-dns#5388)

#### 📦 Docker Image

    docker pull registry.k8s.io/external-dns/external-dns:v0.17.0

#### New Contributors

-   [@&#8203;ismailbaskin](https://github.com/ismailbaskin) made their first contribution in kubernetes-sigs/external-dns#5190
-   [@&#8203;lexisother](https://github.com/lexisother) made their first contribution in kubernetes-sigs/external-dns#5147
-   [@&#8203;tico24](https://github.com/tico24) made their first contribution in kubernetes-sigs/external-dns#5197
-   [@&#8203;t3mi](https://github.com/t3mi) made their first contribution in kubernetes-sigs/external-dns#5207
-   [@&#8203;octo](https://github.com/octo) made their first contribution in kubernetes-sigs/external-dns#5231
-   [@&#8203;xshot9011](https://github.com/xshot9011) made their first contribution in kubernetes-sigs/external-dns#5200
-   [@&#8203;tJouve](https://github.com/tJouve) made their first contribution in kubernetes-sigs/external-dns#5226
-   [@&#8203;Hayajiro](https://github.com/Hayajiro) made their first contribution in kubernetes-sigs/external-dns#5045
-   [@&#8203;davidwin93](https://github.com/davidwin93) made their first contribution in kubernetes-sigs/external-dns#5241
-   [@&#8203;vflaux](https://github.com/vflaux) made their first contribution in kubernetes-sigs/external-dns#5175
-   [@&#8203;arthlr](https://github.com/arthlr) made their first contribution in kubernetes-sigs/external-dns#5281
-   [@&#8203;semnell](https://github.com/semnell) made their first contribution in kubernetes-sigs/external-dns#5297
-   [@&#8203;BasJ93](https://github.com/BasJ93) made their first contribution in kubernetes-sigs/external-dns#5325
-   [@&#8203;natitomattis](https://github.com/natitomattis) made their first contribution in kubernetes-sigs/external-dns#5248
-   [@&#8203;riupie](https://github.com/riupie) made their first contribution in kubernetes-sigs/external-dns#5352
-   [@&#8203;lanandra](https://github.com/lanandra) made their first contribution in kubernetes-sigs/external-dns#5351
-   [@&#8203;smilutinovic-ionos](https://github.com/smilutinovic-ionos) made their first contribution in kubernetes-sigs/external-dns#5364
-   [@&#8203;linoleparquet](https://github.com/linoleparquet) made their first contribution in kubernetes-sigs/external-dns#5369
-   [@&#8203;kashalls](https://github.com/kashalls) made their first contribution in kubernetes-sigs/external-dns#5349
-   [@&#8203;matkam](https://github.com/matkam) made their first contribution in kubernetes-sigs/external-dns#3949
-   [@&#8203;upsaurav12](https://github.com/upsaurav12) made their first contribution in kubernetes-sigs/external-dns#5388

**Full Changelog**: kubernetes-sigs/external-dns@v0.16.1...v0.17.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:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS4xNSIsInVwZGF0ZWRJblZlciI6IjQwLjExLjE1IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXAvbWlub3IiXX0=-->

Co-authored-by: JesusMtnez <[email protected]>
Reviewed-on: https://codeberg.org/JesusMtnez/homelab/pulls/712
Co-authored-by: JesusMtnez-bot <[email protected]>
Co-committed-by: JesusMtnez-bot <[email protected]>
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. 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/XL Denotes a PR that changes 500-999 lines, ignoring generated files. tide/merge-method-squash Denotes a PR that should be squashed by tide when it merges.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants