diff --git a/pkg/scheduler/factory.go b/pkg/scheduler/factory.go index 4f01a0699f2..9304b83ea5c 100644 --- a/pkg/scheduler/factory.go +++ b/pkg/scheduler/factory.go @@ -188,7 +188,7 @@ func (c *Configurator) create() (*Scheduler, error) { ) debugger.ListenForSignal(c.StopEverything) - algo := core.NewGenericScheduler( + algo := NewGenericScheduler( c.schedulerCache, c.nodeInfoSnapshot, c.percentageOfNodesToScore, @@ -374,7 +374,7 @@ func dedupPluginConfigs(pc []schedulerapi.PluginConfig) ([]schedulerapi.PluginCo func MakeDefaultErrorFunc(client clientset.Interface, podLister corelisters.PodLister, podQueue internalqueue.SchedulingQueue, schedulerCache internalcache.Cache) func(*framework.QueuedPodInfo, error) { return func(podInfo *framework.QueuedPodInfo, err error) { pod := podInfo.Pod - if err == core.ErrNoNodesAvailable { + if err == ErrNoNodesAvailable { klog.V(2).InfoS("Unable to schedule pod; no nodes are registered to the cluster; waiting", "pod", klog.KObj(pod)) } else if fitError, ok := err.(*framework.FitError); ok { // Inject UnschedulablePlugins to PodInfo, which will be used later for moving Pods between queues efficiently. diff --git a/pkg/scheduler/core/generic_scheduler.go b/pkg/scheduler/generic_scheduler.go similarity index 99% rename from pkg/scheduler/core/generic_scheduler.go rename to pkg/scheduler/generic_scheduler.go index 304174dbefb..4fd591c24ef 100644 --- a/pkg/scheduler/core/generic_scheduler.go +++ b/pkg/scheduler/generic_scheduler.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package core +package scheduler import ( "context" diff --git a/pkg/scheduler/core/generic_scheduler_test.go b/pkg/scheduler/generic_scheduler_test.go similarity index 99% rename from pkg/scheduler/core/generic_scheduler_test.go rename to pkg/scheduler/generic_scheduler_test.go index 7d4f3692b71..d864ed73ea5 100644 --- a/pkg/scheduler/core/generic_scheduler_test.go +++ b/pkg/scheduler/generic_scheduler_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package core +package scheduler import ( "context" diff --git a/pkg/scheduler/scheduler.go b/pkg/scheduler/scheduler.go index e07850cd899..f521d0541b4 100644 --- a/pkg/scheduler/scheduler.go +++ b/pkg/scheduler/scheduler.go @@ -45,7 +45,6 @@ import ( "k8s.io/kubernetes/pkg/scheduler/apis/config" schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config" "k8s.io/kubernetes/pkg/scheduler/apis/config/scheme" - "k8s.io/kubernetes/pkg/scheduler/core" "k8s.io/kubernetes/pkg/scheduler/framework" frameworkplugins "k8s.io/kubernetes/pkg/scheduler/framework/plugins" frameworkruntime "k8s.io/kubernetes/pkg/scheduler/framework/runtime" @@ -71,7 +70,7 @@ type Scheduler struct { // by NodeLister and Algorithm. SchedulerCache internalcache.Cache - Algorithm core.ScheduleAlgorithm + Algorithm ScheduleAlgorithm Extenders []framework.Extender @@ -548,7 +547,7 @@ func (sched *Scheduler) scheduleOne(ctx context.Context) { // succeeds, the pod should get counted as a success the next time we try to // schedule it. (hopefully) metrics.PodUnschedulable(fwk.ProfileName(), metrics.SinceInSeconds(start)) - } else if err == core.ErrNoNodesAvailable { + } else if err == ErrNoNodesAvailable { // No nodes available is counted as unschedulable rather than an error. metrics.PodUnschedulable(fwk.ProfileName(), metrics.SinceInSeconds(start)) } else { diff --git a/pkg/scheduler/scheduler_test.go b/pkg/scheduler/scheduler_test.go index 0c457e6a817..6c8aab3cfdb 100644 --- a/pkg/scheduler/scheduler_test.go +++ b/pkg/scheduler/scheduler_test.go @@ -49,7 +49,6 @@ import ( "k8s.io/client-go/tools/events" "k8s.io/kubernetes/pkg/controller/volume/scheduling" schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config" - "k8s.io/kubernetes/pkg/scheduler/core" "k8s.io/kubernetes/pkg/scheduler/framework" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultbinder" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/feature" @@ -110,11 +109,11 @@ func podWithResources(id, desiredHost string, limits v1.ResourceList, requests v } type mockScheduler struct { - result core.ScheduleResult + result ScheduleResult err error } -func (es mockScheduler) Schedule(ctx context.Context, extenders []framework.Extender, fwk framework.Framework, state *framework.CycleState, pod *v1.Pod) (core.ScheduleResult, error) { +func (es mockScheduler) Schedule(ctx context.Context, extenders []framework.Extender, fwk framework.Framework, state *framework.CycleState, pod *v1.Pod) (ScheduleResult, error) { return es.result, es.err } @@ -311,7 +310,7 @@ func TestSchedulerScheduleOne(t *testing.T) { name string injectBindError error sendPod *v1.Pod - algo core.ScheduleAlgorithm + algo ScheduleAlgorithm registerPluginFuncs []st.RegisterPluginFunc expectErrorPod *v1.Pod expectForgetPod *v1.Pod @@ -323,7 +322,7 @@ func TestSchedulerScheduleOne(t *testing.T) { { name: "error reserve pod", sendPod: podWithID("foo", ""), - algo: mockScheduler{core.ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil}, + algo: mockScheduler{ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil}, registerPluginFuncs: []st.RegisterPluginFunc{ st.RegisterReservePlugin("FakeReserve", st.NewFakeReservePlugin(framework.NewStatus(framework.Error, "reserve error"))), }, @@ -336,7 +335,7 @@ func TestSchedulerScheduleOne(t *testing.T) { { name: "error permit pod", sendPod: podWithID("foo", ""), - algo: mockScheduler{core.ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil}, + algo: mockScheduler{ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil}, registerPluginFuncs: []st.RegisterPluginFunc{ st.RegisterPermitPlugin("FakePermit", st.NewFakePermitPlugin(framework.NewStatus(framework.Error, "permit error"), time.Minute)), }, @@ -349,7 +348,7 @@ func TestSchedulerScheduleOne(t *testing.T) { { name: "error prebind pod", sendPod: podWithID("foo", ""), - algo: mockScheduler{core.ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil}, + algo: mockScheduler{ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil}, registerPluginFuncs: []st.RegisterPluginFunc{ st.RegisterPreBindPlugin("FakePreBind", st.NewFakePreBindPlugin(framework.AsStatus(preBindErr))), }, @@ -362,7 +361,7 @@ func TestSchedulerScheduleOne(t *testing.T) { { name: "bind assumed pod scheduled", sendPod: podWithID("foo", ""), - algo: mockScheduler{core.ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil}, + algo: mockScheduler{ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil}, expectBind: &v1.Binding{ObjectMeta: metav1.ObjectMeta{Name: "foo", UID: types.UID("foo")}, Target: v1.ObjectReference{Kind: "Node", Name: testNode.Name}}, expectAssumedPod: podWithID("foo", testNode.Name), eventReason: "Scheduled", @@ -370,7 +369,7 @@ func TestSchedulerScheduleOne(t *testing.T) { { name: "error pod failed scheduling", sendPod: podWithID("foo", ""), - algo: mockScheduler{core.ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, errS}, + algo: mockScheduler{ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, errS}, expectError: errS, expectErrorPod: podWithID("foo", ""), eventReason: "FailedScheduling", @@ -378,7 +377,7 @@ func TestSchedulerScheduleOne(t *testing.T) { { name: "error bind forget pod failed scheduling", sendPod: podWithID("foo", ""), - algo: mockScheduler{core.ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil}, + algo: mockScheduler{ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil}, expectBind: &v1.Binding{ObjectMeta: metav1.ObjectMeta{Name: "foo", UID: types.UID("foo")}, Target: v1.ObjectReference{Kind: "Node", Name: testNode.Name}}, expectAssumedPod: podWithID("foo", testNode.Name), injectBindError: errB, @@ -390,7 +389,7 @@ func TestSchedulerScheduleOne(t *testing.T) { { name: "deleting pod", sendPod: deletingPod("foo"), - algo: mockScheduler{core.ScheduleResult{}, nil}, + algo: mockScheduler{ScheduleResult{}, nil}, eventReason: "FailedScheduling", }, } @@ -928,7 +927,7 @@ func setupTestScheduler(queuedPodStore *clientcache.FIFO, scache internalcache.C frameworkruntime.WithPodNominator(internalqueue.NewPodNominator(informerFactory.Core().V1().Pods().Lister())), ) - algo := core.NewGenericScheduler( + algo := NewGenericScheduler( scache, internalcache.NewEmptySnapshot(), schedulerapi.DefaultPercentageOfNodesToScore, @@ -1274,7 +1273,7 @@ func TestSchedulerBinding(t *testing.T) { stop := make(chan struct{}) defer close(stop) scache := internalcache.New(100*time.Millisecond, stop) - algo := core.NewGenericScheduler( + algo := NewGenericScheduler( scache, nil, 0,