mirror of
https://github.com/kubernetes-sigs/descheduler.git
synced 2026-01-26 13:29:11 +01:00
Drop Evict extension point
The Evict extension point is not currently in use. All DefaultEvictor plugin functionality is exposed through Filter and PreEvictionFilter extension points instead. Thus, no need to limit the number of evictors enabled.
This commit is contained in:
@@ -73,7 +73,6 @@ type Plugins struct {
|
||||
Sort PluginSet
|
||||
Deschedule PluginSet
|
||||
Balance PluginSet
|
||||
Evict PluginSet
|
||||
Filter PluginSet
|
||||
PreEvictionFilter PluginSet
|
||||
}
|
||||
|
||||
@@ -201,7 +201,10 @@ func V1alpha1ToInternal(
|
||||
*pluginConfig,
|
||||
},
|
||||
Plugins: api.Plugins{
|
||||
Evict: api.PluginSet{
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -50,7 +50,6 @@ type Plugins struct {
|
||||
Sort PluginSet `json:"sort"`
|
||||
Deschedule PluginSet `json:"deschedule"`
|
||||
Balance PluginSet `json:"balance"`
|
||||
Evict PluginSet `json:"evict"`
|
||||
Filter PluginSet `json:"filter"`
|
||||
PreEvictionFilter PluginSet `json:"preevictionfilter"`
|
||||
}
|
||||
|
||||
@@ -229,9 +229,6 @@ func autoConvert_v1alpha2_Plugins_To_api_Plugins(in *Plugins, out *api.Plugins,
|
||||
if err := Convert_v1alpha2_PluginSet_To_api_PluginSet(&in.Balance, &out.Balance, s); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := Convert_v1alpha2_PluginSet_To_api_PluginSet(&in.Evict, &out.Evict, s); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := Convert_v1alpha2_PluginSet_To_api_PluginSet(&in.Filter, &out.Filter, s); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -259,9 +256,6 @@ func autoConvert_api_Plugins_To_v1alpha2_Plugins(in *api.Plugins, out *Plugins,
|
||||
if err := Convert_api_PluginSet_To_v1alpha2_PluginSet(&in.Balance, &out.Balance, s); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := Convert_api_PluginSet_To_v1alpha2_PluginSet(&in.Evict, &out.Evict, s); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := Convert_api_PluginSet_To_v1alpha2_PluginSet(&in.Filter, &out.Filter, s); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -146,7 +146,6 @@ func (in *Plugins) DeepCopyInto(out *Plugins) {
|
||||
in.Sort.DeepCopyInto(&out.Sort)
|
||||
in.Deschedule.DeepCopyInto(&out.Deschedule)
|
||||
in.Balance.DeepCopyInto(&out.Balance)
|
||||
in.Evict.DeepCopyInto(&out.Evict)
|
||||
in.Filter.DeepCopyInto(&out.Filter)
|
||||
in.PreEvictionFilter.DeepCopyInto(&out.PreEvictionFilter)
|
||||
return
|
||||
|
||||
@@ -174,7 +174,6 @@ func (in *Plugins) DeepCopyInto(out *Plugins) {
|
||||
in.Sort.DeepCopyInto(&out.Sort)
|
||||
in.Deschedule.DeepCopyInto(&out.Deschedule)
|
||||
in.Balance.DeepCopyInto(&out.Balance)
|
||||
in.Evict.DeepCopyInto(&out.Evict)
|
||||
in.Filter.DeepCopyInto(&out.Filter)
|
||||
in.PreEvictionFilter.DeepCopyInto(&out.PreEvictionFilter)
|
||||
return
|
||||
|
||||
@@ -87,6 +87,15 @@ func setDefaultsPluginConfig(pluginConfig *api.PluginConfig, registry pluginregi
|
||||
}
|
||||
}
|
||||
|
||||
func findPluginName(names []string, key string) bool {
|
||||
for _, name := range names {
|
||||
if name == key {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func setDefaultEvictor(profile api.DeschedulerProfile, client clientset.Interface) api.DeschedulerProfile {
|
||||
newPluginConfig := api.PluginConfig{
|
||||
Name: defaultevictor.PluginName,
|
||||
@@ -97,16 +106,24 @@ func setDefaultEvictor(profile api.DeschedulerProfile, client clientset.Interfac
|
||||
EvictFailedBarePods: false,
|
||||
},
|
||||
}
|
||||
if len(profile.Plugins.Evict.Enabled) == 0 && !hasPluginConfigsWithSameName(newPluginConfig, profile.PluginConfigs) {
|
||||
profile.Plugins.Evict.Enabled = append(profile.Plugins.Evict.Enabled, defaultevictor.PluginName)
|
||||
profile.PluginConfigs = append(profile.PluginConfigs, newPluginConfig)
|
||||
|
||||
// Always enable DefaultEvictor plugin for filter/preEvictionFilter extension points
|
||||
if !findPluginName(profile.Plugins.Filter.Enabled, defaultevictor.PluginName) {
|
||||
profile.Plugins.Filter.Enabled = append([]string{defaultevictor.PluginName}, profile.Plugins.Filter.Enabled...)
|
||||
}
|
||||
var thresholdPriority int32
|
||||
var err error
|
||||
|
||||
if !findPluginName(profile.Plugins.PreEvictionFilter.Enabled, defaultevictor.PluginName) {
|
||||
profile.Plugins.PreEvictionFilter.Enabled = append([]string{defaultevictor.PluginName}, profile.Plugins.PreEvictionFilter.Enabled...)
|
||||
}
|
||||
|
||||
defaultevictorPluginConfig, idx := GetPluginConfig(defaultevictor.PluginName, profile.PluginConfigs)
|
||||
if defaultevictorPluginConfig != nil {
|
||||
thresholdPriority, err = utils.GetPriorityFromStrategyParams(context.TODO(), client, defaultevictorPluginConfig.Args.(*defaultevictor.DefaultEvictorArgs).PriorityThreshold)
|
||||
if defaultevictorPluginConfig == nil {
|
||||
profile.PluginConfigs = append([]api.PluginConfig{newPluginConfig}, profile.PluginConfigs...)
|
||||
defaultevictorPluginConfig = &newPluginConfig
|
||||
idx = 0
|
||||
}
|
||||
|
||||
thresholdPriority, err := utils.GetPriorityFromStrategyParams(context.TODO(), client, defaultevictorPluginConfig.Args.(*defaultevictor.DefaultEvictorArgs).PriorityThreshold)
|
||||
if err != nil {
|
||||
klog.Error(err, "Failed to get threshold priority from args")
|
||||
}
|
||||
@@ -118,11 +135,6 @@ func setDefaultEvictor(profile api.DeschedulerProfile, client clientset.Interfac
|
||||
func validateDeschedulerConfiguration(in api.DeschedulerPolicy, registry pluginregistry.Registry) error {
|
||||
var errorsInProfiles error
|
||||
for _, profile := range in.Profiles {
|
||||
// api.DeschedulerPolicy needs only 1 evictor plugin enabled
|
||||
if len(profile.Plugins.Evict.Enabled) != 1 {
|
||||
errTooManyEvictors := fmt.Errorf("profile with invalid number of evictor plugins enabled found. Please enable a single evictor plugin.")
|
||||
errorsInProfiles = setErrorsInProfiles(errTooManyEvictors, profile.Name, errorsInProfiles)
|
||||
}
|
||||
for _, pluginConfig := range profile.PluginConfigs {
|
||||
if _, ok := registry[pluginConfig.Name]; ok {
|
||||
pluginUtilities := registry[pluginConfig.Name]
|
||||
|
||||
@@ -49,9 +49,6 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}
|
||||
defaultEvictorPluginSet := api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
}
|
||||
type testCase struct {
|
||||
description string
|
||||
policy *v1alpha1.DeschedulerPolicy
|
||||
@@ -113,7 +110,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Balance: api.PluginSet{
|
||||
Enabled: []string{removeduplicates.PluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
// Disabled strategy is not generating internal plugin since it is not being used internally currently
|
||||
@@ -221,7 +223,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Balance: api.PluginSet{
|
||||
Enabled: []string{nodeutilization.HighNodeUtilizationPluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -248,7 +255,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Balance: api.PluginSet{
|
||||
Enabled: []string{nodeutilization.LowNodeUtilizationPluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -264,7 +276,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Balance: api.PluginSet{
|
||||
Enabled: []string{removeduplicates.PluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -280,7 +297,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Deschedule: api.PluginSet{
|
||||
Enabled: []string{removefailedpods.PluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -298,7 +320,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Deschedule: api.PluginSet{
|
||||
Enabled: []string{removepodshavingtoomanyrestarts.PluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -314,7 +341,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Deschedule: api.PluginSet{
|
||||
Enabled: []string{removepodsviolatinginterpodantiaffinity.PluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -332,7 +364,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Deschedule: api.PluginSet{
|
||||
Enabled: []string{removepodsviolatingnodeaffinity.PluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -348,7 +385,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Deschedule: api.PluginSet{
|
||||
Enabled: []string{removepodsviolatingnodetaints.PluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -364,7 +406,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Balance: api.PluginSet{
|
||||
Enabled: []string{removepodsviolatingtopologyspreadconstraint.PluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -478,7 +525,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Balance: api.PluginSet{
|
||||
Enabled: []string{nodeutilization.HighNodeUtilizationPluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -507,7 +559,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Balance: api.PluginSet{
|
||||
Enabled: []string{nodeutilization.LowNodeUtilizationPluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -525,7 +582,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Balance: api.PluginSet{
|
||||
Enabled: []string{removeduplicates.PluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -546,7 +608,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Deschedule: api.PluginSet{
|
||||
Enabled: []string{removefailedpods.PluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -565,7 +632,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Deschedule: api.PluginSet{
|
||||
Enabled: []string{removepodshavingtoomanyrestarts.PluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -581,7 +653,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Deschedule: api.PluginSet{
|
||||
Enabled: []string{removepodsviolatinginterpodantiaffinity.PluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -599,7 +676,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Deschedule: api.PluginSet{
|
||||
Enabled: []string{removepodsviolatingnodeaffinity.PluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -617,7 +699,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Deschedule: api.PluginSet{
|
||||
Enabled: []string{removepodsviolatingnodetaints.PluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -635,7 +722,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
|
||||
Balance: api.PluginSet{
|
||||
Enabled: []string{removepodsviolatingtopologyspreadconstraint.PluginName},
|
||||
},
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -713,9 +805,6 @@ func TestDecodeVersionedPolicy(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}
|
||||
defaultEvictorPluginSet := api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
}
|
||||
type testCase struct {
|
||||
description string
|
||||
policy []byte
|
||||
@@ -754,7 +843,12 @@ strategies:
|
||||
},
|
||||
},
|
||||
Plugins: api.Plugins{
|
||||
Evict: defaultEvictorPluginSet,
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
Deschedule: api.PluginSet{
|
||||
Enabled: []string{podlifetime.PluginName},
|
||||
},
|
||||
@@ -815,10 +909,10 @@ profiles:
|
||||
},
|
||||
},
|
||||
Plugins: api.Plugins{
|
||||
Evict: api.PluginSet{
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
Filter: api.PluginSet{
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
Deschedule: api.PluginSet{
|
||||
@@ -897,7 +991,7 @@ func TestValidateDeschedulerConfiguration(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
result: fmt.Errorf("in profile RemoveFailedPods: profile with invalid number of evictor plugins enabled found. Please enable a single evictor plugin.: in profile RemoveFailedPods: only one of Include/Exclude namespaces can be set: in profile RemovePodsViolatingTopologySpreadConstraint: profile with invalid number of evictor plugins enabled found. Please enable a single evictor plugin.: in profile RemovePodsViolatingTopologySpreadConstraint: only one of Include/Exclude namespaces can be set"),
|
||||
result: fmt.Errorf("in profile RemoveFailedPods: only one of Include/Exclude namespaces can be set: in profile RemovePodsViolatingTopologySpreadConstraint: only one of Include/Exclude namespaces can be set"),
|
||||
},
|
||||
}
|
||||
|
||||
@@ -939,7 +1033,7 @@ profiles:
|
||||
filter:
|
||||
enabled:
|
||||
- "DefaultEvictor"
|
||||
evict:
|
||||
preEvictionFilter:
|
||||
enabled:
|
||||
- "DefaultEvictor"
|
||||
deschedule:
|
||||
@@ -969,12 +1063,68 @@ profiles:
|
||||
},
|
||||
},
|
||||
Plugins: api.Plugins{
|
||||
Evict: api.PluginSet{
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
Deschedule: api.PluginSet{
|
||||
Enabled: []string{removepodshavingtoomanyrestarts.PluginName},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
description: "omit default evictor extension point with their enablement",
|
||||
policy: []byte(`apiVersion: "descheduler/v1alpha2"
|
||||
kind: "DeschedulerPolicy"
|
||||
profiles:
|
||||
- name: ProfileName
|
||||
pluginConfig:
|
||||
- name: "DefaultEvictor"
|
||||
args:
|
||||
evictSystemCriticalPods: true
|
||||
evictFailedBarePods: true
|
||||
evictLocalStoragePods: true
|
||||
nodeFit: true
|
||||
- name: "RemoveFailedPods"
|
||||
plugins:
|
||||
deschedule:
|
||||
enabled:
|
||||
- "RemovePodsHavingTooManyRestarts"
|
||||
`),
|
||||
result: &api.DeschedulerPolicy{
|
||||
Profiles: []api.DeschedulerProfile{
|
||||
{
|
||||
Name: "ProfileName",
|
||||
PluginConfigs: []api.PluginConfig{
|
||||
{
|
||||
Name: defaultevictor.PluginName,
|
||||
Args: &defaultevictor.DefaultEvictorArgs{
|
||||
EvictSystemCriticalPods: true,
|
||||
EvictFailedBarePods: true,
|
||||
EvictLocalStoragePods: true,
|
||||
PriorityThreshold: &api.PriorityThreshold{Value: utilpointer.Int32(2000000000)},
|
||||
NodeFit: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: removefailedpods.PluginName,
|
||||
Args: &removefailedpods.RemoveFailedPodsArgs{
|
||||
MinPodLifetimeSeconds: utilpointer.Uint(3600),
|
||||
},
|
||||
},
|
||||
},
|
||||
Plugins: api.Plugins{
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
Deschedule: api.PluginSet{
|
||||
Enabled: []string{removepodshavingtoomanyrestarts.PluginName},
|
||||
},
|
||||
|
||||
@@ -57,7 +57,10 @@ func TestProfileDescheduleBalanceExtensionPointsEviction(t *testing.T) {
|
||||
Deschedule: api.PluginSet{
|
||||
Enabled: []string{"FakePlugin"},
|
||||
},
|
||||
Evict: api.PluginSet{
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
@@ -87,7 +90,10 @@ func TestProfileDescheduleBalanceExtensionPointsEviction(t *testing.T) {
|
||||
Balance: api.PluginSet{
|
||||
Enabled: []string{"FakePlugin"},
|
||||
},
|
||||
Evict: api.PluginSet{
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
@@ -117,7 +123,10 @@ func TestProfileDescheduleBalanceExtensionPointsEviction(t *testing.T) {
|
||||
Balance: api.PluginSet{
|
||||
Enabled: []string{"FakePlugin"},
|
||||
},
|
||||
Evict: api.PluginSet{
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
@@ -147,7 +156,10 @@ func TestProfileDescheduleBalanceExtensionPointsEviction(t *testing.T) {
|
||||
Deschedule: api.PluginSet{
|
||||
Enabled: []string{"FakePlugin"},
|
||||
},
|
||||
Evict: api.PluginSet{
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
@@ -413,9 +425,9 @@ func TestProfileExtensionPoints(t *testing.T) {
|
||||
Enabled: []string{"FakePlugin_0"},
|
||||
},
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{"FilterPlugin_1", "FilterPlugin_0"},
|
||||
Enabled: []string{defaultevictor.PluginName, "FilterPlugin_1", "FilterPlugin_0"},
|
||||
},
|
||||
Evict: api.PluginSet{
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
},
|
||||
},
|
||||
@@ -477,7 +489,7 @@ func TestProfileExtensionPoints(t *testing.T) {
|
||||
names = append(names, pl.Name())
|
||||
}
|
||||
sort.Strings(names)
|
||||
diff = cmp.Diff(sets.NewString("FilterPlugin_0", "FilterPlugin_1"), sets.NewString(names...))
|
||||
diff = cmp.Diff(sets.NewString("DefaultEvictor", "FilterPlugin_0", "FilterPlugin_1"), sets.NewString(names...))
|
||||
if diff != "" {
|
||||
t.Errorf("check for filter failed. Results are not deep equal. mismatch (-want +got):\n%s", diff)
|
||||
}
|
||||
@@ -640,13 +652,10 @@ func TestProfileExtensionPointOrdering(t *testing.T) {
|
||||
Enabled: []string{"FakePlugin_1", "FakePlugin_0", "FakePlugin_2"},
|
||||
},
|
||||
Filter: api.PluginSet{
|
||||
Enabled: []string{"Filter_2", "Filter_1", "Filter_0"},
|
||||
Enabled: []string{defaultevictor.PluginName, "Filter_2", "Filter_1", "Filter_0"},
|
||||
},
|
||||
PreEvictionFilter: api.PluginSet{
|
||||
Enabled: []string{"Filter_2", "Filter_1", "Filter_0"},
|
||||
},
|
||||
Evict: api.PluginSet{
|
||||
Enabled: []string{defaultevictor.PluginName},
|
||||
Enabled: []string{defaultevictor.PluginName, "Filter_2", "Filter_1", "Filter_0"},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user