diff --git a/plugin/pkg/scheduler/algorithmprovider/defaults/defaults.go b/plugin/pkg/scheduler/algorithmprovider/defaults/defaults.go index 7e25b0405c2..2d7e278a921 100644 --- a/plugin/pkg/scheduler/algorithmprovider/defaults/defaults.go +++ b/plugin/pkg/scheduler/algorithmprovider/defaults/defaults.go @@ -176,7 +176,6 @@ func defaultPredicates() sets.String { factory.RegisterFitPredicate("CheckNodeDiskPressure", predicates.CheckNodeDiskPressurePredicate), // Fit is determied by node condtions: not ready, network unavailable and out of disk. - factory.RegisterFitPredicate("CheckNodeCondition", predicates.CheckNodeConditionPredicate), factory.RegisterMandatoryFitPredicate("CheckNodeCondition", predicates.CheckNodeConditionPredicate), // Fit is determined by volume zone requirements. diff --git a/plugin/pkg/scheduler/factory/plugins.go b/plugin/pkg/scheduler/factory/plugins.go index ad245c7d9c6..48cdca881a4 100644 --- a/plugin/pkg/scheduler/factory/plugins.go +++ b/plugin/pkg/scheduler/factory/plugins.go @@ -72,10 +72,10 @@ var ( schedulerFactoryMutex sync.Mutex // maps that hold registered algorithm types - fitPredicateMap = make(map[string]FitPredicateFactory) - mandatoryFitPredicateMap = make(map[string]FitPredicateFactory) - priorityFunctionMap = make(map[string]PriorityConfigFactory) - algorithmProviderMap = make(map[string]AlgorithmProviderConfig) + fitPredicateMap = make(map[string]FitPredicateFactory) + mandatoryFitPredicates = sets.NewString() + priorityFunctionMap = make(map[string]PriorityConfigFactory) + algorithmProviderMap = make(map[string]AlgorithmProviderConfig) // Registered metadata producers priorityMetadataProducer MetadataProducerFactory @@ -107,7 +107,8 @@ func RegisterMandatoryFitPredicate(name string, predicate algorithm.FitPredicate schedulerFactoryMutex.Lock() defer schedulerFactoryMutex.Unlock() validateAlgorithmNameOrDie(name) - mandatoryFitPredicateMap[name] = func(PluginFactoryArgs) algorithm.FitPredicate { return predicate } + fitPredicateMap[name] = func(PluginFactoryArgs) algorithm.FitPredicate { return predicate } + mandatoryFitPredicates.Insert(name) return name } @@ -321,9 +322,9 @@ func getFitPredicateFunctions(names sets.String, args PluginFactoryArgs) (map[st predicates[name] = factory(args) } - // Always include required fit predicates. - for name, factory := range mandatoryFitPredicateMap { - if _, found := predicates[name]; !found { + // Always include mandatory fit predicates. + for name := range mandatoryFitPredicates { + if factory, found := fitPredicateMap[name]; found { predicates[name] = factory(args) } }