diff --git a/pkg/scheduler/core/extender_test.go b/pkg/scheduler/core/extender_test.go index 5398b023607..43687da7935 100644 --- a/pkg/scheduler/core/extender_test.go +++ b/pkg/scheduler/core/extender_test.go @@ -27,6 +27,7 @@ import ( "k8s.io/kubernetes/pkg/scheduler/algorithm" schedulerapi "k8s.io/kubernetes/pkg/scheduler/api" schedulercache "k8s.io/kubernetes/pkg/scheduler/cache" + internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue" schedulertesting "k8s.io/kubernetes/pkg/scheduler/testing" "k8s.io/kubernetes/pkg/scheduler/util" ) @@ -501,7 +502,7 @@ func TestGenericSchedulerWithExtenders(t *testing.T) { for _, name := range test.nodes { cache.AddNode(createNode(name)) } - queue := NewSchedulingQueue() + queue := internalqueue.NewSchedulingQueue() scheduler := NewGenericScheduler( cache, nil, diff --git a/pkg/scheduler/core/generic_scheduler.go b/pkg/scheduler/core/generic_scheduler.go index 21e093ca6af..57984abe267 100644 --- a/pkg/scheduler/core/generic_scheduler.go +++ b/pkg/scheduler/core/generic_scheduler.go @@ -41,6 +41,7 @@ import ( schedulerapi "k8s.io/kubernetes/pkg/scheduler/api" schedulercache "k8s.io/kubernetes/pkg/scheduler/cache" "k8s.io/kubernetes/pkg/scheduler/core/equivalence" + internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue" "k8s.io/kubernetes/pkg/scheduler/metrics" "k8s.io/kubernetes/pkg/scheduler/util" "k8s.io/kubernetes/pkg/scheduler/volumebinder" @@ -96,7 +97,7 @@ func (f *FitError) Error() string { type genericScheduler struct { cache schedulercache.Cache equivalenceCache *equivalence.Cache - schedulingQueue SchedulingQueue + schedulingQueue internalqueue.SchedulingQueue predicates map[string]algorithm.FitPredicate priorityMetaProducer algorithm.PriorityMetadataProducer predicateMetaProducer algorithm.PredicateMetadataProducer @@ -493,7 +494,7 @@ func (g *genericScheduler) findNodesThatFit(pod *v1.Pod, nodes []*v1.Node) ([]*v // to run on the node given in nodeInfo to meta and nodeInfo. It returns 1) whether // any pod was found, 2) augmented meta data, 3) augmented nodeInfo. func addNominatedPods(podPriority int32, meta algorithm.PredicateMetadata, - nodeInfo *schedulercache.NodeInfo, queue SchedulingQueue) (bool, algorithm.PredicateMetadata, + nodeInfo *schedulercache.NodeInfo, queue internalqueue.SchedulingQueue) (bool, algorithm.PredicateMetadata, *schedulercache.NodeInfo) { if queue == nil || nodeInfo == nil || nodeInfo.Node() == nil { // This may happen only in tests. @@ -535,7 +536,7 @@ func podFitsOnNode( info *schedulercache.NodeInfo, predicateFuncs map[string]algorithm.FitPredicate, nodeCache *equivalence.NodeCache, - queue SchedulingQueue, + queue internalqueue.SchedulingQueue, alwaysCheckAllPredicates bool, equivClass *equivalence.Class, ) (bool, []algorithm.PredicateFailureReason, error) { @@ -887,7 +888,7 @@ func selectNodesForPreemption(pod *v1.Pod, potentialNodes []*v1.Node, predicates map[string]algorithm.FitPredicate, metadataProducer algorithm.PredicateMetadataProducer, - queue SchedulingQueue, + queue internalqueue.SchedulingQueue, pdbs []*policy.PodDisruptionBudget, ) (map[*v1.Node]*schedulerapi.Victims, error) { @@ -976,7 +977,7 @@ func selectVictimsOnNode( meta algorithm.PredicateMetadata, nodeInfo *schedulercache.NodeInfo, fitPredicates map[string]algorithm.FitPredicate, - queue SchedulingQueue, + queue internalqueue.SchedulingQueue, pdbs []*policy.PodDisruptionBudget, ) ([]*v1.Pod, int, bool) { potentialVictims := util.SortableList{CompFunc: util.HigherPriorityPod} @@ -1140,7 +1141,7 @@ func podPassesBasicChecks(pod *v1.Pod, pvcLister corelisters.PersistentVolumeCla func NewGenericScheduler( cache schedulercache.Cache, eCache *equivalence.Cache, - podQueue SchedulingQueue, + podQueue internalqueue.SchedulingQueue, predicates map[string]algorithm.FitPredicate, predicateMetaProducer algorithm.PredicateMetadataProducer, prioritizers []algorithm.PriorityConfig, diff --git a/pkg/scheduler/core/generic_scheduler_test.go b/pkg/scheduler/core/generic_scheduler_test.go index 670f2611fc8..7501b19ace9 100644 --- a/pkg/scheduler/core/generic_scheduler_test.go +++ b/pkg/scheduler/core/generic_scheduler_test.go @@ -41,6 +41,7 @@ import ( schedulerapi "k8s.io/kubernetes/pkg/scheduler/api" schedulercache "k8s.io/kubernetes/pkg/scheduler/cache" "k8s.io/kubernetes/pkg/scheduler/core/equivalence" + internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue" schedulertesting "k8s.io/kubernetes/pkg/scheduler/testing" ) @@ -447,7 +448,7 @@ func TestGenericScheduler(t *testing.T) { scheduler := NewGenericScheduler( cache, nil, - NewSchedulingQueue(), + internalqueue.NewSchedulingQueue(), test.predicates, algorithm.EmptyPredicateMetadataProducer, test.prioritizers, @@ -483,7 +484,7 @@ func makeScheduler(predicates map[string]algorithm.FitPredicate, nodes []*v1.Nod s := NewGenericScheduler( cache, nil, - NewSchedulingQueue(), + internalqueue.NewSchedulingQueue(), predicates, algorithm.EmptyPredicateMetadataProducer, prioritizers, @@ -1404,7 +1405,7 @@ func TestPreempt(t *testing.T) { scheduler := NewGenericScheduler( cache, nil, - NewSchedulingQueue(), + internalqueue.NewSchedulingQueue(), map[string]algorithm.FitPredicate{"matches": algorithmpredicates.PodFitsResources}, algorithm.EmptyPredicateMetadataProducer, []algorithm.PriorityConfig{{Function: numericPriority, Weight: 1}}, @@ -1531,7 +1532,7 @@ func TestCacheInvalidationRace(t *testing.T) { scheduler := NewGenericScheduler( mockCache, eCache, - NewSchedulingQueue(), + internalqueue.NewSchedulingQueue(), ps, algorithm.EmptyPredicateMetadataProducer, prioritizers, @@ -1614,7 +1615,7 @@ func TestCacheInvalidationRace2(t *testing.T) { scheduler := NewGenericScheduler( cache, eCache, - NewSchedulingQueue(), + internalqueue.NewSchedulingQueue(), ps, algorithm.EmptyPredicateMetadataProducer, prioritizers, diff --git a/pkg/scheduler/factory/cache_comparer.go b/pkg/scheduler/factory/cache_comparer.go index 4768b79ef95..aee5c958bd2 100644 --- a/pkg/scheduler/factory/cache_comparer.go +++ b/pkg/scheduler/factory/cache_comparer.go @@ -25,14 +25,14 @@ import ( "k8s.io/apimachinery/pkg/labels" corelisters "k8s.io/client-go/listers/core/v1" schedulercache "k8s.io/kubernetes/pkg/scheduler/cache" - "k8s.io/kubernetes/pkg/scheduler/core" + internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue" ) type cacheComparer struct { nodeLister corelisters.NodeLister podLister corelisters.PodLister cache schedulercache.Cache - podQueue core.SchedulingQueue + podQueue internalqueue.SchedulingQueue compareStrategy } diff --git a/pkg/scheduler/factory/factory.go b/pkg/scheduler/factory/factory.go index a3d62dbfada..e0cf384cf21 100644 --- a/pkg/scheduler/factory/factory.go +++ b/pkg/scheduler/factory/factory.go @@ -60,6 +60,7 @@ import ( schedulercache "k8s.io/kubernetes/pkg/scheduler/cache" "k8s.io/kubernetes/pkg/scheduler/core" "k8s.io/kubernetes/pkg/scheduler/core/equivalence" + internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue" "k8s.io/kubernetes/pkg/scheduler/util" "k8s.io/kubernetes/pkg/scheduler/volumebinder" ) @@ -81,7 +82,7 @@ var ( type configFactory struct { client clientset.Interface // queue for pods that need scheduling - podQueue core.SchedulingQueue + podQueue internalqueue.SchedulingQueue // a means to list all known scheduled pods. scheduledPodLister corelisters.PodLister // a means to list all known scheduled pods and pods assumed to have been scheduled. @@ -175,7 +176,7 @@ func NewConfigFactory(args *ConfigFactoryArgs) scheduler.Configurator { c := &configFactory{ client: args.Client, podLister: schedulerCache, - podQueue: core.NewSchedulingQueue(), + podQueue: internalqueue.NewSchedulingQueue(), nodeLister: args.NodeInformer.Lister(), pVLister: args.PvInformer.Lister(), pVCLister: args.PvcInformer.Lister(), @@ -1348,7 +1349,7 @@ func NewPodInformer(client clientset.Interface, resyncPeriod time.Duration) core } } -func (c *configFactory) MakeDefaultErrorFunc(backoff *util.PodBackoff, podQueue core.SchedulingQueue) func(pod *v1.Pod, err error) { +func (c *configFactory) MakeDefaultErrorFunc(backoff *util.PodBackoff, podQueue internalqueue.SchedulingQueue) func(pod *v1.Pod, err error) { return func(pod *v1.Pod, err error) { if err == core.ErrNoNodesAvailable { glog.V(4).Infof("Unable to schedule %v/%v: no nodes are registered to the cluster; waiting", pod.Namespace, pod.Name) diff --git a/pkg/scheduler/factory/factory_test.go b/pkg/scheduler/factory/factory_test.go index 7ed14ebeb75..d45a8d1d356 100644 --- a/pkg/scheduler/factory/factory_test.go +++ b/pkg/scheduler/factory/factory_test.go @@ -41,7 +41,7 @@ import ( schedulerapi "k8s.io/kubernetes/pkg/scheduler/api" latestschedulerapi "k8s.io/kubernetes/pkg/scheduler/api/latest" schedulercache "k8s.io/kubernetes/pkg/scheduler/cache" - "k8s.io/kubernetes/pkg/scheduler/core" + internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue" schedulertesting "k8s.io/kubernetes/pkg/scheduler/testing" "k8s.io/kubernetes/pkg/scheduler/util" ) @@ -296,7 +296,7 @@ func TestDefaultErrorFunc(t *testing.T) { defer server.Close() client := clientset.NewForConfigOrDie(&restclient.Config{Host: server.URL, ContentConfig: restclient.ContentConfig{GroupVersion: &schema.GroupVersion{Group: "", Version: "v1"}}}) factory := newConfigFactory(client, v1.DefaultHardPodAffinitySymmetricWeight) - queue := &core.FIFO{FIFO: cache.NewFIFO(cache.MetaNamespaceKeyFunc)} + queue := &internalqueue.FIFO{FIFO: cache.NewFIFO(cache.MetaNamespaceKeyFunc)} podBackoff := util.CreatePodBackoff(1*time.Millisecond, 1*time.Second) errFunc := factory.MakeDefaultErrorFunc(podBackoff, queue) diff --git a/pkg/scheduler/core/scheduling_queue.go b/pkg/scheduler/internal/queue/scheduling_queue.go similarity index 99% rename from pkg/scheduler/core/scheduling_queue.go rename to pkg/scheduler/internal/queue/scheduling_queue.go index bd91a5381b9..271264e0653 100644 --- a/pkg/scheduler/core/scheduling_queue.go +++ b/pkg/scheduler/internal/queue/scheduling_queue.go @@ -24,7 +24,7 @@ limitations under the License. // FIFO is here for flag-gating purposes and allows us to use the traditional // scheduling queue when util.PodPriorityEnabled() returns false. -package core +package queue import ( "container/heap" diff --git a/pkg/scheduler/core/scheduling_queue_test.go b/pkg/scheduler/internal/queue/scheduling_queue_test.go similarity index 99% rename from pkg/scheduler/core/scheduling_queue_test.go rename to pkg/scheduler/internal/queue/scheduling_queue_test.go index 9233c9969e7..cdce43adc6a 100644 --- a/pkg/scheduler/core/scheduling_queue_test.go +++ b/pkg/scheduler/internal/queue/scheduling_queue_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package core +package queue import ( "fmt" @@ -27,6 +27,7 @@ import ( "k8s.io/kubernetes/pkg/scheduler/util" ) +var negPriority, lowPriority, midPriority, highPriority, veryHighPriority = int32(-100), int32(0), int32(100), int32(1000), int32(10000) var mediumPriority = (lowPriority + highPriority) / 2 var highPriorityPod, highPriNominatedPod, medPriorityPod, unschedulablePod = v1.Pod{ ObjectMeta: metav1.ObjectMeta{ diff --git a/pkg/scheduler/scheduler.go b/pkg/scheduler/scheduler.go index be4b49f266d..b1e8dfd50a4 100644 --- a/pkg/scheduler/scheduler.go +++ b/pkg/scheduler/scheduler.go @@ -34,6 +34,7 @@ import ( schedulercache "k8s.io/kubernetes/pkg/scheduler/cache" "k8s.io/kubernetes/pkg/scheduler/core" "k8s.io/kubernetes/pkg/scheduler/core/equivalence" + internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue" "k8s.io/kubernetes/pkg/scheduler/metrics" "k8s.io/kubernetes/pkg/scheduler/util" "k8s.io/kubernetes/pkg/scheduler/volumebinder" @@ -85,7 +86,7 @@ type Configurator interface { // Exposed for testing GetHardPodAffinitySymmetricWeight() int32 // Exposed for testing - MakeDefaultErrorFunc(backoff *util.PodBackoff, podQueue core.SchedulingQueue) func(pod *v1.Pod, err error) + MakeDefaultErrorFunc(backoff *util.PodBackoff, podQueue internalqueue.SchedulingQueue) func(pod *v1.Pod, err error) // Predicate related accessors to be exposed for use by k8s.io/autoscaler/cluster-autoscaler GetPredicateMetadataProducer() (algorithm.PredicateMetadataProducer, error) diff --git a/pkg/scheduler/testutil.go b/pkg/scheduler/testutil.go index ded22c0efdd..5469263b321 100644 --- a/pkg/scheduler/testutil.go +++ b/pkg/scheduler/testutil.go @@ -25,7 +25,7 @@ import ( corelisters "k8s.io/client-go/listers/core/v1" "k8s.io/kubernetes/pkg/scheduler/algorithm" schedulerapi "k8s.io/kubernetes/pkg/scheduler/api" - "k8s.io/kubernetes/pkg/scheduler/core" + internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue" "k8s.io/kubernetes/pkg/scheduler/util" ) @@ -50,7 +50,7 @@ func (fc *FakeConfigurator) GetHardPodAffinitySymmetricWeight() int32 { } // MakeDefaultErrorFunc is not implemented yet. -func (fc *FakeConfigurator) MakeDefaultErrorFunc(backoff *util.PodBackoff, podQueue core.SchedulingQueue) func(pod *v1.Pod, err error) { +func (fc *FakeConfigurator) MakeDefaultErrorFunc(backoff *util.PodBackoff, podQueue internalqueue.SchedulingQueue) func(pod *v1.Pod, err error) { return nil }