Open ingvagabund opened 1 year ago
As we discussed in the community meeting, wanted to list a few efforts that we can start looking at again with the current state of the framework (now that we unblocked a bunch of efforts that were paused before):
We have a bunch of nodeFit discussions and feature requests:
OpenTelemetry tracing
Custom tags for eviction metrics
Well, v1aplha3 itself is not exactly blocked and people can work on it https://github.com/kubernetes-sigs/descheduler/issues/1179
Allowing event-triggered strategy runs
Out of tree plugins:
Let me know if I am forgetting something. We probably should give weights to those with regards to complexity and importance and the prioritize what we want as must haves first.
@damemi @ingvagabund @a7i
Like we talked about on the sig call, we have 2 categories of things to work on now for what's next: tech debt we shelved in the interest of moving along a framework release, and feature development that was blocked on the framework refactoring too much of the code.
I would like to prioritize the tech debt. But at this point, that shouldn't significantly block any more feature development, so those can happen in parallel.
For a long-term roadmap, the ideal "done" goal should be getting to a v1 api/v1.0 release. What that means right now isn't totally clear besides making the descheduler more extensible and maintainable. So, I think another good task would be to come up with some criteria for defining when we're ready to make that cut, and work tasks in toward that.
@damemi @knelasevero @ingvagabund any idea if any work has been done on this issue https://github.com/kubernetes-sigs/descheduler/issues/923 or any priority on this one? I remember I decided to take it up but couldn't start on it last year. I'm available again to work on it and would be happy to contribute if it's okay to go.
We have some examples under https://github.com/kubernetes-sigs/descheduler/tree/master/examples. Though, there's still no comprehensive guide for creating and registering a plugin to the framework. Yet, providing a guide on how to create a new plugin is already welcome. The part of registering a plugin can be done later once the WithPlugin
mechanism is in place.
@knelasevero thanks for the comprehensive list of todo. Work on any of the mentioned items can be started/resumed. The telemetry part might still experience a shifting code until the WithPlugin
mechanics and removing the cachedClient
client code are in place. Though, the work can always be delivered in steps.
This is really great list! Thanks for this. I'd like to get into #696, if someone enlighten my way and show where to start to initialize an "event-triggered strategy".
re: out of tree plugins it would be great if we could pick up https://github.com/kubernetes-sigs/descheduler/pull/1087 and https://github.com/kubernetes-sigs/descheduler/pull/1092, unless we want to wait and solve https://github.com/kubernetes-sigs/descheduler/issues/1089 first
re: out of tree plugins it would be great if we could pick up #1087 and #1092, unless we want to wait and solve #1089 first
I think we need a proper mechanism for out of tree plugins first
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/remove-lifecycle stale
/close
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:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/remove-lifecycle stale
/close
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
Remaining bits:
pluginregistry.Register
in https://github.com/kubernetes-sigs/descheduler/blob/master/pkg/descheduler/setupplugins.go#L39C2-L49 to pass less argumentsdescheduler
. So it can be replaced with a generic way of populating the fake clientset cache. I was thinking of some hooks since the cachedClient is recreated in every descheduling loop (and rewritting internalsharedInformerFactory
).