Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Validate AWS record values size during batch set generation #4126

Merged

Conversation

megum1n
Copy link
Contributor

@megum1n megum1n commented Dec 19, 2023

Description
There is a well known problem with AWS provider: External DNS throws an error during apply step due to AWS limitations for the record values size.

ResourceRecord elements
A request cannot contain more than 1,000 ResourceRecord elements (including alias records). When the value of the Action element is UPSERT, each ResourceRecord element is counted twice.

Maximum number of characters
The sum of the number of characters (including spaces) in all Value elements in a request cannot exceed 32,000 characters. When the value of the Action element is UPSERT, each character in a Value element is counted twice.

In this PR I added a validation step for all new changes. During batch set calculation all changes that exceed AWS limitations will be added to a separate batch.

Changes:

  • Added aws-batch-change-size-bytes flag. Default: 32000
  • Added aws-batch-change-size-values flag. Default: 1000
  • Added validation step for AWS records values size

Fixes:

Checklist

  • Unit tests updated
  • End user documentation updated

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Dec 19, 2023
@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 Dec 19, 2023
@k8s-ci-robot
Copy link
Contributor

Hi @megum1n. 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/test-infra repository.

@k8s-ci-robot k8s-ci-robot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Dec 19, 2023
@megum1n
Copy link
Contributor Author

megum1n commented Dec 19, 2023

Should we also validate new flags for a min value? External DNS will stuck in infinite loop if someone decides to set aws-batch-change-size-bytes to 6, for example (1.2.3.4 = 7 bytes).

@mloiseleur
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 Dec 19, 2023
@mloiseleur
Copy link
Contributor

\o Thanks for this PR.
It could help yes, to avoid infinite loop.

Wdyt about adding some docs on this subject ?
A link to AWS current limit could be helpful to know what would be a good value to set, for instance.

@mloiseleur
Copy link
Contributor

cc @szuecs

@megum1n
Copy link
Contributor Author

megum1n commented Dec 21, 2023

@mloiseleur thanks

It could help yes, to avoid infinite loop.

I added the same validation step into batchChangeSet function as for batch-size. Now there won't be any infinite loops - change will be skipped in case when it can't fit into any batch.

We can also validate those flags during program startup. We have two options to do it:

  • Use validation module and return fatal error in case when batch-size-bytes or batch-size-values values are too low. In this case external-dns won't be started.
  • Add validation step into main.go during AWS provider initialization step. If value is too low - throw a warning in the logs and use default value as fallback. The program will continue to work with default value instead.

I'm not sure which value should be considered as "too low". One A record with UPSERT action can take up to 30 bytes, and there are also TXT records, which take up to 510 bytes each. If we want to add such validation, I think min value should be at least 5000 bytes, maybe even more.

The same goes for batch-size-values - one UPSERT request will add at least 2 values.

Also, all changes are being grouped by ownership/name first, so there is a high chance to get a change, which won't fit in any batch.

I don't see any reason to change those values anyway :)

Wdyt about adding some docs on this subject ?

I updated docs as well 👍🏻

@mloiseleur
Copy link
Contributor

I don't see any reason to change those values anyway :)

Same here 😅 .
Many thanks, the doc is clear and concise.
/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Dec 21, 2023
provider/aws/aws.go Outdated Show resolved Hide resolved
provider/aws/aws.go Outdated Show resolved Hide resolved
provider/aws/aws_test.go Outdated Show resolved Hide resolved
provider/aws/aws_test.go Outdated Show resolved Hide resolved
@szuecs
Copy link
Contributor

szuecs commented Jan 5, 2024

@megum1n thanks for the PR, makes also sense your approach. There are a couple of comments and I think I found a bug. If you fixed everything just ping me again.

@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 5, 2024
@megum1n
Copy link
Contributor Author

megum1n commented Jan 5, 2024

@szuecs thank you for the review!
I fixed all the issues.

provider/aws/aws.go Outdated Show resolved Hide resolved
@szuecs
Copy link
Contributor

