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

Add provider cache #4597

Merged
merged 14 commits into from
Aug 14, 2024
Merged

Conversation

tjamet
Copy link
Contributor

@tjamet tjamet commented Jul 8, 2024

Description

In the current implementation, DNS providers are called to list all records on every loop. This is expensive in terms of number of requests to the provider and may result in being rate limited, as reported in 1293 and 3397.

In our case, we have approximately 20,000 records in our AWS Hosted Zone. The ListResourceRecordSets API call allows a maximum of 300 items per call. That requires 67 API calls per external-dns deployment during every sync period

With this, we introduce an optional generic caching mechanism at the provider level, that re-uses the latest known list of records for a given time.

This prevents from expensive Provider calls to list all records for each object modification that does not change the actual record (annotations, statuses, ingress routing, ...)

This introduces 2 trade-offs:

  1. Any changes or corruption directly on the provider side will be longer to detect and to resolve, up to the cache time

  2. Any conflicting records in the DNS provider (such as a different external-dns instance) injected during the cache validity will cause the first iteration of the next reconcile loop to fail, and hence add a delay until the next retry

Checklist

  • Unit tests updated
  • End user documentation updated

reopen #3402

Copy link

linux-foundation-easycla bot commented Jul 8, 2024

CLA Signed

The committers listed above are authorized under a signed CLA.

@k8s-ci-robot k8s-ci-robot added cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jul 8, 2024
@k8s-ci-robot
Copy link
Contributor

Hi @tjamet. 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/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Jul 8, 2024
@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. and removed cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. labels Jul 8, 2024
@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 Jul 14, 2024
docs/tutorials/aws.md Outdated Show resolved Hide resolved
Copy link
Contributor

@mloiseleur mloiseleur left a comment

Choose a reason for hiding this comment

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

This PR is really great, with test, documentation and metrics.
Many thanks for that.
For the documentation, Wdyt of adding a new page about this topic in advanced topic section ?
/lgtm
/assign @Raffo

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

tjamet commented Jul 31, 2024

This PR is really great, with test, documentation and metrics. Many thanks for that. For the documentation, Wdyt of adding a new page about this topic in advanced topic section ? /lgtm /assign @Raffo

Happy to do so.

I will take a look if I can do it in the coming days

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

tjamet commented Aug 5, 2024

This PR is really great, with test, documentation and metrics. Many thanks for that. For the documentation, Wdyt of adding a new page about this topic in advanced topic section ? /lgtm /assign @Raffo

Hi!

I have added a page dealing with those API rate limits concerns.
let me know what you think, if there is anything we need to do to improve it.

docs/rate-limits.md Outdated Show resolved Hide resolved
docs/rate-limits.md Outdated Show resolved Hide resolved
docs/rate-limits.md Outdated Show resolved Hide resolved
docs/rate-limits.md Outdated Show resolved Hide resolved
docs/rate-limits.md Outdated Show resolved Hide resolved
@mloiseleur
Copy link
Contributor

@tjamet I have left some suggestion, mainly formatting. Many thanks, it's quite concise and clear.

@Raffo Do you want to review it before merge ?

docs/tutorials/aws.md Outdated Show resolved Hide resolved
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 14, 2024
@tjamet
Copy link
Contributor Author

tjamet commented Aug 14, 2024

@tjamet We are near the merge for this one. Would you please rebase it ?

Sure, I have just rebased it!

@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 Aug 14, 2024
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 14, 2024
@tjamet
Copy link
Contributor Author

tjamet commented Aug 14, 2024

/lgtm

Apologies, I didn't see the LGTM and applied a suggestion. I guess this will require a new lgtm

@Raffo
Copy link
Contributor

Raffo commented Aug 14, 2024

/lgtm
/approve

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: Raffo

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 Aug 14, 2024
@Raffo
Copy link
Contributor

