-
Sub-task
-
Resolution: Done
-
Undefined
-
None
-
None
-
None
-
False
-
None
-
False
-
OCPPLAN-3717 - Strategic upstream work
-
Workloads - 4.12, Workloads Sprint 225, Workloads Sprint 226, Workloads Sprint 227, Workloads Sprint 228, Workloads Sprint 229, Workloads Sprint 230, Workloads Sprint 231, Workloads Sprint 232
Converting the evictor filter into a plugin will allow users to either replace the plugin with a different list of filters. Or, register additional plugins to extend the list of available filters. Also, new preEvictFilter extension point can be implement to provide strategies ability to protect pods against eviction right before the eviction itself. E.g. LowNodeUtilization plugin needs to operate over all pods to take into account the overall resource consumption. Thus, the only place where pods can be filter out from eviction is right after pods were marked for eviction.
The same process for creating a new plugin can be followed. Including creating plugin arguments (in the plugin package this time). The original NewEvictorFilter function will be then replaced with the plugin constructor with passing the plugin arguments.
Once the filter is converted into a plugin, it can be extended with namespace inclusion/exclusion arguments.
Upstream issue: https://github.com/kubernetes-sigs/descheduler/issues/924