diff --git a/pkg/scheduler/algorithm/priorities/metadata.go b/pkg/scheduler/algorithm/priorities/metadata.go index fe9dce79f4..b949ad7d9b 100644 --- a/pkg/scheduler/algorithm/priorities/metadata.go +++ b/pkg/scheduler/algorithm/priorities/metadata.go @@ -32,7 +32,7 @@ type PriorityMetadataFactory struct { statefulSetLister algorithm.StatefulSetLister } -func NewPriorityMetadataFactory(serviceLister algorithm.ServiceLister, controllerLister algorithm.ControllerLister, replicaSetLister algorithm.ReplicaSetLister, statefulSetLister algorithm.StatefulSetLister) algorithm.MetadataProducer { +func NewPriorityMetadataFactory(serviceLister algorithm.ServiceLister, controllerLister algorithm.ControllerLister, replicaSetLister algorithm.ReplicaSetLister, statefulSetLister algorithm.StatefulSetLister) algorithm.PriorityMetadataProducer { factory := &PriorityMetadataFactory{ serviceLister: serviceLister, controllerLister: controllerLister, @@ -52,7 +52,7 @@ type priorityMetadata struct { podFirstServiceSelector labels.Selector } -// PriorityMetadata is a MetadataProducer. Node info can be nil. +// PriorityMetadata is a PriorityMetadataProducer. Node info can be nil. func (pmf *PriorityMetadataFactory) PriorityMetadata(pod *v1.Pod, nodeNameToInfo map[string]*schedulercache.NodeInfo) interface{} { // If we cannot compute metadata, just return nil if pod == nil { diff --git a/pkg/scheduler/algorithm/types.go b/pkg/scheduler/algorithm/types.go index 5fb2981f11..f6ff3b4942 100644 --- a/pkg/scheduler/algorithm/types.go +++ b/pkg/scheduler/algorithm/types.go @@ -43,10 +43,9 @@ type PriorityReduceFunction func(pod *v1.Pod, meta interface{}, nodeNameToInfo m // PredicateMetadataProducer is a function that computes predicate metadata for a given pod. type PredicateMetadataProducer func(pod *v1.Pod, nodeNameToInfo map[string]*schedulercache.NodeInfo) PredicateMetadata -// MetadataProducer is a function that computes metadata for a given pod. This +// PriorityMetadataProducer is a function that computes metadata for a given pod. This // is now used for only for priority functions. For predicates please use PredicateMetadataProducer. -// TODO: Rename this once we have a specific type for priority metadata producer. -type MetadataProducer func(pod *v1.Pod, nodeNameToInfo map[string]*schedulercache.NodeInfo) interface{} +type PriorityMetadataProducer func(pod *v1.Pod, nodeNameToInfo map[string]*schedulercache.NodeInfo) interface{} // DEPRECATED // Use Map-Reduce pattern for priority functions. @@ -67,8 +66,8 @@ func EmptyPredicateMetadataProducer(pod *v1.Pod, nodeNameToInfo map[string]*sche return nil } -// EmptyMetadataProducer returns a no-op MetadataProducer type. -func EmptyMetadataProducer(pod *v1.Pod, nodeNameToInfo map[string]*schedulercache.NodeInfo) interface{} { +// EmptyPriorityMetadataProducer returns a no-op PriorityMetadataProducer type. +func EmptyPriorityMetadataProducer(pod *v1.Pod, nodeNameToInfo map[string]*schedulercache.NodeInfo) interface{} { return nil } diff --git a/pkg/scheduler/algorithm/types_test.go b/pkg/scheduler/algorithm/types_test.go index 862425f721..58ead064d9 100644 --- a/pkg/scheduler/algorithm/types_test.go +++ b/pkg/scheduler/algorithm/types_test.go @@ -24,8 +24,8 @@ import ( "k8s.io/kubernetes/pkg/scheduler/schedulercache" ) -// EmptyMetadataProducer should returns a no-op MetadataProducer type. -func TestEmptyMetadataProducer(t *testing.T) { +// EmptyPriorityMetadataProducer should returns a no-op PriorityMetadataProducer type. +func TestEmptyPriorityMetadataProducer(t *testing.T) { fakePod := new(v1.Pod) fakeLabelSelector := labels.SelectorFromSet(labels.Set{"foo": "bar"}) @@ -33,8 +33,8 @@ func TestEmptyMetadataProducer(t *testing.T) { "2": schedulercache.NewNodeInfo(fakePod), "1": schedulercache.NewNodeInfo(), } - // Test EmptyMetadataProducer - metadata := EmptyMetadataProducer(fakePod, nodeNameToInfo) + // Test EmptyPriorityMetadataProducer + metadata := EmptyPriorityMetadataProducer(fakePod, nodeNameToInfo) if metadata != nil { t.Errorf("failed to produce empty metadata: got %v, expected nil", metadata) } diff --git a/pkg/scheduler/algorithmprovider/defaults/defaults.go b/pkg/scheduler/algorithmprovider/defaults/defaults.go index 6cbc772ac9..11b0a54042 100644 --- a/pkg/scheduler/algorithmprovider/defaults/defaults.go +++ b/pkg/scheduler/algorithmprovider/defaults/defaults.go @@ -42,7 +42,7 @@ func init() { return predicates.NewPredicateMetadataFactory(args.PodLister) }) factory.RegisterPriorityMetadataProducerFactory( - func(args factory.PluginFactoryArgs) algorithm.MetadataProducer { + func(args factory.PluginFactoryArgs) algorithm.PriorityMetadataProducer { return priorities.NewPriorityMetadataFactory(args.ServiceLister, args.ControllerLister, args.ReplicaSetLister, args.StatefulSetLister) }) diff --git a/pkg/scheduler/core/extender_test.go b/pkg/scheduler/core/extender_test.go index 09e136d38b..69cf8c54d1 100644 --- a/pkg/scheduler/core/extender_test.go +++ b/pkg/scheduler/core/extender_test.go @@ -317,7 +317,7 @@ func TestGenericSchedulerWithExtenders(t *testing.T) { } queue := NewSchedulingQueue() scheduler := NewGenericScheduler( - cache, nil, queue, test.predicates, algorithm.EmptyPredicateMetadataProducer, test.prioritizers, algorithm.EmptyMetadataProducer, extenders, nil, schedulertesting.FakePersistentVolumeClaimLister{}, false) + cache, nil, queue, test.predicates, algorithm.EmptyPredicateMetadataProducer, test.prioritizers, algorithm.EmptyPriorityMetadataProducer, extenders, nil, schedulertesting.FakePersistentVolumeClaimLister{}, false) podIgnored := &v1.Pod{} machine, err := scheduler.Schedule(podIgnored, schedulertesting.FakeNodeLister(makeNodeList(test.nodes))) if test.expectsErr { diff --git a/pkg/scheduler/core/generic_scheduler.go b/pkg/scheduler/core/generic_scheduler.go index 2009b7af89..da04ff45ad 100644 --- a/pkg/scheduler/core/generic_scheduler.go +++ b/pkg/scheduler/core/generic_scheduler.go @@ -94,17 +94,16 @@ type genericScheduler struct { equivalenceCache *EquivalenceCache schedulingQueue SchedulingQueue predicates map[string]algorithm.FitPredicate - priorityMetaProducer algorithm.MetadataProducer + priorityMetaProducer algorithm.PriorityMetadataProducer predicateMetaProducer algorithm.PredicateMetadataProducer prioritizers []algorithm.PriorityConfig extenders []algorithm.SchedulerExtender lastNodeIndexLock sync.Mutex lastNodeIndex uint64 alwaysCheckAllPredicates bool - - cachedNodeInfoMap map[string]*schedulercache.NodeInfo - volumeBinder *volumebinder.VolumeBinder - pvcLister corelisters.PersistentVolumeClaimLister + cachedNodeInfoMap map[string]*schedulercache.NodeInfo + volumeBinder *volumebinder.VolumeBinder + pvcLister corelisters.PersistentVolumeClaimLister } // Schedule tries to schedule the given pod to one of node in the node list. @@ -1048,7 +1047,7 @@ func NewGenericScheduler( predicates map[string]algorithm.FitPredicate, predicateMetaProducer algorithm.PredicateMetadataProducer, prioritizers []algorithm.PriorityConfig, - priorityMetaProducer algorithm.MetadataProducer, + priorityMetaProducer algorithm.PriorityMetadataProducer, extenders []algorithm.SchedulerExtender, volumeBinder *volumebinder.VolumeBinder, pvcLister corelisters.PersistentVolumeClaimLister, diff --git a/pkg/scheduler/core/generic_scheduler_test.go b/pkg/scheduler/core/generic_scheduler_test.go index 55fede23c4..70802239d7 100644 --- a/pkg/scheduler/core/generic_scheduler_test.go +++ b/pkg/scheduler/core/generic_scheduler_test.go @@ -410,7 +410,7 @@ func TestGenericScheduler(t *testing.T) { pvcLister := schedulertesting.FakePersistentVolumeClaimLister(pvcs) scheduler := NewGenericScheduler( - cache, nil, NewSchedulingQueue(), test.predicates, algorithm.EmptyPredicateMetadataProducer, test.prioritizers, algorithm.EmptyMetadataProducer, []algorithm.SchedulerExtender{}, nil, pvcLister, test.alwaysCheckAllPredicates) + cache, nil, NewSchedulingQueue(), test.predicates, algorithm.EmptyPredicateMetadataProducer, test.prioritizers, algorithm.EmptyPriorityMetadataProducer, []algorithm.SchedulerExtender{}, nil, pvcLister, test.alwaysCheckAllPredicates) machine, err := scheduler.Schedule(test.pod, schedulertesting.FakeNodeLister(makeNodeList(test.nodes))) if !reflect.DeepEqual(err, test.wErr) { @@ -1293,7 +1293,7 @@ func TestPreempt(t *testing.T) { extenders = append(extenders, extender) } scheduler := NewGenericScheduler( - cache, nil, NewSchedulingQueue(), map[string]algorithm.FitPredicate{"matches": algorithmpredicates.PodFitsResources}, algorithm.EmptyPredicateMetadataProducer, []algorithm.PriorityConfig{{Function: numericPriority, Weight: 1}}, algorithm.EmptyMetadataProducer, extenders, nil, schedulertesting.FakePersistentVolumeClaimLister{}, false) + cache, nil, NewSchedulingQueue(), map[string]algorithm.FitPredicate{"matches": algorithmpredicates.PodFitsResources}, algorithm.EmptyPredicateMetadataProducer, []algorithm.PriorityConfig{{Function: numericPriority, Weight: 1}}, algorithm.EmptyPriorityMetadataProducer, extenders, nil, schedulertesting.FakePersistentVolumeClaimLister{}, false) // Call Preempt and check the expected results. node, victims, _, err := scheduler.Preempt(test.pod, schedulertesting.FakeNodeLister(makeNodeList(nodeNames)), error(&FitError{Pod: test.pod, FailedPredicates: failedPredMap})) if err != nil { diff --git a/pkg/scheduler/factory/factory.go b/pkg/scheduler/factory/factory.go index fca4f46e3d..cfde827ca9 100644 --- a/pkg/scheduler/factory/factory.go +++ b/pkg/scheduler/factory/factory.go @@ -983,7 +983,7 @@ func (f *configFactory) GetPriorityFunctionConfigs(priorityKeys sets.String) ([] return getPriorityFunctionConfigs(priorityKeys, *pluginArgs) } -func (f *configFactory) GetPriorityMetadataProducer() (algorithm.MetadataProducer, error) { +func (f *configFactory) GetPriorityMetadataProducer() (algorithm.PriorityMetadataProducer, error) { pluginArgs, err := f.getPluginArgs() if err != nil { return nil, err diff --git a/pkg/scheduler/factory/plugins.go b/pkg/scheduler/factory/plugins.go index b8733d2961..1447d9487c 100644 --- a/pkg/scheduler/factory/plugins.go +++ b/pkg/scheduler/factory/plugins.go @@ -49,9 +49,8 @@ type PluginFactoryArgs struct { HardPodAffinitySymmetricWeight int32 } -// MetadataProducerFactory produces MetadataProducer from the given args. -// TODO: Rename this to PriorityMetadataProducerFactory. -type MetadataProducerFactory func(PluginFactoryArgs) algorithm.MetadataProducer +// PriorityMetadataProducerFactory produces PriorityMetadataProducer from the given args. +type PriorityMetadataProducerFactory func(PluginFactoryArgs) algorithm.PriorityMetadataProducer // PredicateMetadataProducerFactory produces PredicateMetadataProducer from the given args. type PredicateMetadataProducerFactory func(PluginFactoryArgs) algorithm.PredicateMetadataProducer @@ -89,7 +88,7 @@ var ( algorithmProviderMap = make(map[string]AlgorithmProviderConfig) // Registered metadata producers - priorityMetadataProducer MetadataProducerFactory + priorityMetadataProducer PriorityMetadataProducerFactory predicateMetadataProducer PredicateMetadataProducerFactory // get equivalence pod function @@ -245,7 +244,7 @@ func IsFitPredicateRegistered(name string) bool { return ok } -func RegisterPriorityMetadataProducerFactory(factory MetadataProducerFactory) { +func RegisterPriorityMetadataProducerFactory(factory PriorityMetadataProducerFactory) { schedulerFactoryMutex.Lock() defer schedulerFactoryMutex.Unlock() priorityMetadataProducer = factory @@ -404,12 +403,12 @@ func getFitPredicateFunctions(names sets.String, args PluginFactoryArgs) (map[st return predicates, nil } -func getPriorityMetadataProducer(args PluginFactoryArgs) (algorithm.MetadataProducer, error) { +func getPriorityMetadataProducer(args PluginFactoryArgs) (algorithm.PriorityMetadataProducer, error) { schedulerFactoryMutex.Lock() defer schedulerFactoryMutex.Unlock() if priorityMetadataProducer == nil { - return algorithm.EmptyMetadataProducer, nil + return algorithm.EmptyPriorityMetadataProducer, nil } return priorityMetadataProducer(args), nil } diff --git a/pkg/scheduler/scheduler.go b/pkg/scheduler/scheduler.go index fee845f34e..788647618e 100644 --- a/pkg/scheduler/scheduler.go +++ b/pkg/scheduler/scheduler.go @@ -78,7 +78,7 @@ func (sched *Scheduler) StopEverything() { // factory.go. type Configurator interface { GetPriorityFunctionConfigs(priorityKeys sets.String) ([]algorithm.PriorityConfig, error) - GetPriorityMetadataProducer() (algorithm.MetadataProducer, error) + GetPriorityMetadataProducer() (algorithm.PriorityMetadataProducer, error) GetPredicateMetadataProducer() (algorithm.PredicateMetadataProducer, error) GetPredicates(predicateKeys sets.String) (map[string]algorithm.FitPredicate, error) GetHardPodAffinitySymmetricWeight() int32 diff --git a/pkg/scheduler/scheduler_test.go b/pkg/scheduler/scheduler_test.go index ed36792156..d2a5d14772 100644 --- a/pkg/scheduler/scheduler_test.go +++ b/pkg/scheduler/scheduler_test.go @@ -530,7 +530,7 @@ func setupTestScheduler(queuedPodStore *clientcache.FIFO, scache schedulercache. predicateMap, algorithm.EmptyPredicateMetadataProducer, []algorithm.PriorityConfig{}, - algorithm.EmptyMetadataProducer, + algorithm.EmptyPriorityMetadataProducer, []algorithm.SchedulerExtender{}, nil, schedulertesting.FakePersistentVolumeClaimLister{}, @@ -575,7 +575,7 @@ func setupTestSchedulerLongBindingWithRetry(queuedPodStore *clientcache.FIFO, sc predicateMap, algorithm.EmptyPredicateMetadataProducer, []algorithm.PriorityConfig{}, - algorithm.EmptyMetadataProducer, + algorithm.EmptyPriorityMetadataProducer, []algorithm.SchedulerExtender{}, nil, schedulertesting.FakePersistentVolumeClaimLister{}, diff --git a/pkg/scheduler/testutil.go b/pkg/scheduler/testutil.go index 249ced16cd..0e0c2eae7c 100644 --- a/pkg/scheduler/testutil.go +++ b/pkg/scheduler/testutil.go @@ -40,7 +40,7 @@ func (fc *FakeConfigurator) GetPriorityFunctionConfigs(priorityKeys sets.String) } // GetPriorityMetadataProducer is not implemented yet. -func (fc *FakeConfigurator) GetPriorityMetadataProducer() (algorithm.MetadataProducer, error) { +func (fc *FakeConfigurator) GetPriorityMetadataProducer() (algorithm.PriorityMetadataProducer, error) { return nil, fmt.Errorf("not implemented") }