-
Notifications
You must be signed in to change notification settings - Fork 274
[do-not-merge][experiment]: asynchronous watch registration #889
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
base: main
Are you sure you want to change the base?
[do-not-merge][experiment]: asynchronous watch registration #889
Conversation
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: a-hilaly 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 |
7d84bf7 to
4f083e8
Compare
|
IIRC the problem is then In the current implementation, there are 2 identified cases:
We should recover when:
From quick read, I we detect permission changes that would recover a functional state. and update the handler registration: We would also need to make sure this error is correctly propagated to the RGD reconciler and the RGD status is updated as expected |
|
PR needs rebase. 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. |
Previously, when a ResourceGraphDefinition had issues (e.g., missing RBAC
permissions), the
Register()method would block indefinitely oncache.WaitForCacheSync()while holding a global lock, causing all other RGDsto stall. This change makes registration non-blocking by moving the cache sync
wait into a goroutine and using channel-based notification when sync completes.
/hold