Raffo commented Aug 14, 2024

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 14, 2024
@k8s-ci-robot k8s-ci-robot merged commit c87fcc7 into kubernetes-sigs:master Aug 14, 2024
13 checks passed
truecharts-admin referenced this pull request in truecharts/public Sep 5, 2024
…rnal-dns to v0.15.0@338dd8c by renovate (#25969)

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.14.2` -> `v0.15.0` |

---

> [!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.15.0`](https://github.com/kubernetes-sigs/external-dns/releases/tag/v0.15.0)

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

#### Important notes

This release drops a few unmaintained providers. See
[https://github.com/kubernetes-sigs/external-dns/pull/4719](https://github.com/kubernetes-sigs/external-dns/pull/4719)
as mentioned in
[https://github.com/kubernetes-sigs/external-dns/issues/4347](https://github.com/kubernetes-sigs/external-dns/issues/4347).
If you need to use any of the previous providers, please use a previous
release of external DNS or follow the instructions to implement a
webhook provider that supports those providers.

#### What's Changed

- build(deps): bump actions/checkout from 4.1.5 to 4.1.6 in the
dev-dependencies group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4477](https://github.com/kubernetes-sigs/external-dns/pull/4477)
- Update kustomize version for v0.14.2 by
[@&#8203;Raffo](https://github.com/Raffo) in
[https://github.com/kubernetes-sigs/external-dns/pull/4480](https://github.com/kubernetes-sigs/external-dns/pull/4480)
- build(deps): bump the dev-dependencies group with 8 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4478](https://github.com/kubernetes-sigs/external-dns/pull/4478)
- update docs to v0.14.2 by
[@&#8203;Raffo](https://github.com/Raffo) in
[https://github.com/kubernetes-sigs/external-dns/pull/4481](https://github.com/kubernetes-sigs/external-dns/pull/4481)
- build(deps): bump GrantBirki/json-yaml-validate from 2.7.1 to 3.0.0 in
the dev-dependencies group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4489](https://github.com/kubernetes-sigs/external-dns/pull/4489)
- fix: re-add api-approved.kubernetes.io annotation by
[@&#8203;morremeyer](https://github.com/morremeyer) in
[https://github.com/kubernetes-sigs/external-dns/pull/4488](https://github.com/kubernetes-sigs/external-dns/pull/4488)
- feat(webhooks): pass webhook-\* annotations to webhook providers by
[@&#8203;Raffo](https://github.com/Raffo) in
[https://github.com/kubernetes-sigs/external-dns/pull/4458](https://github.com/kubernetes-sigs/external-dns/pull/4458)
- fix(traefik): Nil pointer exception if legacy traefik is disabled by
[@&#8203;kbudde](https://github.com/kbudde) in
[https://github.com/kubernetes-sigs/external-dns/pull/4502](https://github.com/kubernetes-sigs/external-dns/pull/4502)
- add unifi webhook to readme by
[@&#8203;onedr0p](https://github.com/onedr0p) in
[https://github.com/kubernetes-sigs/external-dns/pull/4504](https://github.com/kubernetes-sigs/external-dns/pull/4504)
- Drop experimental notice in webhook flags by
[@&#8203;Raffo](https://github.com/Raffo) in
[https://github.com/kubernetes-sigs/external-dns/pull/4507](https://github.com/kubernetes-sigs/external-dns/pull/4507)
- feat(coredns): etcd authentication by
[@&#8203;matthieugouel](https://github.com/matthieugouel) in
[https://github.com/kubernetes-sigs/external-dns/pull/4503](https://github.com/kubernetes-sigs/external-dns/pull/4503)
- Bump the dev-dependencies group across 1 directory with 13 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4514](https://github.com/kubernetes-sigs/external-dns/pull/4514)
- Add Infoblox webhook provider by
[@&#8203;k0da](https://github.com/k0da) in
[https://github.com/kubernetes-sigs/external-dns/pull/4513](https://github.com/kubernetes-sigs/external-dns/pull/4513)
- 🌱 docs(footer): Add trademark disclaimer by
[@&#8203;mariasalcedo](https://github.com/mariasalcedo) in
[https://github.com/kubernetes-sigs/external-dns/pull/4529](https://github.com/kubernetes-sigs/external-dns/pull/4529)
- chore!: Remove infoblox in-tree provider by
[@&#8203;mloiseleur](https://github.com/mloiseleur) in
[https://github.com/kubernetes-sigs/external-dns/pull/4516](https://github.com/kubernetes-sigs/external-dns/pull/4516)
- Update to Go 1.22.4 by
[@&#8203;Raffo](https://github.com/Raffo) in
[https://github.com/kubernetes-sigs/external-dns/pull/4534](https://github.com/kubernetes-sigs/external-dns/pull/4534)
- Bump the dev-dependencies group across 1 directory with 19 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4536](https://github.com/kubernetes-sigs/external-dns/pull/4536)
- Add documentation about etcd HTTPS for CoreDNS provider by
[@&#8203;AlessandroZanatta](https://github.com/AlessandroZanatta)
in
[https://github.com/kubernetes-sigs/external-dns/pull/4538](https://github.com/kubernetes-sigs/external-dns/pull/4538)
- chore(chart): Released chart for v0.14.2 by
[@&#8203;stevehipwell](https://github.com/stevehipwell) in
[https://github.com/kubernetes-sigs/external-dns/pull/4541](https://github.com/kubernetes-sigs/external-dns/pull/4541)
- Bump the dev-dependencies group with 4 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4540](https://github.com/kubernetes-sigs/external-dns/pull/4540)
- feat(aws): use AWS profiles using .credentials file by
[@&#8203;roehrijn](https://github.com/roehrijn) in
[https://github.com/kubernetes-sigs/external-dns/pull/3973](https://github.com/kubernetes-sigs/external-dns/pull/3973)
- fix(cloudflare): trimSpace on token read from file by
[@&#8203;simonostendorf](https://github.com/simonostendorf) in
[https://github.com/kubernetes-sigs/external-dns/pull/4515](https://github.com/kubernetes-sigs/external-dns/pull/4515)
- docs: upgrade mkdocs and fix broken links by
[@&#8203;mloiseleur](https://github.com/mloiseleur) in
[https://github.com/kubernetes-sigs/external-dns/pull/4378](https://github.com/kubernetes-sigs/external-dns/pull/4378)
- chore(deps): bump github.com/vektah/gqlparser/v2 from 2.5.1 to 2.5.14
by [@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4546](https://github.com/kubernetes-sigs/external-dns/pull/4546)
- chore(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity
from 1.5.2 to 1.6.0 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4544](https://github.com/kubernetes-sigs/external-dns/pull/4544)
- chore(deps): bump the dev-dependencies group across 1 directory with
19 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4562](https://github.com/kubernetes-sigs/external-dns/pull/4562)
- chore(deps): bump actions/checkout from 4.1.6 to 4.1.7 in the
dev-dependencies group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4547](https://github.com/kubernetes-sigs/external-dns/pull/4547)
- feat(rfc2136): add PTR optional support by
[@&#8203;angeloxx](https://github.com/angeloxx) in
[https://github.com/kubernetes-sigs/external-dns/pull/4283](https://github.com/kubernetes-sigs/external-dns/pull/4283)
- Update cloudflare.md by
[@&#8203;tobiabocchi](https://github.com/tobiabocchi) in
[https://github.com/kubernetes-sigs/external-dns/pull/4583](https://github.com/kubernetes-sigs/external-dns/pull/4583)
- feat!: update GRPCRoute client from v1alpha2 to stable v1 by
[@&#8203;thameezb](https://github.com/thameezb) in
[https://github.com/kubernetes-sigs/external-dns/pull/4567](https://github.com/kubernetes-sigs/external-dns/pull/4567)
- docs(annotations): note how to set multiple hostnames by
[@&#8203;hopkinsth](https://github.com/hopkinsth) in
[https://github.com/kubernetes-sigs/external-dns/pull/4602](https://github.com/kubernetes-sigs/external-dns/pull/4602)
- chore(deps): bump the dev-dependencies group across 1 directory with 2
updates by [@&#8203;dependabot](https://github.com/dependabot)
in
[https://github.com/kubernetes-sigs/external-dns/pull/4604](https://github.com/kubernetes-sigs/external-dns/pull/4604)
- Gateway API: Revert Gateway and HTTPRoute objects from v1 to v1beta1
by [@&#8203;abursavich](https://github.com/abursavich) in
[https://github.com/kubernetes-sigs/external-dns/pull/4610](https://github.com/kubernetes-sigs/external-dns/pull/4610)
- chore(deps): bump google.golang.org/grpc from 1.64.0 to 1.64.1 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4600](https://github.com/kubernetes-sigs/external-dns/pull/4600)
- chore(deps): bump the dev-dependencies group across 1 directory with
37 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4655](https://github.com/kubernetes-sigs/external-dns/pull/4655)
- docs: fix broken link by
[@&#8203;ilmax](https://github.com/ilmax) in
[https://github.com/kubernetes-sigs/external-dns/pull/4662](https://github.com/kubernetes-sigs/external-dns/pull/4662)
- azure-private-dns: Fix LoadBalancer example by
[@&#8203;orgads](https://github.com/orgads) in
[https://github.com/kubernetes-sigs/external-dns/pull/4663](https://github.com/kubernetes-sigs/external-dns/pull/4663)
- AWS: Change documentation to use Helm values by
[@&#8203;pier-oliviert](https://github.com/pier-oliviert) in
[https://github.com/kubernetes-sigs/external-dns/pull/4577](https://github.com/kubernetes-sigs/external-dns/pull/4577)
- chore(deps): bump the dev-dependencies group across 1 directory with
10 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4668](https://github.com/kubernetes-sigs/external-dns/pull/4668)
- Improve MinEventInterval compliance with docs by
[@&#8203;tjamet](https://github.com/tjamet) in
[https://github.com/kubernetes-sigs/external-dns/pull/3400](https://github.com/kubernetes-sigs/external-dns/pull/3400)
- Add provider cache by
[@&#8203;tjamet](https://github.com/tjamet) in
[https://github.com/kubernetes-sigs/external-dns/pull/4597](https://github.com/kubernetes-sigs/external-dns/pull/4597)
- chore: update maintainers by
[@&#8203;mloiseleur](https://github.com/mloiseleur) in
[https://github.com/kubernetes-sigs/external-dns/pull/4679](https://github.com/kubernetes-sigs/external-dns/pull/4679)
- fix(helm): make use of resource values for webhook by
[@&#8203;crutonjohn](https://github.com/crutonjohn) in
[https://github.com/kubernetes-sigs/external-dns/pull/4560](https://github.com/kubernetes-sigs/external-dns/pull/4560)
- Fix AWS Cloud Map docs: annotation key/value pairs must be strings by
[@&#8203;mjlshen](https://github.com/mjlshen) in
[https://github.com/kubernetes-sigs/external-dns/pull/4683](https://github.com/kubernetes-sigs/external-dns/pull/4683)
- Webhook provider helm chart fixes by
[@&#8203;kimsondrup](https://github.com/kimsondrup) in
[https://github.com/kubernetes-sigs/external-dns/pull/4643](https://github.com/kubernetes-sigs/external-dns/pull/4643)
- chore(deps): bump the dev-dependencies group across 1 directory with
16 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4684](https://github.com/kubernetes-sigs/external-dns/pull/4684)
- chore(deps): bump GrantBirki/json-yaml-validate from 3.0.0 to 3.1.0 in
the dev-dependencies group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4685](https://github.com/kubernetes-sigs/external-dns/pull/4685)
- Add tutorial to DynamoDB registry docs by
[@&#8203;mjlshen](https://github.com/mjlshen) in
[https://github.com/kubernetes-sigs/external-dns/pull/4686](https://github.com/kubernetes-sigs/external-dns/pull/4686)
- chore(deps): bump GrantBirki/json-yaml-validate from 3.1.0 to 3.2.0 in
the dev-dependencies group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4700](https://github.com/kubernetes-sigs/external-dns/pull/4700)
- chore(deps): bump GrantBirki/json-yaml-validate from 3.2.0 to 3.2.1 in
the dev-dependencies group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4702](https://github.com/kubernetes-sigs/external-dns/pull/4702)
- chore: upgrade ExternalDNS to go 1.23 by
[@&#8203;mloiseleur](https://github.com/mloiseleur) in
[https://github.com/kubernetes-sigs/external-dns/pull/4698](https://github.com/kubernetes-sigs/external-dns/pull/4698)
- feat: add annotation and label filters to Ambassador Host Source by
[@&#8203;KyleMartin901](https://github.com/KyleMartin901) in
[https://github.com/kubernetes-sigs/external-dns/pull/2633](https://github.com/kubernetes-sigs/external-dns/pull/2633)
- Add RouterOS provider to README.md by
[@&#8203;benfiola](https://github.com/benfiola) in
[https://github.com/kubernetes-sigs/external-dns/pull/4714](https://github.com/kubernetes-sigs/external-dns/pull/4714)
- feat: support dual stack for gateway api by
[@&#8203;thameezb](https://github.com/thameezb) in
[https://github.com/kubernetes-sigs/external-dns/pull/4469](https://github.com/kubernetes-sigs/external-dns/pull/4469)
- chore(deps): bump actions/setup-python from 5.1.1 to 5.2.0 in the
dev-dependencies group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/kubernetes-sigs/external-dns/pull/4712](https://github.com/kubernetes-sigs/external-dns/pull/4712)
- chore: remove unmaintained providers by
[@&#8203;mloiseleur](https://github.com/mloiseleur) in
[https://github.com/kubernetes-sigs/external-dns/pull/4719](https://github.com/kubernetes-sigs/external-dns/pull/4719)

#### Images

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

#### New Contributors

- [@&#8203;kbudde](https://github.com/kbudde) made their first
contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4502](https://github.com/kubernetes-sigs/external-dns/pull/4502)
- [@&#8203;matthieugouel](https://github.com/matthieugouel)
made their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4503](https://github.com/kubernetes-sigs/external-dns/pull/4503)
- [@&#8203;mariasalcedo](https://github.com/mariasalcedo) made
their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4529](https://github.com/kubernetes-sigs/external-dns/pull/4529)
-
[@&#8203;AlessandroZanatta](https://github.com/AlessandroZanatta)
made their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4538](https://github.com/kubernetes-sigs/external-dns/pull/4538)
- [@&#8203;roehrijn](https://github.com/roehrijn) made their
first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/3973](https://github.com/kubernetes-sigs/external-dns/pull/3973)
- [@&#8203;simonostendorf](https://github.com/simonostendorf)
made their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4515](https://github.com/kubernetes-sigs/external-dns/pull/4515)
- [@&#8203;angeloxx](https://github.com/angeloxx) made their
first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4283](https://github.com/kubernetes-sigs/external-dns/pull/4283)
- [@&#8203;tobiabocchi](https://github.com/tobiabocchi) made
their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4583](https://github.com/kubernetes-sigs/external-dns/pull/4583)
- [@&#8203;thameezb](https://github.com/thameezb) made their
first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4567](https://github.com/kubernetes-sigs/external-dns/pull/4567)
- [@&#8203;hopkinsth](https://github.com/hopkinsth) made their
first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4602](https://github.com/kubernetes-sigs/external-dns/pull/4602)
- [@&#8203;ilmax](https://github.com/ilmax) made their first
contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4662](https://github.com/kubernetes-sigs/external-dns/pull/4662)
- [@&#8203;orgads](https://github.com/orgads) made their first
contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4663](https://github.com/kubernetes-sigs/external-dns/pull/4663)
- [@&#8203;pier-oliviert](https://github.com/pier-oliviert)
made their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4577](https://github.com/kubernetes-sigs/external-dns/pull/4577)
- [@&#8203;crutonjohn](https://github.com/crutonjohn) made
their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4560](https://github.com/kubernetes-sigs/external-dns/pull/4560)
- [@&#8203;mjlshen](https://github.com/mjlshen) made their
first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4683](https://github.com/kubernetes-sigs/external-dns/pull/4683)
- [@&#8203;kimsondrup](https://github.com/kimsondrup) made
their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4643](https://github.com/kubernetes-sigs/external-dns/pull/4643)
- [@&#8203;KyleMartin901](https://github.com/KyleMartin901)
made their first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/2633](https://github.com/kubernetes-sigs/external-dns/pull/2633)
- [@&#8203;benfiola](https://github.com/benfiola) made their
first contribution in
[https://github.com/kubernetes-sigs/external-dns/pull/4714](https://github.com/kubernetes-sigs/external-dns/pull/4714)

**Full Changelog**:
kubernetes-sigs/external-dns@v0.14.2...v0.15.0

</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:eyJjcmVhdGVkSW5WZXIiOiIzOC42Ny41IiwidXBkYXRlZEluVmVyIjoiMzguNjcuNSIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJhdXRvbWVyZ2UiLCJ1cGRhdGUvZG9ja2VyL2dlbmVyYWwvbm9uLW1ham9yIl19-->
@@ -186,7 +186,7 @@ type Controller struct {
// The interval between individual synchronizations
Interval time.Duration
// The DomainFilter defines which DNS records to keep or exclude
DomainFilter endpoint.DomainFilter
Copy link

@kashalls kashalls Sep 7, 2024

Choose a reason for hiding this comment

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

Could someone explain why we changed the type here?

Edit: Meant to comment on the provider type here.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

At the time of implementing, there was a conflict with some providers.
It seems that this is not the case any longer and that this change was kept over rebases.
I tried reverting b2ff1619 and it seems to work after some minor fixes.

What problems do you encounter because of this change?

Copy link

@kashalls kashalls Sep 9, 2024

Choose a reason for hiding this comment

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

What problems do you encounter because of this change?

It introduced a breaking change for some of the webhook providers as we used the DomainFilter type to simply Marshal the filter list for negotiation. We now just take the filter json and marshal it ourselves which is no big issue. It's just a loss of functionality. (writing this at 2am, might have a better way to explain it later)

Reference

@oferz-everc
Copy link

@tjamet @Raffo
Just checking if I'm missing something - shouldn't the deployment.yaml needs to be updated with the new flag of "ProviderCacheTime"? cause without it, how can the chart would be able to use it?
I'm trying to upgrade to latest version, but when adding the value for "ProviderCacheTime" there's no diff in the deployment.

@tjamet
Copy link
Contributor Author

tjamet commented Oct 3, 2024

Adding a specific named Values entry would indeed be an option.
Alternatively, you can use extraArgs already supported in the chart

extraArgs:
- --min-event-sync-interval=5m
- --provider-cache-time=60m
- --aws-zones-cache-duration=10m

Those will be provided to the deployment

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.

7 participants