-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
feat(ovh): add cache based on DNS zone SOA value #3026
Conversation
|
Welcome @rbeuque74! |
779dcaf
to
00e5c0a
Compare
Hello, Best, |
00e5c0a
to
6a007dd
Compare
/auto-cc /cc @szuecs |
Hi, any news aboutt his PR? :) |
6a007dd
to
efdca98
Compare
/assign @njuettner |
/assign @seanmalloy |
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: rbeuque74, 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 |
/assign @njuettner |
I don't have the button to run the tests, so assigned @njuettner |
@rbeuque74 can you rebase so that I can let the test run and review the PR? Thanks! |
efdca98
to
6cb791a
Compare
Hello, Thanks, |
The Kubernetes project currently lacks enough contributors to adequately respond to all PRs. This bot triages PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
af2a31f
to
ba0d54a
Compare
Hello, PR is rebased. /remove-lifecycle stale |
/ok-to-test |
Please rebase |
OVHcloud customers using 'ovh' provider for large DNS zone will spend a lot of time waiting for all records to be retrieved from the API. As records can't change without a modification of the SOA Serial of the DNS zone, this commit adds a client-side cache that stores the value of the DNS records for each zone, based of the current SOA Serial value of the zone. In case the SOA Serial of the zone is identical to the one in cache, we can serve all the records directly from cache. Otherwise, fallback on refreshing the cache from the API. Signed-off-by: Romain Beuque <556072+rbeuque74@users.noreply.github.com>
ba0d54a
to
1a48cb8
Compare
Hello, /assign @szuecs Romain |
/lgtm |
/test pull-external-dns-lint |
/retest |
Hello external-dns maintainers, OVHcloud API team here 👋
Description
This pull-request patches the 'ovh' provider to add a small local cache of the fetched DNS records.
Context: we detected that numerous of our customers use your external-dns software to manage their DNS records, sending waves of API queries to our APIs. As these records are retrieved one by one, it generates a high amount of requests on our backend.
As we would like to keep allowing our customers using external-dns with the best experience, we leveraged the usage of the DNS zone SOA Serial to detect if the zone records might have changed since the last time we generated the cache.
This way, we spare all the calls to retrieve the records that have been kept in cache, and serve them directly, since the SOA Serial haven't changed, guaranteeing that the DNS zone hasn't changed on our side.
This will also add a speed-up once the cache is warm, as long as the zone doesn't change.
This should also prevent users of external-dns from being targeted by potential rate-limiting in case of high activity on our backend.
Thanks in advance for your review.
Romain
Checklist