szuecs commented Jan 11, 2024

I found only 2 small ones. I think the doc needs to be fixed and if you have that you can also drop the 0 value setting in the same.

Thanks for the work!

@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 11, 2024
@megum1n
Copy link
Contributor Author

megum1n commented Feb 3, 2024

@szuecs ping

@mloiseleur
Copy link
Contributor

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Feb 5, 2024
@szuecs
Copy link
Contributor

szuecs commented Feb 7, 2024

/approve

@k8s-ci-robot k8s-ci-robot added needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. approved Indicates a PR has been approved by an approver from all required OWNERS files. labels Feb 7, 2024
@szuecs
Copy link
Contributor

szuecs commented Feb 7, 2024

@megum1n can you resolve the conflicts? Thanks!

@k8s-ci-robot k8s-ci-robot removed lgtm "Looks good to me", indicates that a PR is ready to be merged. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Feb 7, 2024
@megum1n
Copy link
Contributor Author

megum1n commented Feb 7, 2024

@szuecs done

@megum1n
Copy link
Contributor Author

megum1n commented Feb 7, 2024

Tests passed localy w/o any issues 🤔

/retest-required

@szuecs
Copy link
Contributor

szuecs commented Feb 7, 2024

/test pull-external-dns-unit-test

@szuecs szuecs mentioned this pull request Feb 7, 2024
2 tasks
@pascalgn
Copy link
Contributor

pascalgn commented Feb 7, 2024

I created #4240 to consolidate discussions of TestCoreDNSApplyChanges test failure

@szuecs
Copy link
Contributor

szuecs commented Feb 9, 2024

please rebase the test was fixed

@szuecs
Copy link
Contributor

szuecs commented Feb 9, 2024

