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
Create dynamic informers and listers #64319
Comments
This would let us completely redo how service catalog works, and make the UX really rock. I'd love to help make it happen or test it out with a prototype as soon as you've got it! 💯 |
I'm working on this and just discussed it with @sttts today. @enisoc already added something similar in metacontroller https://github.com/GoogleCloudPlatform/metacontroller/tree/master/dynamic/informer to make our lives easy developing it for kube. :) |
I've been appropriately shamed by @deads2k for not doing that work upstream in the first place. In my defense, at the time the dynamic client hadn't seen much attention in a while; I thought I was the only one using it. :) I look forward to rebasing on an official upstream library. Let me know if I can help with reviews or anything. |
cc @janetkuo I remember your original new GC design depends on this feature. |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
/remove-lifecycle stale |
@nikhita Do you know if work has been begun on this already? If not, perhaps I could help implement it? |
@p0lyn0mial has been working on it :) |
yeah, I almost have it :) /assign @p0lyn0mial |
dynamic lister already merged, see: #68748 |
dynamic informer factory has just been merged #69308 |
I think we can close this. Thanks, @p0lyn0mial! 🎉 Closing the issue. Please reopen if needed. /close |
@nikhita: Closing this issue. In response to this:
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/test-infra repository. |
O.M.G I can't wait to try it out! 🏃♀️ 💨 |
I know there is no requirement for documentation on internal enhancements, but if there is a scope for that , please add a blob about how to use it , for both core and controller writers . I have been looking for an internal deep dive on informers but haven’t found one and it keeps improving :-) @Nikitha @p0lyn0mial |
From @deads2k's comments in #64310 (comment):
Controllers like the GC controller and resource quota controller use informers and listers. Currently, we only have support for static, generic informers and listers.
To work with custom resources, the GC controller creates a new informer each time it comes across an unknown resource.
kubernetes/pkg/controller/garbagecollector/graph_builder.go
Lines 190 to 197 in 23a9136
If we try to do something similar for the RQ controller as well (creating a new informer and lister, see #64201), we end up increasing the number of times we cache resources. This also does not make it easy if we want to add a similar behaviour in the future.
To avoid this, we can tackle the problem by creating dynamic informers, then dynamic listers, then shared dynamic informers, then "reactive" shared dynamic informers (ones where it can figure out that the resource has been removed and recreated).
/sig api-machinery
/kind feature
/cc @deads2k @sttts @liggitt @lavalamp @mbohlool
The text was updated successfully, but these errors were encountered: