-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Improve ExtensionConfig reconcile performance #8495
Comments
/triage accepted |
Current state: If we receive a create/update event on an ExtensionConfig we trigger a reconcile of all ClusterClass that have a DiscoverVariablesExtension configured. The only optimization in place is that if the ExtensionConfig has a namespaceSelector set we only do it for matching ClusterClasses. Example:
I think this can lead to pretty high load on Runtime Extensions |
Oh wait I think it's totally broken. Looks like we don't map ExtensionConfig to ClusterClass, we map ExtensionConfig to ExtensionConfig (i.e. we have to return ClusterClass name/namespace not ExtensionConfig name) (@killianmuldoon can you double check) |
Yeah you're right. The current behaviour does trigger a reconcile - but it always returns an error after looking up the ClusterClass. Will open a bugfix now. |
Does the reconcile queue take care of duplicate reconcile requests for the same cc? |
Hard to predict. I think it depends on when/how exactly the resync for ExtensionConfigs come in and how quickly the ClusterClass is reconciled. As soon as a ClusterClass reconcile is started the next event would mark the ClusterClass as dirty in the queue and lead to another reconcile. I think it's simpler to fix the issue then trying to estimate the exact impact (as it might vary based on performance etc.) |
/assign |
Leading on from #7985 we should ensure watch on ExtensionConfig correctly filters by extensions actually referenced in the ClusterClass. This might include adding an index of index of ExtensionConfigs -> ClusterClass to quickly find all ClusterClasses using a particular ExtensionConfig.
/area runtime-sdk
The text was updated successfully, but these errors were encountered: