1
0
mirror of https://github.com/kubernetes-sigs/descheduler.git synced 2026-01-28 06:29:29 +01:00

Merge pull request #1120 from ingvagabund/remove-evict-extension-point

Drop Evict extension point
This commit is contained in:
Kubernetes Prow Robot
2023-04-24 05:43:01 -07:00
committed by GitHub
9 changed files with 230 additions and 66 deletions

View File

@@ -73,7 +73,6 @@ type Plugins struct {
Sort PluginSet Sort PluginSet
Deschedule PluginSet Deschedule PluginSet
Balance PluginSet Balance PluginSet
Evict PluginSet
Filter PluginSet Filter PluginSet
PreEvictionFilter PluginSet PreEvictionFilter PluginSet
} }

View File

@@ -201,7 +201,10 @@ func V1alpha1ToInternal(
*pluginConfig, *pluginConfig,
}, },
Plugins: api.Plugins{ Plugins: api.Plugins{
Evict: api.PluginSet{ Filter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName},
},
PreEvictionFilter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName}, Enabled: []string{defaultevictor.PluginName},
}, },
}, },

View File

@@ -50,7 +50,6 @@ type Plugins struct {
Sort PluginSet `json:"sort"` Sort PluginSet `json:"sort"`
Deschedule PluginSet `json:"deschedule"` Deschedule PluginSet `json:"deschedule"`
Balance PluginSet `json:"balance"` Balance PluginSet `json:"balance"`
Evict PluginSet `json:"evict"`
Filter PluginSet `json:"filter"` Filter PluginSet `json:"filter"`
PreEvictionFilter PluginSet `json:"preevictionfilter"` PreEvictionFilter PluginSet `json:"preevictionfilter"`
} }

View File

