-
Notifications
You must be signed in to change notification settings - Fork 672
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
Descheduler strategies as plugins #557
Comments
+1, standardizing an interface for each strategy and moving them into their own packages is at the very least a big improvement for our code organization. I would go even further to say this is more than a feature, but a considerable redesign (and one well worth having). I'll leave some comments on the doc, thanks for starting this @ingvagabund ! |
This is a great refractor. I would be interested to pick this up as it will give some good understanding of the code base. There is another recommendation of converting strategy params to an interface. |
Let's keep different changes to their own PRs. Especially with refactorings like this, if something goes wrong that makes it easier to track down and revert |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
/remove-kind design |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs 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 and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
PoC in #781 |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
@ingvagabund @damemi @a7i should we close this one? Considering the title, strategies are moved to plugins now |
I think it's worth keeping open until we've gotten off of the migration wrapper |
The migration wrapper removed through #1006. |
Is your feature request related to a problem? Please describe.
The number of strategies is increasing and we still have code of all the strategies under the same directory. Which increases risk of identifier name collisions. It’s also currently impractical to add custom strategies into the Descheduler (in case someone decides to fork the code and integrate e.g. proprietary strategies.).
Evicting pods outside the strategies will free us from passing pod evictor into each strategy. It will also allow us to run the Descheduler as a simulator more easily. E.g. by checking which strategies are evicting the same pods, how one strategy impacts other, etc.
Describe the solution you'd like
Create a factory like initialization of plugins and a new strategy interface with Deschedule method
Describe alternatives you've considered
NONE
What version of descheduler are you using?
Any version
Additional context
Google doc for open discussion: https://docs.google.com/document/d/1VuqbwakL69H4sbsGP8J6C10x1NfEpeAQY_cHibrZY0M/edit#
The text was updated successfully, but these errors were encountered: