diff --git a/pkg/api/types.go b/pkg/api/types.go index f94538464..ca9176e8d 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -73,7 +73,6 @@ type Plugins struct { Sort PluginSet Deschedule PluginSet Balance PluginSet - Evict PluginSet Filter PluginSet PreEvictionFilter PluginSet } diff --git a/pkg/api/v1alpha1/conversion.go b/pkg/api/v1alpha1/conversion.go index 2259e0fc7..09ff8c385 100644 --- a/pkg/api/v1alpha1/conversion.go +++ b/pkg/api/v1alpha1/conversion.go @@ -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}, }, }, diff --git a/pkg/api/v1alpha2/types.go b/pkg/api/v1alpha2/types.go index ea8318b73..72c7949d2 100644 --- a/pkg/api/v1alpha2/types.go +++ b/pkg/api/v1alpha2/types.go @@ -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"` } diff --git a/pkg/api/v1alpha2/zz_generated.conversion.go b/pkg/api/v1alpha2/zz_generated.conversion.go index 14080b798..cb183119a 100644 --- a/pkg/api/v1alpha2/zz_generated.conversion.go +++ b/pkg/api/v1alpha2/zz_generated.conversion.go @@ -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 } diff --git a/pkg/api/v1alpha2/zz_generated.deepcopy.go b/pkg/api/v1alpha2/zz_generated.deepcopy.go index 93302328b..073c2b7e0 100644 --- a/pkg/api/v1alpha2/zz_generated.deepcopy.go +++ b/pkg/api/v1alpha2/zz_generated.deepcopy.go @@ -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 diff --git a/pkg/api/zz_generated.deepcopy.go b/pkg/api/zz_generated.deepcopy.go index ebbdaf283..9ab66133a 100644 --- a/pkg/api/zz_generated.deepcopy.go +++ b/pkg/api/zz_generated.deepcopy.go @@ -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 diff --git a/pkg/descheduler/policyconfig.go b/pkg/descheduler/policyconfig.go index 2005b3870..ed76dfa1b 100644 --- a/pkg/descheduler/policyconfig.go +++ b/pkg/descheduler/policyconfig.go @@ -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] diff --git a/pkg/descheduler/policyconfig_test.go b/pkg/descheduler/policyconfig_test.go index 3bba1d908..86a8a0382 100644 --- a/pkg/descheduler/policyconfig_test.go +++ b/pkg/descheduler/policyconfig_test.go @@ -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}, }, diff --git a/pkg/framework/profile/profile_test.go b/pkg/framework/profile/profile_test.go index 2418ba165..f7cbb8526 100644 --- a/pkg/framework/profile/profile_test.go +++ b/pkg/framework/profile/profile_test.go @@ -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"}, }, }, },