@@ -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 { if err := Convert_v1alpha2_PluginSet_To_api_PluginSet(&in.Balance, &out.Balance, s); err != nil {
return err 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 { if err := Convert_v1alpha2_PluginSet_To_api_PluginSet(&in.Filter, &out.Filter, s); err != nil {
return err 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 { if err := Convert_api_PluginSet_To_v1alpha2_PluginSet(&in.Balance, &out.Balance, s); err != nil {
return err 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 { if err := Convert_api_PluginSet_To_v1alpha2_PluginSet(&in.Filter, &out.Filter, s); err != nil {
return err return err
} }

View File

@@ -146,7 +146,6 @@ func (in *Plugins) DeepCopyInto(out *Plugins) {
in.Sort.DeepCopyInto(&out.Sort) in.Sort.DeepCopyInto(&out.Sort)
in.Deschedule.DeepCopyInto(&out.Deschedule) in.Deschedule.DeepCopyInto(&out.Deschedule)
in.Balance.DeepCopyInto(&out.Balance) in.Balance.DeepCopyInto(&out.Balance)
in.Evict.DeepCopyInto(&out.Evict)
in.Filter.DeepCopyInto(&out.Filter) in.Filter.DeepCopyInto(&out.Filter)
in.PreEvictionFilter.DeepCopyInto(&out.PreEvictionFilter) in.PreEvictionFilter.DeepCopyInto(&out.PreEvictionFilter)
return return

View File

@@ -174,7 +174,6 @@ func (in *Plugins) DeepCopyInto(out *Plugins) {
in.Sort.DeepCopyInto(&out.Sort) in.Sort.DeepCopyInto(&out.Sort)
in.Deschedule.DeepCopyInto(&out.Deschedule) in.Deschedule.DeepCopyInto(&out.Deschedule)
in.Balance.DeepCopyInto(&out.Balance) in.Balance.DeepCopyInto(&out.Balance)
in.Evict.DeepCopyInto(&out.Evict)
in.Filter.DeepCopyInto(&out.Filter) in.Filter.DeepCopyInto(&out.Filter)
in.PreEvictionFilter.DeepCopyInto(&out.PreEvictionFilter) in.PreEvictionFilter.DeepCopyInto(&out.PreEvictionFilter)
return return

View File

@@ -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 { func setDefaultEvictor(profile api.DeschedulerProfile, client clientset.Interface) api.DeschedulerProfile {
newPluginConfig := api.PluginConfig{ newPluginConfig := api.PluginConfig{
Name: defaultevictor.PluginName, Name: defaultevictor.PluginName,
@@ -97,16 +106,24 @@ func setDefaultEvictor(profile api.DeschedulerProfile, client clientset.Interfac
EvictFailedBarePods: false, EvictFailedBarePods: false,
}, },
} }
if len(profile.Plugins.Evict.Enabled) == 0 && !hasPluginConfigsWithSameName(newPluginConfig, profile.PluginConfigs) {
profile.Plugins.Evict.Enabled = append(profile.Plugins.Evict.Enabled, defaultevictor.PluginName) // Always enable DefaultEvictor plugin for filter/preEvictionFilter extension points
profile.PluginConfigs = append(profile.PluginConfigs, newPluginConfig) 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) defaultevictorPluginConfig, idx := GetPluginConfig(defaultevictor.PluginName, profile.PluginConfigs)
if defaultevictorPluginConfig != nil { if defaultevictorPluginConfig == nil {
thresholdPriority, err = utils.GetPriorityFromStrategyParams(context.TODO(), client, defaultevictorPluginConfig.Args.(*defaultevictor.DefaultEvictorArgs).PriorityThreshold) 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 { if err != nil {
klog.Error(err, "Failed to get threshold priority from args") 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 { func validateDeschedulerConfiguration(in api.DeschedulerPolicy, registry pluginregistry.Registry) error {
var errorsInProfiles error var errorsInProfiles error
for _, profile := range in.Profiles { 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 { for _, pluginConfig := range profile.PluginConfigs {
if _, ok := registry[pluginConfig.Name]; ok { if _, ok := registry[pluginConfig.Name]; ok {
pluginUtilities := registry[pluginConfig.Name] pluginUtilities := registry[pluginConfig.Name]

View File

@@ -49,9 +49,6 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
}, },
}, },
} }
defaultEvictorPluginSet := api.PluginSet{
Enabled: []string{defaultevictor.PluginName},
}
type testCase struct { type testCase struct {
description string description string
policy *v1alpha1.DeschedulerPolicy policy *v1alpha1.DeschedulerPolicy
@@ -113,7 +110,12 @@ func TestV1alpha1ToV1alpha2(t *testing.T) {
Balance: api.PluginSet{ Balance: api.PluginSet{
Enabled: []string{removeduplicates.PluginName}, 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 // 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{ Balance: api.PluginSet{
Enabled: []string{nodeutilization.HighNodeUtilizationPluginName}, 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{ Balance: api.PluginSet{
Enabled: []string{nodeutilization.LowNodeUtilizationPluginName}, 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{ Balance: api.PluginSet{
Enabled: []string{removeduplicates.PluginName}, 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{ Deschedule: api.PluginSet{
Enabled: []string{removefailedpods.PluginName}, 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{ Deschedule: api.PluginSet{
Enabled: []string{removepodshavingtoomanyrestarts.PluginName}, 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{ Deschedule: api.PluginSet{
Enabled: []string{removepodsviolatinginterpodantiaffinity.PluginName}, 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{ Deschedule: api.PluginSet{
Enabled: []string{removepodsviolatingnodeaffinity.PluginName}, 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{ Deschedule: api.PluginSet{
Enabled: []string{removepodsviolatingnodetaints.PluginName}, 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{ Balance: api.PluginSet{
Enabled: []string{removepodsviolatingtopologyspreadconstraint.PluginName}, 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{ Balance: api.PluginSet{
Enabled: []string{nodeutilization.HighNodeUtilizationPluginName}, 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{ Balance: api.PluginSet{
Enabled: []string{nodeutilization.LowNodeUtilizationPluginName}, 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{ Balance: api.PluginSet{
Enabled: []string{removeduplicates.PluginName}, 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{ Deschedule: api.PluginSet{
Enabled: []string{removefailedpods.PluginName}, 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{ Deschedule: api.PluginSet{
Enabled: []string{removepodshavingtoomanyrestarts.PluginName}, 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{ Deschedule: api.PluginSet{
Enabled: []string{removepodsviolatinginterpodantiaffinity.PluginName}, 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{ Deschedule: api.PluginSet{
Enabled: []string{removepodsviolatingnodeaffinity.PluginName}, 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{ Deschedule: api.PluginSet{
Enabled: []string{removepodsviolatingnodetaints.PluginName}, 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{ Balance: api.PluginSet{
Enabled: []string{removepodsviolatingtopologyspreadconstraint.PluginName}, 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 { type testCase struct {
description string description string
policy []byte policy []byte
@@ -754,7 +843,12 @@ strategies:
}, },
}, },
Plugins: api.Plugins{ Plugins: api.Plugins{
Evict: defaultEvictorPluginSet, Filter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName},
},
PreEvictionFilter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName},
},
Deschedule: api.PluginSet{ Deschedule: api.PluginSet{
Enabled: []string{podlifetime.PluginName}, Enabled: []string{podlifetime.PluginName},
}, },
@@ -815,10 +909,10 @@ profiles:
}, },
}, },
Plugins: api.Plugins{ Plugins: api.Plugins{
Evict: api.PluginSet{ Filter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName}, Enabled: []string{defaultevictor.PluginName},
}, },
Filter: api.PluginSet{ PreEvictionFilter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName}, Enabled: []string{defaultevictor.PluginName},
}, },
Deschedule: api.PluginSet{ 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: filter:
enabled: enabled:
- "DefaultEvictor" - "DefaultEvictor"
evict: preEvictionFilter:
enabled: enabled:
- "DefaultEvictor" - "DefaultEvictor"
deschedule: deschedule:
@@ -969,12 +1063,68 @@ profiles:
}, },
}, },
Plugins: api.Plugins{ Plugins: api.Plugins{
Evict: api.PluginSet{ Filter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName}, 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{ Filter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName}, Enabled: []string{defaultevictor.PluginName},
}, },
PreEvictionFilter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName},
},
Deschedule: api.PluginSet{ Deschedule: api.PluginSet{
Enabled: []string{removepodshavingtoomanyrestarts.PluginName}, Enabled: []string{removepodshavingtoomanyrestarts.PluginName},
}, },

View File

@@ -57,7 +57,10 @@ func TestProfileDescheduleBalanceExtensionPointsEviction(t *testing.T) {
Deschedule: api.PluginSet{ Deschedule: api.PluginSet{
Enabled: []string{"FakePlugin"}, Enabled: []string{"FakePlugin"},
}, },
Evict: api.PluginSet{ Filter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName},
},
PreEvictionFilter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName}, Enabled: []string{defaultevictor.PluginName},
}, },
}, },
@@ -87,7 +90,10 @@ func TestProfileDescheduleBalanceExtensionPointsEviction(t *testing.T) {
Balance: api.PluginSet{ Balance: api.PluginSet{
Enabled: []string{"FakePlugin"}, Enabled: []string{"FakePlugin"},
}, },
Evict: api.PluginSet{ Filter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName},
},
PreEvictionFilter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName}, Enabled: []string{defaultevictor.PluginName},
}, },
}, },
@@ -117,7 +123,10 @@ func TestProfileDescheduleBalanceExtensionPointsEviction(t *testing.T) {
Balance: api.PluginSet{ Balance: api.PluginSet{
Enabled: []string{"FakePlugin"}, Enabled: []string{"FakePlugin"},
}, },
Evict: api.PluginSet{ Filter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName},
},
PreEvictionFilter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName}, Enabled: []string{defaultevictor.PluginName},
}, },
}, },
@@ -147,7 +156,10 @@ func TestProfileDescheduleBalanceExtensionPointsEviction(t *testing.T) {
Deschedule: api.PluginSet{ Deschedule: api.PluginSet{
Enabled: []string{"FakePlugin"}, Enabled: []string{"FakePlugin"},
}, },
Evict: api.PluginSet{ Filter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName},
},
PreEvictionFilter: api.PluginSet{
Enabled: []string{defaultevictor.PluginName}, Enabled: []string{defaultevictor.PluginName},
}, },
}, },
@@ -413,9 +425,9 @@ func TestProfileExtensionPoints(t *testing.T) {
Enabled: []string{"FakePlugin_0"}, Enabled: []string{"FakePlugin_0"},
}, },
Filter: api.PluginSet{ 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}, Enabled: []string{defaultevictor.PluginName},
}, },
}, },
@@ -477,7 +489,7 @@ func TestProfileExtensionPoints(t *testing.T) {
names = append(names, pl.Name()) names = append(names, pl.Name())
} }
sort.Strings(names) 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 != "" { if diff != "" {
t.Errorf("check for filter failed. Results are not deep equal. mismatch (-want +got):\n%s", 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"}, Enabled: []string{"FakePlugin_1", "FakePlugin_0", "FakePlugin_2"},
}, },
Filter: api.PluginSet{ Filter: api.PluginSet{
Enabled: []string{"Filter_2", "Filter_1", "Filter_0"}, Enabled: []string{defaultevictor.PluginName, "Filter_2", "Filter_1", "Filter_0"},
}, },
PreEvictionFilter: api.PluginSet{ PreEvictionFilter: api.PluginSet{
Enabled: []string{"Filter_2", "Filter_1", "Filter_0"}, Enabled: []string{defaultevictor.PluginName, "Filter_2", "Filter_1", "Filter_0"},
},
Evict: api.PluginSet{
Enabled: []string{defaultevictor.PluginName},
}, },
}, },
}, },