/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 Feb 9, 2024
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: szuecs

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 merged commit 3231951 into kubernetes-sigs:master Feb 9, 2024
12 checks passed
truecharts-admin added a commit to truecharts/charts that referenced this pull request Mar 22, 2024
…rnal-dns to v0.14.1@7bb4c52 by renovate (#19644)

This PR contains the following updates:

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

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

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

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

[Compare
Source](https://github.com/kubernetes-sigs/external-dns/compare/v0.14.0...v0.14.1)

#### What's Changed

- docs: add reference to adguard webhook provider by
[@&#8203;muhlba91](https://github.com/muhlba91) in
[kubernetes-sigs/external-dns#4030
- Update azure.md by [@&#8203;sesoldi](https://github.com/sesoldi) in
[kubernetes-sigs/external-dns#4009
- add initial support for gw apis 1.0.0 GA by
[@&#8203;larivierec](https://github.com/larivierec) in
[kubernetes-sigs/external-dns#4019
- build(deps): bump the dev-dependencies group with 3 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4028
- add stackit webhook to readme by
[@&#8203;PatrickKoss](https://github.com/PatrickKoss) in
[kubernetes-sigs/external-dns#4029
- Add org.opencontainers.image.source label to container image by
[@&#8203;robinschneider](https://github.com/robinschneider) in
[kubernetes-sigs/external-dns#4022
- bump kustomize version to v0.14.0 by
[@&#8203;Raffo](https://github.com/Raffo) in
[kubernetes-sigs/external-dns#4024
- OCI Provider private zone and workload identity support by
[@&#8203;anders-swanson](https://github.com/anders-swanson) in
[kubernetes-sigs/external-dns#3995
- RFC2136: Allow multiple zones by
[@&#8203;CRASH-Tech](https://github.com/CRASH-Tech) in
[kubernetes-sigs/external-dns#3976
- chore(chart): Updated GH workflows by
[@&#8203;stevehipwell](https://github.com/stevehipwell) in
[kubernetes-sigs/external-dns#4010
- fix: dynamodb registry when statements over 25 by
[@&#8203;danie1sullivan](https://github.com/danie1sullivan) in
[kubernetes-sigs/external-dns#4021
- Allow to configure revisionHistoryLimit on the K8s Deployment resource
by [@&#8203;arnisoph](https://github.com/arnisoph) in
[kubernetes-sigs/external-dns#4008
- chore: Bump kingpin/v2 dep by
[@&#8203;mrueg](https://github.com/mrueg) in
[kubernetes-sigs/external-dns#4033
- Update all image versions in documentation by
[@&#8203;Raffo](https://github.com/Raffo) in
[kubernetes-sigs/external-dns#4037
- updated various broken link in ultradns tutorial by
[@&#8203;kundan2707](https://github.com/kundan2707) in
[kubernetes-sigs/external-dns#3794
- Make --ignore-hostname-annotation flag more consistent by
[@&#8203;johngmyers](https://github.com/johngmyers) in
[kubernetes-sigs/external-dns#3964
- service source uses externalIPs in ExternalName type if available by
[@&#8203;dromie](https://github.com/dromie) in
[kubernetes-sigs/external-dns#4007
- build(deps): bump the dev-dependencies group with 1 update by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4046
- fix(google): ensure trailing dot for SRV records by
[@&#8203;siliconsheep](https://github.com/siliconsheep) in
[kubernetes-sigs/external-dns#4048
- oracle provider: dns zone cache by
[@&#8203;anders-swanson](https://github.com/anders-swanson) in
[kubernetes-sigs/external-dns#4049
- fix(httpProxy): drop status==valid filter by
[@&#8203;nefelim4ag](https://github.com/nefelim4ag) in
[kubernetes-sigs/external-dns#3978
- doc: added --infoblox-view argument to Infoblox documentation by
[@&#8203;tanerm](https://github.com/tanerm) in
[kubernetes-sigs/external-dns#4036
- fix: regression on scaleway provider in 0.14.0 by
[@&#8203;M0NsTeRRR](https://github.com/M0NsTeRRR) in
[kubernetes-sigs/external-dns#4039
- Add GleSYS to the readme for webhooks by
[@&#8203;glesys-andreas](https://github.com/glesys-andreas) in
[kubernetes-sigs/external-dns#4054
- build(deps): bump the dev-dependencies group with 1 update by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4057
- feat: make webhook httpapi reusable by
[@&#8203;mrueg](https://github.com/mrueg) in
[kubernetes-sigs/external-dns#4065
- Make routegroup client IPv6 compatible by
[@&#8203;mikkeloscar](https://github.com/mikkeloscar) in
[kubernetes-sigs/external-dns#4068
- doc: fix link to ionos webhook provider by
[@&#8203;akrieg-ionos](https://github.com/akrieg-ionos) in
[kubernetes-sigs/external-dns#4031
- feat(chart): Added complex provider support by
[@&#8203;stevehipwell](https://github.com/stevehipwell) in
[kubernetes-sigs/external-dns#4085
- chore: update 45 go modules dependancies by
[@&#8203;mloiseleur](https://github.com/mloiseleur) in
[kubernetes-sigs/external-dns#4088
- webhook: Move httpapi into own package by
[@&#8203;mrueg](https://github.com/mrueg) in
[kubernetes-sigs/external-dns#4084
- doc: Add netcup webhook provider by
[@&#8203;mrueg](https://github.com/mrueg) in
[kubernetes-sigs/external-dns#4095
- build(deps): bump the dev-dependencies group with 3 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4097
- update to add il-central-1 by
[@&#8203;theloneexplorerquest](https://github.com/theloneexplorerquest)
in
[kubernetes-sigs/external-dns#4093
- Add readme bizflycloud webhook provider by
[@&#8203;huyduong2792](https://github.com/huyduong2792) in
[kubernetes-sigs/external-dns#4079
- fix: Allow revisionHistoryLimit to be set to 0 by
[@&#8203;bodgit](https://github.com/bodgit) in
[kubernetes-sigs/external-dns#4053
- helm: Avoid unnecessary pod restart on each helm chart version by
[@&#8203;jkroepke](https://github.com/jkroepke) in
[kubernetes-sigs/external-dns#4103
- Correct typo from 'Kuberntes' to 'Kubernetes' by
[@&#8203;jongwooo](https://github.com/jongwooo) in
[kubernetes-sigs/external-dns#4118
- build(deps): bump golang.org/x/crypto from 0.16.0 to 0.17.0 by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4123
- cleanup: remove dead code (`(Create|Update|Delete)Records` functions
in AWS, Google, DNSimple) by
[@&#8203;mloiseleur](https://github.com/mloiseleur) in
[kubernetes-sigs/external-dns#4129
- ci: remove `confusing-naming` property by
[@&#8203;PascalBourdier](https://github.com/PascalBourdier) in
[kubernetes-sigs/external-dns#4116
- chore: fix code comment by
[@&#8203;tanujd11](https://github.com/tanujd11) in
[kubernetes-sigs/external-dns#4131
- fix: include cloudflare error in metrics and logs by
[@&#8203;danie1sullivan](https://github.com/danie1sullivan) in
[kubernetes-sigs/external-dns#4082
- gateway-api: fix wildcard matching by
[@&#8203;abursavich](https://github.com/abursavich) in
[kubernetes-sigs/external-dns#4124
- build(deps): bump the dev-dependencies group with 23 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4134
- Hetzner webhook provider readme link by
[@&#8203;mconfalonieri](https://github.com/mconfalonieri) in
[kubernetes-sigs/external-dns#4051
- Fix timeout for traefik-proxy source by
[@&#8203;k8r-io](https://github.com/k8r-io) in
[kubernetes-sigs/external-dns#4076
- build(deps): bump the dev-dependencies group with 7 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4144
- fix: remove useless functions by
[@&#8203;PascalBourdier](https://github.com/PascalBourdier) in
[kubernetes-sigs/external-dns#4115
- fix(ambassador): don't resolve LB hostname by
[@&#8203;fad3t](https://github.com/fad3t) in
[kubernetes-sigs/external-dns#4092
- doc(azure): shows how to use userAssignedIdentityID with clientId in
azure.json by [@&#8203;thesse1](https://github.com/thesse1) in
[kubernetes-sigs/external-dns#4133
- build(deps): bump the dev-dependencies group with 4 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4146
- webhook: Fix metric name and add request gauges by
[@&#8203;mrueg](https://github.com/mrueg) in
[kubernetes-sigs/external-dns#4078
- build(deps): bump the dev-dependencies group with 2 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4145
- build(deps): bump the dev-dependencies group with 1 update by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4154
- fix: heritage txt record was not able to be created for txt record by
[@&#8203;tanujd11](https://github.com/tanujd11) in
[kubernetes-sigs/external-dns#4140
- build(deps): bump the dev-dependencies group with 9 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4155
- fix(istio): support for ExternalIPs in Istio resources by
[@&#8203;KarstenSiemer](https://github.com/KarstenSiemer) in
[kubernetes-sigs/external-dns#4094
- Update rfc2136 provider to split out changes per zone by
[@&#8203;gregsidelinger](https://github.com/gregsidelinger) in
[kubernetes-sigs/external-dns#4107
- Exoscale provider optimization by
[@&#8203;kobajagi](https://github.com/kobajagi) in
[kubernetes-sigs/external-dns#4071
- fix: godaddy - rate limiter add one token every second by
[@&#8203;nefelim4ag](https://github.com/nefelim4ag) in
[kubernetes-sigs/external-dns#4087
- feat(helm-chart): Allow configuration of ipFamilyPolicy by
[@&#8203;dongjiang1989](https://github.com/dongjiang1989) in
[kubernetes-sigs/external-dns#4153
- chore(chart): Deprecated secretConfiguration by
[@&#8203;stevehipwell](https://github.com/stevehipwell) in
[kubernetes-sigs/external-dns#4161
- feat: support webhook provider in Chart by
[@&#8203;mloiseleur](https://github.com/mloiseleur) in
[kubernetes-sigs/external-dns#4032
- feat(helm-chart): Released chart for v0.14.0 by
[@&#8203;appkins](https://github.com/appkins) in
[kubernetes-sigs/external-dns#4073
- chore(chart): Fixed chart changelog by
[@&#8203;stevehipwell](https://github.com/stevehipwell) in
[kubernetes-sigs/external-dns#4168
- fix(pdns): provider implicitly changes CNAME to ALIAS by
[@&#8203;tmaroschik](https://github.com/tmaroschik) in
[kubernetes-sigs/external-dns#4162
- fix(chart): Fix webhook install failure by
[@&#8203;gabe565](https://github.com/gabe565) in
[kubernetes-sigs/external-dns#4173
- fix: provide possibility to have a soft error mode by
[@&#8203;szuecs](https://github.com/szuecs) in
[kubernetes-sigs/external-dns#4166
- \[helm] Allow tpl in provider again by
[@&#8203;jkroepke](https://github.com/jkroepke) in
[kubernetes-sigs/external-dns#4180
- Fix args for webhook deployment by
[@&#8203;webwurst](https://github.com/webwurst) in
[kubernetes-sigs/external-dns#4202
- add RBAC fix to namespaces - get, watch, list to each gateway-\*route
by [@&#8203;orenlevi111](https://github.com/orenlevi111) in
[kubernetes-sigs/external-dns#4205
- chore: Released chart v1.14.3 by
[@&#8203;stevehipwell](https://github.com/stevehipwell) in
[kubernetes-sigs/external-dns#4208
- build(deps): bump the dev-dependencies group with 24 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4227
- Fix "workload identity" spelling by
[@&#8203;gdubicki](https://github.com/gdubicki) in
[kubernetes-sigs/external-dns#4201
- feat(aws-provider): create flag to support sub-domains match parent by
[@&#8203;thiagoluiznunes](https://github.com/thiagoluiznunes) in
[kubernetes-sigs/external-dns#4236
- Change coredns testing to fix failing tests by
[@&#8203;pascalgn](https://github.com/pascalgn) in
[kubernetes-sigs/external-dns#4245
- Validate AWS record values size during batch set generation by
[@&#8203;megum1n](https://github.com/megum1n) in
[kubernetes-sigs/external-dns#4126
- build(deps): bump the dev-dependencies group with 1 update by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4222
- build(deps): bump the dev-dependencies group with 13 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4246
- Update link to current workshop by
[@&#8203;AndrewCharlesHay](https://github.com/AndrewCharlesHay) in
[kubernetes-sigs/external-dns#4170
- cleanup: Drop additional docker files by
[@&#8203;mrueg](https://github.com/mrueg) in
[kubernetes-sigs/external-dns#4182
- chore: update the slack channel URL into the github support template
by [@&#8203;angegar](https://github.com/angegar) in
[kubernetes-sigs/external-dns#3815
- add soft error by
[@&#8203;jeanfrancoislelezec](https://github.com/jeanfrancoislelezec)
in
[kubernetes-sigs/external-dns#4199
- Fix Gateway API TLS TCP Route by
[@&#8203;zs-ko](https://github.com/zs-ko) in
[kubernetes-sigs/external-dns#4213
- Update the OCI Provider to incorporate SoftError to avoid
CrashLoopBackoff by [@&#8203;jrosinsk](https://github.com/jrosinsk) in
[kubernetes-sigs/external-dns#4229
- Add Gcore provider on readme by
[@&#8203;kokizzu](https://github.com/kokizzu) in
[kubernetes-sigs/external-dns#4256
- feat: enable Azure subscription ID override by
[@&#8203;pascalgn](https://github.com/pascalgn) in
[kubernetes-sigs/external-dns#4186
- build(deps): bump the dev-dependencies group with 1 update by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4254
- feat: allow setting dnsConfig by
[@&#8203;davhdavh](https://github.com/davhdavh) in
[kubernetes-sigs/external-dns#4265
- build(deps): bump the dev-dependencies group with 17 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4270
- build(deps): bump the dev-dependencies group with 1 update by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4269
- build(deps): bump the dev-dependencies group with 6 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4279
- docs: 📝 add Azure DNS w/workload identity blog post to readme by
[@&#8203;krukowskid](https://github.com/krukowskid) in
[kubernetes-sigs/external-dns#4248
- feat(gandi): add support for personal access token by
[@&#8203;deadlybore](https://github.com/deadlybore) in
[kubernetes-sigs/external-dns#4249
- RFC2136: Add support for DNS-over-TLS by
[@&#8203;iteratee](https://github.com/iteratee) in
[kubernetes-sigs/external-dns#3974
- Fixing NAPTR support by
[@&#8203;jstudler](https://github.com/jstudler) in
[kubernetes-sigs/external-dns#4212
- doc: explain how to use Azure internal load balancer by
[@&#8203;mloiseleur](https://github.com/mloiseleur) in
[kubernetes-sigs/external-dns#4252
- fix(aws): allow alias records to be created when using the alias
annotation by [@&#8203;papayakiwi](https://github.com/papayakiwi) in
[kubernetes-sigs/external-dns#4178
- fix(service): omit nil endpoints and prefer endpointsForHostname() by
[@&#8203;yurrriq](https://github.com/yurrriq) in
[kubernetes-sigs/external-dns#4293
- chore: update maintainers by
[@&#8203;mloiseleur](https://github.com/mloiseleur) in
[kubernetes-sigs/external-dns#4304
- build(deps): bump the dev-dependencies group with 21 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4307
- build(deps): bump the dev-dependencies group with 6 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4312
- feat(ambassador): add support for provider specific annotations by
[@&#8203;fad3t](https://github.com/fad3t) in
[kubernetes-sigs/external-dns#4120
- build(deps): bump the dev-dependencies group with 8 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4313
- build(deps): bump the dev-dependencies group with 2 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4314
- build(deps): bump the dev-dependencies group with 14 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[kubernetes-sigs/external-dns#4321

#### Docker image

    registry.k8s.io/external-dns/external-dns:v0.14.0

#### New Contributors

- [@&#8203;muhlba91](https://github.com/muhlba91) made their first
contribution in
[kubernetes-sigs/external-dns#4030
- [@&#8203;sesoldi](https://github.com/sesoldi) made their first
contribution in
[kubernetes-sigs/external-dns#4009
- [@&#8203;larivierec](https://github.com/larivierec) made their first
contribution in
[kubernetes-sigs/external-dns#4019
- [@&#8203;PatrickKoss](https://github.com/PatrickKoss) made their
first contribution in
[kubernetes-sigs/external-dns#4029
- [@&#8203;robinschneider](https://github.com/robinschneider) made
their first contribution in
[kubernetes-sigs/external-dns#4022
- [@&#8203;anders-swanson](https://github.com/anders-swanson) made
their first contribution in
[kubernetes-sigs/external-dns#3995
- [@&#8203;CRASH-Tech](https://github.com/CRASH-Tech) made their first
contribution in
[kubernetes-sigs/external-dns#3976
- [@&#8203;danie1sullivan](https://github.com/danie1sullivan) made
their first contribution in
[kubernetes-sigs/external-dns#4021
- [@&#8203;arnisoph](https://github.com/arnisoph) made their first
contribution in
[kubernetes-sigs/external-dns#4008
- [@&#8203;dromie](https://github.com/dromie) made their first
contribution in
[kubernetes-sigs/external-dns#4007
- [@&#8203;siliconsheep](https://github.com/siliconsheep) made their
first contribution in
[kubernetes-sigs/external-dns#4048
- [@&#8203;tanerm](https://github.com/tanerm) made their first
contribution in
[kubernetes-sigs/external-dns#4036
- [@&#8203;glesys-andreas](https://github.com/glesys-andreas) made
their first contribution in
[kubernetes-sigs/external-dns#4054
- [@&#8203;akrieg-ionos](https://github.com/akrieg-ionos) made their
first contribution in
[kubernetes-sigs/external-dns#4031
-
[@&#8203;theloneexplorerquest](https://github.com/theloneexplorerquest)
made their first contribution in
[kubernetes-sigs/external-dns#4093
- [@&#8203;huyduong2792](https://github.com/huyduong2792) made their
first contribution in
[kubernetes-sigs/external-dns#4079
- [@&#8203;tanujd11](https://github.com/tanujd11) made their first
contribution in
[kubernetes-sigs/external-dns#4131
- [@&#8203;mconfalonieri](https://github.com/mconfalonieri) made their
first contribution in
[kubernetes-sigs/external-dns#4051
- [@&#8203;k8r-io](https://github.com/k8r-io) made their first
contribution in
[kubernetes-sigs/external-dns#4076
- [@&#8203;thesse1](https://github.com/thesse1) made their first
contribution in
[kubernetes-sigs/external-dns#4133
- [@&#8203;dongjiang1989](https://github.com/dongjiang1989) made their
first contribution in
[kubernetes-sigs/external-dns#4153
- [@&#8203;appkins](https://github.com/appkins) made their first
contribution in
[kubernetes-sigs/external-dns#4073
- [@&#8203;tmaroschik](https://github.com/tmaroschik) made their first
contribution in
[kubernetes-sigs/external-dns#4162
- [@&#8203;gabe565](https://github.com/gabe565) made their first
contribution in
[kubernetes-sigs/external-dns#4173
- [@&#8203;webwurst](https://github.com/webwurst) made their first
contribution in
[kubernetes-sigs/external-dns#4202
- [@&#8203;orenlevi111](https://github.com/orenlevi111) made their
first contribution in
[kubernetes-sigs/external-dns#4205
- [@&#8203;gdubicki](https://github.com/gdubicki) made their first
contribution in
[kubernetes-sigs/external-dns#4201
- [@&#8203;thiagoluiznunes](https://github.com/thiagoluiznunes) made
their first contribution in
[kubernetes-sigs/external-dns#4236
- [@&#8203;AndrewCharlesHay](https://github.com/AndrewCharlesHay) made
their first contribution in
[kubernetes-sigs/external-dns#4170
- [@&#8203;angegar](https://github.com/angegar) made their first
contribution in
[kubernetes-sigs/external-dns#3815
-
[@&#8203;jeanfrancoislelezec](https://github.com/jeanfrancoislelezec)
made their first contribution in
[kubernetes-sigs/external-dns#4199
- [@&#8203;zs-ko](https://github.com/zs-ko) made their first
contribution in
[kubernetes-sigs/external-dns#4213
- [@&#8203;kokizzu](https://github.com/kokizzu) made their first
contribution in
[kubernetes-sigs/external-dns#4256
- [@&#8203;davhdavh](https://github.com/davhdavh) made their first
contribution in
[kubernetes-sigs/external-dns#4265
- [@&#8203;krukowskid](https://github.com/krukowskid) made their first
contribution in
[kubernetes-sigs/external-dns#4248
- [@&#8203;deadlybore](https://github.com/deadlybore) made their first
contribution in
[kubernetes-sigs/external-dns#4249
- [@&#8203;iteratee](https://github.com/iteratee) made their first
contribution in
[kubernetes-sigs/external-dns#3974
- [@&#8203;jstudler](https://github.com/jstudler) made their first
contribution in
[kubernetes-sigs/external-dns#4212
- [@&#8203;papayakiwi](https://github.com/papayakiwi) made their first
contribution in
[kubernetes-sigs/external-dns#4178
- [@&#8203;yurrriq](https://github.com/yurrriq) made their first
contribution in
[kubernetes-sigs/external-dns#4293

**Full Changelog**:
kubernetes-sigs/external-dns@v0.14.0...v0.14.1

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI2NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
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/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants