-
Notifications
You must be signed in to change notification settings - Fork 669
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
Decide on how to handle out-of-tree plugins #1089
Comments
@damemi based on our discussion |
/cc @binacs |
Mentioned this offline to @knelasevero, but I think the "shared repo of third-party plugins" approach brings a lot of maintenance overhead and defeats the purpose of a development framework. The scheduler-plugins repo is essentially another repo for the SIG to maintain. For that, the concept of "out-of-tree" applies better because the "in-tree" alternative refers to code living in the main Kubernetes project repo, which is much larger and slower. For us, an out-of-tree repo would be pretty much just a 2nd descheduler repo. (For this reason, I think it's better to refer to our plugins as "first-party"/"third-party" since we don't have much of a tree to begin with.) Code ownership becomes a problem too. As developers contribute third-party plugins to a centralized repo, there's nothing binding them to owning that code forever. People change jobs and companies change priorities, which leaves the SIG in the difficult position of enforcing deprecation labels on abandoned plugins. I think a much more lightweight approach would be to have a simple index repo (similar to how Krew indexes third-party kubectl plugins and how Operatorhub lets people contribute operators). Then there is basically 0 maintenance for the SIG over third-party plugins. Users can host and maintain them at their own pace, and descheduler maintainers don't have to be gatekeepers reviewing every new plugin. If an index approach is done right, it can be pretty simple to provide Go code generators to build a descheduler based on the indexed plugins. That lets us provide an image people can grab if that's all they want. |
Where can I see this Kueue index? Do you mean Krew? |
@knelasevero ah yes, sorry! I meant krew https://github.com/kubernetes-sigs/krew-index |
linking another PR: #1144 |
Hey https://github.com/kubernetes-sigs/kube-scheduler-wasm-extension Kube-scheduler is investigating using wasm to extend functionality. I think we could do the same (investigate). kubernetes/kubernetes#112851 (comment) We can monitor it and see how it goes. |
Looking toward next steps in the framework, I'd like to unblock this. Looking back on it, my previous comment pushing for an index-style plugin repo is maybe a bit lofty for our use case. At a large scale, that makes more sense. But a lot of the issues I was concerned with can be managed. Kube-scheduler does provide a good precedent for us to follow, even if we don't have to do everything the same way as that repo. So I am +1 for taking that approach. This will be the fastest way for us to unblock more feature development and promote the framework with examples to users. |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /close not-planned |
@k8s-triage-robot: Closing this issue, marking it as "Not Planned". 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-sigs/prow repository. |
/reopen |
@binacs: Reopened 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-sigs/prow repository. |
/remove-lifecycle rotten |
@damemi @ingvagabund @knelasevero @a7i do we have a consensus on how we want to move forward with this? Do we want to move forward with creating another git repo in the kubernetes-sigs org for out of tree descheduler plugins? I believe I might have some bandwidth to help move this forward. |
/lifecycle frozen |
There are a few ways to do this. One way is to follow the kube-scheduler path and just have a new repo hosting all custom plugins. This can bring some problems related to having to maintain everything in that new repo and could be hard to coordinate ownership.
Wanted to raise this issue so we can discuss other options:
go buildmode
to simplfy building custom scheduler binary kubernetes/kubernetes#100723plugin
package so that users can use custom plugins without building custom scheduler kubernetes/kubernetes#106705EDIT:
.
The text was updated successfully, but these errors were encountered: