[go: nahoru, domu]

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

Prevent unnecessary reconciles on provider restarts #696

Open
gravufo opened this issue May 22, 2024 · 0 comments
Open

Prevent unnecessary reconciles on provider restarts #696

gravufo opened this issue May 22, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@gravufo
Copy link
gravufo commented May 22, 2024

What problem are you facing?

Today, when provider pods are restarted (whether it's due to updates to the provider version or simply k8s nodes shuffling), the cache is completely lost forcing the controllers to reconcile all MRs regardless of the last time they were synced and the configured poll frequency.

Depending on the provider, this can be fine and fast, but can sometimes be very slow and even problematic (think external APIs rate limiting). The specific use-case I am referring to is provider-upjet-azure which easily gets rate-limited by the Azure RM API if it gets restarted when managing a large number of MRs.

How could Crossplane help solve your problem?

Since we have no choice but to requeue all objects (this makes sense), I think a nice improvement would be to validate the last time this object (assuming Synced and Ready are both true) was reconciled and calculating based on the poll frequency if it needs to be reconciled again right now or if it should be requeued at the time the poll frequency would be hit.

This would prevent mega bursts of external calls every time we need to restart provider pods, regardless of the reason.

@gravufo gravufo added the enhancement New feature or request label May 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant