diff --git a/pkg/controller/volume/attachdetach/util/util_test.go b/pkg/controller/volume/attachdetach/util/util_test.go index b8f99a70bc3..b075189c48a 100644 --- a/pkg/controller/volume/attachdetach/util/util_test.go +++ b/pkg/controller/volume/attachdetach/util/util_test.go @@ -31,7 +31,7 @@ import ( "k8s.io/client-go/informers" csitrans "k8s.io/csi-translation-lib" "k8s.io/klog/v2/ktesting" - fakeframework "k8s.io/kubernetes/pkg/scheduler/framework/fake" + tf "k8s.io/kubernetes/pkg/scheduler/testing/framework" "k8s.io/kubernetes/pkg/volume/csimigration" "k8s.io/kubernetes/pkg/volume/fc" @@ -282,7 +282,7 @@ func Test_CreateVolumeSpec(t *testing.T) { } } -func setup(nodeName string, t *testing.T) (*volume.VolumePluginMgr, csimigration.PluginManager, csitrans.CSITranslator, fakeframework.PersistentVolumeLister, fakeframework.PersistentVolumeClaimLister) { +func setup(nodeName string, t *testing.T) (*volume.VolumePluginMgr, csimigration.PluginManager, csitrans.CSITranslator, tf.PersistentVolumeLister, tf.PersistentVolumeClaimLister) { tmpDir, err := utiltesting.MkTmpdir("csi-test") if err != nil { t.Fatalf("can't make a temp dir: %v", err) @@ -313,7 +313,7 @@ func setup(nodeName string, t *testing.T) (*volume.VolumePluginMgr, csimigration plugMgr.Host = fakeAttachDetachVolumeHost - pvLister := fakeframework.PersistentVolumeLister{ + pvLister := tf.PersistentVolumeLister{ { ObjectMeta: metav1.ObjectMeta{Name: migratedVolume}, Spec: v1.PersistentVolumeSpec{ @@ -339,7 +339,7 @@ func setup(nodeName string, t *testing.T) (*volume.VolumePluginMgr, csimigration }, } - pvcLister := fakeframework.PersistentVolumeClaimLister{ + pvcLister := tf.PersistentVolumeClaimLister{ { ObjectMeta: metav1.ObjectMeta{Name: "migrated-pvc", Namespace: "default"}, Spec: v1.PersistentVolumeClaimSpec{VolumeName: migratedVolume}, diff --git a/pkg/scheduler/extender_test.go b/pkg/scheduler/extender_test.go index fc398a48cab..44c3daee70c 100644 --- a/pkg/scheduler/extender_test.go +++ b/pkg/scheduler/extender_test.go @@ -31,38 +31,38 @@ import ( extenderv1 "k8s.io/kube-scheduler/extender/v1" schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config" "k8s.io/kubernetes/pkg/scheduler/framework" - "k8s.io/kubernetes/pkg/scheduler/framework/fake" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultbinder" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/queuesort" "k8s.io/kubernetes/pkg/scheduler/framework/runtime" internalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache" internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue" st "k8s.io/kubernetes/pkg/scheduler/testing" + tf "k8s.io/kubernetes/pkg/scheduler/testing/framework" ) func TestSchedulerWithExtenders(t *testing.T) { tests := []struct { name string - registerPlugins []st.RegisterPluginFunc - extenders []st.FakeExtender + registerPlugins []tf.RegisterPluginFunc + extenders []tf.FakeExtender nodes []string expectedResult ScheduleResult expectsErr bool }{ { - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, - extenders: []st.FakeExtender{ + extenders: []tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{st.TruePredicateExtender}, + Predicates: []tf.FitPredicate{tf.TruePredicateExtender}, }, { ExtenderName: "FakeExtender2", - Predicates: []st.FitPredicate{st.ErrorPredicateExtender}, + Predicates: []tf.FitPredicate{tf.ErrorPredicateExtender}, }, }, nodes: []string{"node1", "node2"}, @@ -70,19 +70,19 @@ func TestSchedulerWithExtenders(t *testing.T) { name: "test 1", }, { - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, - extenders: []st.FakeExtender{ + extenders: []tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{st.TruePredicateExtender}, + Predicates: []tf.FitPredicate{tf.TruePredicateExtender}, }, { ExtenderName: "FakeExtender2", - Predicates: []st.FitPredicate{st.FalsePredicateExtender}, + Predicates: []tf.FitPredicate{tf.FalsePredicateExtender}, }, }, nodes: []string{"node1", "node2"}, @@ -90,19 +90,19 @@ func TestSchedulerWithExtenders(t *testing.T) { name: "test 2", }, { - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, - extenders: []st.FakeExtender{ + extenders: []tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{st.TruePredicateExtender}, + Predicates: []tf.FitPredicate{tf.TruePredicateExtender}, }, { ExtenderName: "FakeExtender2", - Predicates: []st.FitPredicate{st.Node1PredicateExtender}, + Predicates: []tf.FitPredicate{tf.Node1PredicateExtender}, }, }, nodes: []string{"node1", "node2"}, @@ -114,19 +114,19 @@ func TestSchedulerWithExtenders(t *testing.T) { name: "test 3", }, { - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, - extenders: []st.FakeExtender{ + extenders: []tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{st.Node2PredicateExtender}, + Predicates: []tf.FitPredicate{tf.Node2PredicateExtender}, }, { ExtenderName: "FakeExtender2", - Predicates: []st.FitPredicate{st.Node1PredicateExtender}, + Predicates: []tf.FitPredicate{tf.Node1PredicateExtender}, }, }, nodes: []string{"node1", "node2"}, @@ -134,16 +134,16 @@ func TestSchedulerWithExtenders(t *testing.T) { name: "test 4", }, { - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, - extenders: []st.FakeExtender{ + extenders: []tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{st.TruePredicateExtender}, - Prioritizers: []st.PriorityConfig{{Function: st.ErrorPrioritizerExtender, Weight: 10}}, + Predicates: []tf.FitPredicate{tf.TruePredicateExtender}, + Prioritizers: []tf.PriorityConfig{{Function: tf.ErrorPrioritizerExtender, Weight: 10}}, Weight: 1, }, }, @@ -156,22 +156,22 @@ func TestSchedulerWithExtenders(t *testing.T) { name: "test 5", }, { - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, - extenders: []st.FakeExtender{ + extenders: []tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{st.TruePredicateExtender}, - Prioritizers: []st.PriorityConfig{{Function: st.Node1PrioritizerExtender, Weight: 10}}, + Predicates: []tf.FitPredicate{tf.TruePredicateExtender}, + Prioritizers: []tf.PriorityConfig{{Function: tf.Node1PrioritizerExtender, Weight: 10}}, Weight: 1, }, { ExtenderName: "FakeExtender2", - Predicates: []st.FitPredicate{st.TruePredicateExtender}, - Prioritizers: []st.PriorityConfig{{Function: st.Node2PrioritizerExtender, Weight: 10}}, + Predicates: []tf.FitPredicate{tf.TruePredicateExtender}, + Prioritizers: []tf.PriorityConfig{{Function: tf.Node2PrioritizerExtender, Weight: 10}}, Weight: 5, }, }, @@ -184,17 +184,17 @@ func TestSchedulerWithExtenders(t *testing.T) { name: "test 6", }, { - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterScorePlugin("Node2Prioritizer", st.NewNode2PrioritizerPlugin(), 20), - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterScorePlugin("Node2Prioritizer", tf.NewNode2PrioritizerPlugin(), 20), + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, - extenders: []st.FakeExtender{ + extenders: []tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{st.TruePredicateExtender}, - Prioritizers: []st.PriorityConfig{{Function: st.Node1PrioritizerExtender, Weight: 10}}, + Predicates: []tf.FitPredicate{tf.TruePredicateExtender}, + Prioritizers: []tf.PriorityConfig{{Function: tf.Node1PrioritizerExtender, Weight: 10}}, Weight: 1, }, }, @@ -214,17 +214,17 @@ func TestSchedulerWithExtenders(t *testing.T) { // If scheduler sends the pod by mistake, the test would fail // because of the errors from errorPredicateExtender and/or // errorPrioritizerExtender. - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterScorePlugin("Node2Prioritizer", st.NewNode2PrioritizerPlugin(), 1), - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterScorePlugin("Node2Prioritizer", tf.NewNode2PrioritizerPlugin(), 1), + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, - extenders: []st.FakeExtender{ + extenders: []tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{st.ErrorPredicateExtender}, - Prioritizers: []st.PriorityConfig{{Function: st.ErrorPrioritizerExtender, Weight: 10}}, + Predicates: []tf.FitPredicate{tf.ErrorPredicateExtender}, + Prioritizers: []tf.PriorityConfig{{Function: tf.ErrorPrioritizerExtender, Weight: 10}}, UnInterested: true, }, }, @@ -243,20 +243,20 @@ func TestSchedulerWithExtenders(t *testing.T) { // // If scheduler did not ignore the extender, the test would fail // because of the errors from errorPredicateExtender. - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, - extenders: []st.FakeExtender{ + extenders: []tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{st.ErrorPredicateExtender}, + Predicates: []tf.FitPredicate{tf.ErrorPredicateExtender}, Ignorable: true, }, { ExtenderName: "FakeExtender2", - Predicates: []st.FitPredicate{st.Node1PredicateExtender}, + Predicates: []tf.FitPredicate{tf.Node1PredicateExtender}, }, }, nodes: []string{"node1", "node2"}, @@ -287,7 +287,7 @@ func TestSchedulerWithExtenders(t *testing.T) { for _, name := range test.nodes { cache.AddNode(logger, createNode(name)) } - fwk, err := st.NewFramework( + fwk, err := tf.NewFramework( ctx, test.registerPlugins, "", runtime.WithClientSet(client), @@ -510,7 +510,7 @@ func TestConvertToVictims(t *testing.T) { nodeInfo.AddPod(tt.podsInNodeList[i+2]) nodeInfoList = append(nodeInfoList, nodeInfo) } - tt.nodeInfos = fake.NodeInfoLister(nodeInfoList) + tt.nodeInfos = tf.NodeInfoLister(nodeInfoList) got, err := tt.httpExtender.convertToVictims(tt.nodeNameToMetaVictims, tt.nodeInfos) if (err != nil) != tt.wantErr { diff --git a/pkg/scheduler/framework/plugins/defaultpreemption/default_preemption_test.go b/pkg/scheduler/framework/plugins/defaultpreemption/default_preemption_test.go index 16d17280adc..5a51c0ae69c 100644 --- a/pkg/scheduler/framework/plugins/defaultpreemption/default_preemption_test.go +++ b/pkg/scheduler/framework/plugins/defaultpreemption/default_preemption_test.go @@ -56,6 +56,7 @@ import ( internalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache" internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue" st "k8s.io/kubernetes/pkg/scheduler/testing" + tf "k8s.io/kubernetes/pkg/scheduler/testing/framework" ) var ( @@ -228,9 +229,9 @@ func TestPostFilter(t *testing.T) { "node1": framework.NewStatus(framework.Unschedulable), "node2": framework.NewStatus(framework.Unschedulable), }, - extender: &st.FakeExtender{ + extender: &tf.FakeExtender{ ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{st.Node1PredicateExtender}, + Predicates: []tf.FitPredicate{tf.Node1PredicateExtender}, }, wantResult: framework.NewPostFilterResultWithNominatedNode("node1"), wantStatus: framework.NewStatus(framework.Success), @@ -342,11 +343,11 @@ func TestPostFilter(t *testing.T) { podInformer.GetStore().Add(tt.pods[i]) } // Register NodeResourceFit as the Filter & PreFilter plugin. - registeredPlugins := []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), - st.RegisterPluginAsExtensions("test-plugin", newTestPlugin, "PreFilter"), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registeredPlugins := []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + tf.RegisterPluginAsExtensions("test-plugin", newTestPlugin, "PreFilter"), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), } var extenders []framework.Extender if tt.extender != nil { @@ -355,7 +356,7 @@ func TestPostFilter(t *testing.T) { logger, ctx := ktesting.NewTestContext(t) ctx, cancel := context.WithCancel(ctx) defer cancel() - f, err := st.NewFramework(ctx, registeredPlugins, "", + f, err := tf.NewFramework(ctx, registeredPlugins, "", frameworkruntime.WithClientSet(cs), frameworkruntime.WithEventRecorder(&events.FakeRecorder{}), frameworkruntime.WithInformerFactory(informerFactory), @@ -410,7 +411,7 @@ func TestDryRunPreemption(t *testing.T) { nodeNames []string testPods []*v1.Pod initPods []*v1.Pod - registerPlugins []st.RegisterPluginFunc + registerPlugins []tf.RegisterPluginFunc pdbs []*policy.PodDisruptionBudget fakeFilterRC framework.Code // return code for fake filter plugin disableParallelism bool @@ -419,8 +420,8 @@ func TestDryRunPreemption(t *testing.T) { }{ { name: "a pod that does not fit on any node", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterFilterPlugin("FalseFilter", st.NewFalseFilterPlugin), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterFilterPlugin("FalseFilter", tf.NewFalseFilterPlugin), }, nodeNames: []string{"node1", "node2"}, testPods: []*v1.Pod{ @@ -435,8 +436,8 @@ func TestDryRunPreemption(t *testing.T) { }, { name: "a pod that fits with no preemption", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), }, nodeNames: []string{"node1", "node2"}, testPods: []*v1.Pod{ @@ -452,8 +453,8 @@ func TestDryRunPreemption(t *testing.T) { }, { name: "a pod that fits on one node with no preemption", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterFilterPlugin("MatchFilter", st.NewMatchFilterPlugin), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterFilterPlugin("MatchFilter", tf.NewMatchFilterPlugin), }, nodeNames: []string{"node1", "node2"}, testPods: []*v1.Pod{ @@ -470,8 +471,8 @@ func TestDryRunPreemption(t *testing.T) { }, { name: "a pod that fits on both nodes when lower priority pods are preempted", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), }, nodeNames: []string{"node1", "node2"}, testPods: []*v1.Pod{ @@ -501,8 +502,8 @@ func TestDryRunPreemption(t *testing.T) { }, { name: "a pod that would fit on the nodes, but other pods running are higher priority, no preemption would happen", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), }, nodeNames: []string{"node1", "node2"}, testPods: []*v1.Pod{ @@ -517,8 +518,8 @@ func TestDryRunPreemption(t *testing.T) { }, { name: "medium priority pod is preempted, but lower priority one stays as it is small", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), }, nodeNames: []string{"node1", "node2"}, testPods: []*v1.Pod{ @@ -549,8 +550,8 @@ func TestDryRunPreemption(t *testing.T) { }, { name: "mixed priority pods are preempted", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), }, nodeNames: []string{"node1", "node2"}, testPods: []*v1.Pod{ @@ -580,8 +581,8 @@ func TestDryRunPreemption(t *testing.T) { }, { name: "mixed priority pods are preempted, pick later StartTime one when priorities are equal", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), }, nodeNames: []string{"node1", "node2"}, testPods: []*v1.Pod{ @@ -611,9 +612,9 @@ func TestDryRunPreemption(t *testing.T) { }, { name: "pod with anti-affinity is preempted", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), - st.RegisterPluginAsExtensions(interpodaffinity.Name, interpodaffinity.New, "Filter", "PreFilter"), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + tf.RegisterPluginAsExtensions(interpodaffinity.Name, interpodaffinity.New, "Filter", "PreFilter"), }, nodeNames: []string{"node1", "node2"}, testPods: []*v1.Pod{ @@ -643,8 +644,8 @@ func TestDryRunPreemption(t *testing.T) { }, { name: "preemption to resolve pod topology spread filter failure", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterPluginAsExtensions(podtopologyspread.Name, podTopologySpreadFunc, "PreFilter", "Filter"), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterPluginAsExtensions(podtopologyspread.Name, podTopologySpreadFunc, "PreFilter", "Filter"), }, nodeNames: []string{"node-a/zone1", "node-b/zone1", "node-x/zone2"}, testPods: []*v1.Pod{ @@ -680,8 +681,8 @@ func TestDryRunPreemption(t *testing.T) { }, { name: "get Unschedulable in the preemption phase when the filter plugins filtering the nodes", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), }, nodeNames: []string{"node1", "node2"}, testPods: []*v1.Pod{ @@ -697,8 +698,8 @@ func TestDryRunPreemption(t *testing.T) { }, { name: "preemption with violation of same pdb", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), }, nodeNames: []string{"node1"}, testPods: []*v1.Pod{ @@ -732,8 +733,8 @@ func TestDryRunPreemption(t *testing.T) { }, { name: "preemption with violation of the pdb with pod whose eviction was processed, the victim doesn't belong to DisruptedPods", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), }, nodeNames: []string{"node1"}, testPods: []*v1.Pod{ @@ -767,8 +768,8 @@ func TestDryRunPreemption(t *testing.T) { }, { name: "preemption with violation of the pdb with pod whose eviction was processed, the victim belongs to DisruptedPods", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), }, nodeNames: []string{"node1"}, testPods: []*v1.Pod{ @@ -802,8 +803,8 @@ func TestDryRunPreemption(t *testing.T) { }, { name: "preemption with violation of the pdb with pod whose eviction was processed, the victim which belongs to DisruptedPods is treated as 'nonViolating'", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), }, nodeNames: []string{"node1"}, testPods: []*v1.Pod{ @@ -840,8 +841,8 @@ func TestDryRunPreemption(t *testing.T) { { name: "all nodes are possible candidates, but DefaultPreemptionArgs limits to 2", args: &config.DefaultPreemptionArgs{MinCandidateNodesPercentage: 40, MinCandidateNodesAbsolute: 1}, - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), }, nodeNames: []string{"node1", "node2", "node3", "node4", "node5"}, testPods: []*v1.Pod{ @@ -877,8 +878,8 @@ func TestDryRunPreemption(t *testing.T) { { name: "some nodes are not possible candidates, DefaultPreemptionArgs limits to 2", args: &config.DefaultPreemptionArgs{MinCandidateNodesPercentage: 40, MinCandidateNodesAbsolute: 1}, - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), }, nodeNames: []string{"node1", "node2", "node3", "node4", "node5"}, testPods: []*v1.Pod{ @@ -914,8 +915,8 @@ func TestDryRunPreemption(t *testing.T) { { name: "preemption offset across multiple scheduling cycles and wrap around", args: &config.DefaultPreemptionArgs{MinCandidateNodesPercentage: 40, MinCandidateNodesAbsolute: 1}, - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), }, nodeNames: []string{"node1", "node2", "node3", "node4", "node5"}, testPods: []*v1.Pod{ @@ -983,8 +984,8 @@ func TestDryRunPreemption(t *testing.T) { { name: "preemption looks past numCandidates until a non-PDB violating node is found", args: &config.DefaultPreemptionArgs{MinCandidateNodesPercentage: 40, MinCandidateNodesAbsolute: 2}, - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), }, nodeNames: []string{"node1", "node2", "node3", "node4", "node5"}, testPods: []*v1.Pod{ @@ -1059,18 +1060,18 @@ func TestDryRunPreemption(t *testing.T) { snapshot := internalcache.NewSnapshot(tt.initPods, nodes) // For each test, register a FakeFilterPlugin along with essential plugins and tt.registerPlugins. - fakePlugin := st.FakeFilterPlugin{ + fakePlugin := tf.FakeFilterPlugin{ FailedNodeReturnCodeMap: fakeFilterRCMap, } - registeredPlugins := append([]st.RegisterPluginFunc{ - st.RegisterFilterPlugin( + registeredPlugins := append([]tf.RegisterPluginFunc{ + tf.RegisterFilterPlugin( "FakeFilter", func(_ runtime.Object, fh framework.Handle) (framework.Plugin, error) { return &fakePlugin, nil }, )}, - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), ) registeredPlugins = append(registeredPlugins, tt.registerPlugins...) var objs []runtime.Object @@ -1092,7 +1093,7 @@ func TestDryRunPreemption(t *testing.T) { logger, ctx := ktesting.NewTestContext(t) ctx, cancel := context.WithCancel(ctx) defer cancel() - fwk, err := st.NewFramework( + fwk, err := tf.NewFramework( ctx, registeredPlugins, "", frameworkruntime.WithPodNominator(internalqueue.NewPodNominator(informerFactory.Core().V1().Pods().Lister())), @@ -1176,7 +1177,7 @@ func TestDryRunPreemption(t *testing.T) { func TestSelectBestCandidate(t *testing.T) { tests := []struct { name string - registerPlugin st.RegisterPluginFunc + registerPlugin tf.RegisterPluginFunc nodeNames []string pod *v1.Pod pods []*v1.Pod @@ -1184,7 +1185,7 @@ func TestSelectBestCandidate(t *testing.T) { }{ { name: "a pod that fits on both nodes when lower priority pods are preempted", - registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugin: tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), nodeNames: []string{"node1", "node2"}, pod: st.MakePod().Name("p").UID("p").Priority(highPriority).Req(largeRes).Obj(), pods: []*v1.Pod{ @@ -1195,7 +1196,7 @@ func TestSelectBestCandidate(t *testing.T) { }, { name: "node with min highest priority pod is picked", - registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugin: tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), nodeNames: []string{"node1", "node2", "node3"}, pod: st.MakePod().Name("p").UID("p").Priority(highPriority).Req(veryLargeRes).Obj(), pods: []*v1.Pod{ @@ -1210,7 +1211,7 @@ func TestSelectBestCandidate(t *testing.T) { }, { name: "when highest priorities are the same, minimum sum of priorities is picked", - registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugin: tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), nodeNames: []string{"node1", "node2", "node3"}, pod: st.MakePod().Name("p").UID("p").Priority(highPriority).Req(veryLargeRes).Obj(), pods: []*v1.Pod{ @@ -1225,7 +1226,7 @@ func TestSelectBestCandidate(t *testing.T) { }, { name: "when highest priority and sum are the same, minimum number of pods is picked", - registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugin: tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), nodeNames: []string{"node1", "node2", "node3"}, pod: st.MakePod().Name("p").UID("p").Priority(highPriority).Req(veryLargeRes).Obj(), pods: []*v1.Pod{ @@ -1245,7 +1246,7 @@ func TestSelectBestCandidate(t *testing.T) { // pickOneNodeForPreemption adjusts pod priorities when finding the sum of the victims. This // test ensures that the logic works correctly. name: "sum of adjusted priorities is considered", - registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugin: tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), nodeNames: []string{"node1", "node2", "node3"}, pod: st.MakePod().Name("p").UID("p").Priority(highPriority).Req(veryLargeRes).Obj(), pods: []*v1.Pod{ @@ -1262,7 +1263,7 @@ func TestSelectBestCandidate(t *testing.T) { }, { name: "non-overlapping lowest high priority, sum priorities, and number of pods", - registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugin: tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), nodeNames: []string{"node1", "node2", "node3", "node4"}, pod: st.MakePod().Name("p").UID("p").Priority(veryHighPriority).Req(veryLargeRes).Obj(), pods: []*v1.Pod{ @@ -1283,7 +1284,7 @@ func TestSelectBestCandidate(t *testing.T) { }, { name: "same priority, same number of victims, different start time for each node's pod", - registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugin: tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), nodeNames: []string{"node1", "node2", "node3"}, pod: st.MakePod().Name("p").UID("p").Priority(highPriority).Req(veryLargeRes).Obj(), pods: []*v1.Pod{ @@ -1298,7 +1299,7 @@ func TestSelectBestCandidate(t *testing.T) { }, { name: "same priority, same number of victims, different start time for all pods", - registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugin: tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), nodeNames: []string{"node1", "node2", "node3"}, pod: st.MakePod().Name("p").UID("p").Priority(highPriority).Req(veryLargeRes).Obj(), pods: []*v1.Pod{ @@ -1313,7 +1314,7 @@ func TestSelectBestCandidate(t *testing.T) { }, { name: "different priority, same number of victims, different start time for all pods", - registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugin: tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), nodeNames: []string{"node1", "node2", "node3"}, pod: st.MakePod().Name("p").UID("p").Priority(highPriority).Req(veryLargeRes).Obj(), pods: []*v1.Pod{ @@ -1346,12 +1347,12 @@ func TestSelectBestCandidate(t *testing.T) { logger, ctx := ktesting.NewTestContext(t) ctx, cancel := context.WithCancel(ctx) defer cancel() - fwk, err := st.NewFramework( + fwk, err := tf.NewFramework( ctx, - []st.RegisterPluginFunc{ + []tf.RegisterPluginFunc{ tt.registerPlugin, - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, "", frameworkruntime.WithPodNominator(internalqueue.NewPodNominator(informerFactory.Core().V1().Pods().Lister())), @@ -1493,11 +1494,11 @@ func TestPodEligibleToPreemptOthers(t *testing.T) { for _, n := range test.nodes { nodes = append(nodes, st.MakeNode().Name(n).Obj()) } - registeredPlugins := []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registeredPlugins := []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), } - f, err := st.NewFramework(ctx, registeredPlugins, "", + f, err := tf.NewFramework(ctx, registeredPlugins, "", frameworkruntime.WithSnapshotSharedLister(internalcache.NewSnapshot(test.pods, nodes)), frameworkruntime.WithLogger(logger), ) @@ -1516,9 +1517,9 @@ func TestPreempt(t *testing.T) { name string pod *v1.Pod pods []*v1.Pod - extenders []*st.FakeExtender + extenders []*tf.FakeExtender nodeNames []string - registerPlugin st.RegisterPluginFunc + registerPlugin tf.RegisterPluginFunc want *framework.PostFilterResult expectedPods []string // list of preempted pods }{ @@ -1532,7 +1533,7 @@ func TestPreempt(t *testing.T) { st.MakePod().Name("p3.1").UID("p3.1").Node("node3").Priority(midPriority).Req(mediumRes).Obj(), }, nodeNames: []string{"node1", "node2", "node3"}, - registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugin: tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), want: framework.NewPostFilterResultWithNominatedNode("node1"), expectedPods: []string{"p1.1", "p1.2"}, }, @@ -1550,7 +1551,7 @@ func TestPreempt(t *testing.T) { st.MakePod().Name("p-x2").UID("p-x2").Namespace(v1.NamespaceDefault).Node("node-x").Label("foo", "").Priority(highPriority).Obj(), }, nodeNames: []string{"node-a/zone1", "node-b/zone1", "node-x/zone2"}, - registerPlugin: st.RegisterPluginAsExtensions(podtopologyspread.Name, podTopologySpreadFunc, "PreFilter", "Filter"), + registerPlugin: tf.RegisterPluginAsExtensions(podtopologyspread.Name, podTopologySpreadFunc, "PreFilter", "Filter"), want: framework.NewPostFilterResultWithNominatedNode("node-b"), expectedPods: []string{"p-b1"}, }, @@ -1563,17 +1564,17 @@ func TestPreempt(t *testing.T) { st.MakePod().Name("p2.1").UID("p2.1").Namespace(v1.NamespaceDefault).Node("node3").Priority(midPriority).Req(largeRes).Obj(), }, nodeNames: []string{"node1", "node2", "node3"}, - extenders: []*st.FakeExtender{ + extenders: []*tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{st.TruePredicateExtender}, + Predicates: []tf.FitPredicate{tf.TruePredicateExtender}, }, { ExtenderName: "FakeExtender2", - Predicates: []st.FitPredicate{st.Node1PredicateExtender}, + Predicates: []tf.FitPredicate{tf.Node1PredicateExtender}, }, }, - registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugin: tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), want: framework.NewPostFilterResultWithNominatedNode("node1"), expectedPods: []string{"p1.1", "p1.2"}, }, @@ -1586,13 +1587,13 @@ func TestPreempt(t *testing.T) { st.MakePod().Name("p2.1").UID("p2.1").Namespace(v1.NamespaceDefault).Node("node2").Priority(midPriority).Req(largeRes).Obj(), }, nodeNames: []string{"node1", "node2", "node3"}, - extenders: []*st.FakeExtender{ + extenders: []*tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{st.FalsePredicateExtender}, + Predicates: []tf.FitPredicate{tf.FalsePredicateExtender}, }, }, - registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugin: tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), want: nil, expectedPods: []string{}, }, @@ -1605,18 +1606,18 @@ func TestPreempt(t *testing.T) { st.MakePod().Name("p2.1").UID("p2.1").Namespace(v1.NamespaceDefault).Node("node2").Priority(midPriority).Req(largeRes).Obj(), }, nodeNames: []string{"node1", "node2", "node3"}, - extenders: []*st.FakeExtender{ + extenders: []*tf.FakeExtender{ { - Predicates: []st.FitPredicate{st.ErrorPredicateExtender}, + Predicates: []tf.FitPredicate{tf.ErrorPredicateExtender}, Ignorable: true, ExtenderName: "FakeExtender1", }, { - Predicates: []st.FitPredicate{st.Node1PredicateExtender}, + Predicates: []tf.FitPredicate{tf.Node1PredicateExtender}, ExtenderName: "FakeExtender2", }, }, - registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugin: tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), want: framework.NewPostFilterResultWithNominatedNode("node1"), expectedPods: []string{"p1.1", "p1.2"}, }, @@ -1629,18 +1630,18 @@ func TestPreempt(t *testing.T) { st.MakePod().Name("p2.1").UID("p2.1").Namespace(v1.NamespaceDefault).Node("node2").Priority(midPriority).Req(largeRes).Obj(), }, nodeNames: []string{"node1", "node2"}, - extenders: []*st.FakeExtender{ + extenders: []*tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{st.Node1PredicateExtender}, + Predicates: []tf.FitPredicate{tf.Node1PredicateExtender}, UnInterested: true, }, { ExtenderName: "FakeExtender2", - Predicates: []st.FitPredicate{st.TruePredicateExtender}, + Predicates: []tf.FitPredicate{tf.TruePredicateExtender}, }, }, - registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugin: tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), // sum of priorities of all victims on node1 is larger than node2, node2 is chosen. want: framework.NewPostFilterResultWithNominatedNode("node2"), expectedPods: []string{"p2.1"}, @@ -1655,7 +1656,7 @@ func TestPreempt(t *testing.T) { st.MakePod().Name("p3.1").UID("p3.1").Namespace(v1.NamespaceDefault).Node("node3").Priority(midPriority).Req(mediumRes).Obj(), }, nodeNames: []string{"node1", "node2", "node3"}, - registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugin: tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), want: nil, expectedPods: nil, }, @@ -1669,7 +1670,7 @@ func TestPreempt(t *testing.T) { st.MakePod().Name("p3.1").UID("p3.1").Namespace(v1.NamespaceDefault).Node("node3").Priority(midPriority).Req(mediumRes).Obj(), }, nodeNames: []string{"node1", "node2", "node3"}, - registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), + registerPlugin: tf.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"), want: framework.NewPostFilterResultWithNominatedNode("node1"), expectedPods: []string{"p1.1", "p1.2"}, }, @@ -1730,12 +1731,12 @@ func TestPreempt(t *testing.T) { extender.CachedNodeNameToInfo = cachedNodeInfoMap extenders = append(extenders, extender) } - fwk, err := st.NewFramework( + fwk, err := tf.NewFramework( ctx, - []st.RegisterPluginFunc{ + []tf.RegisterPluginFunc{ test.registerPlugin, - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, "", frameworkruntime.WithClientSet(client), diff --git a/pkg/scheduler/framework/plugins/nodevolumelimits/csi_test.go b/pkg/scheduler/framework/plugins/nodevolumelimits/csi_test.go index 289a16c1252..ae2ef473b2c 100644 --- a/pkg/scheduler/framework/plugins/nodevolumelimits/csi_test.go +++ b/pkg/scheduler/framework/plugins/nodevolumelimits/csi_test.go @@ -33,8 +33,8 @@ import ( csitrans "k8s.io/csi-translation-lib" csilibplugins "k8s.io/csi-translation-lib/plugins" "k8s.io/kubernetes/pkg/scheduler/framework" - fakeframework "k8s.io/kubernetes/pkg/scheduler/framework/fake" st "k8s.io/kubernetes/pkg/scheduler/testing" + tf "k8s.io/kubernetes/pkg/scheduler/testing/framework" volumeutil "k8s.io/kubernetes/pkg/volume/util" "k8s.io/kubernetes/test/utils/ktesting" "k8s.io/utils/pointer" @@ -641,8 +641,8 @@ func TestCSILimits(t *testing.T) { } } -func getFakeCSIPVLister(volumeName string, driverNames ...string) fakeframework.PersistentVolumeLister { - pvLister := fakeframework.PersistentVolumeLister{} +func getFakeCSIPVLister(volumeName string, driverNames ...string) tf.PersistentVolumeLister { + pvLister := tf.PersistentVolumeLister{} for _, driver := range driverNames { for j := 0; j < 4; j++ { volumeHandle := fmt.Sprintf("%s-%s-%d", volumeName, driver, j) @@ -686,8 +686,8 @@ func getFakeCSIPVLister(volumeName string, driverNames ...string) fakeframework. return pvLister } -func getFakeCSIPVCLister(volumeName, scName string, driverNames ...string) fakeframework.PersistentVolumeClaimLister { - pvcLister := fakeframework.PersistentVolumeClaimLister{} +func getFakeCSIPVCLister(volumeName, scName string, driverNames ...string) tf.PersistentVolumeClaimLister { + pvcLister := tf.PersistentVolumeClaimLister{} for _, driver := range driverNames { for j := 0; j < 4; j++ { v := fmt.Sprintf("%s-%s-%d", volumeName, driver, j) @@ -729,8 +729,8 @@ func enableMigrationOnNode(csiNode *storagev1.CSINode, pluginName string) { csiNode.Annotations = nodeInfoAnnotations } -func getFakeCSIStorageClassLister(scName, provisionerName string) fakeframework.StorageClassLister { - return fakeframework.StorageClassLister{ +func getFakeCSIStorageClassLister(scName, provisionerName string) tf.StorageClassLister { + return tf.StorageClassLister{ { ObjectMeta: metav1.ObjectMeta{Name: scName}, Provisioner: provisionerName, @@ -738,8 +738,8 @@ func getFakeCSIStorageClassLister(scName, provisionerName string) fakeframework. } } -func getFakeCSINodeLister(csiNode *storagev1.CSINode) fakeframework.CSINodeLister { - csiNodeLister := fakeframework.CSINodeLister{} +func getFakeCSINodeLister(csiNode *storagev1.CSINode) tf.CSINodeLister { + csiNodeLister := tf.CSINodeLister{} if csiNode != nil { csiNodeLister = append(csiNodeLister, *csiNode.DeepCopy()) } diff --git a/pkg/scheduler/framework/plugins/nodevolumelimits/non_csi_test.go b/pkg/scheduler/framework/plugins/nodevolumelimits/non_csi_test.go index 5b0b71d562b..a073f9a7e72 100644 --- a/pkg/scheduler/framework/plugins/nodevolumelimits/non_csi_test.go +++ b/pkg/scheduler/framework/plugins/nodevolumelimits/non_csi_test.go @@ -29,9 +29,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" csilibplugins "k8s.io/csi-translation-lib/plugins" "k8s.io/kubernetes/pkg/scheduler/framework" - fakeframework "k8s.io/kubernetes/pkg/scheduler/framework/fake" "k8s.io/kubernetes/pkg/scheduler/framework/plugins/feature" st "k8s.io/kubernetes/pkg/scheduler/testing" + tf "k8s.io/kubernetes/pkg/scheduler/testing/framework" "k8s.io/utils/pointer" ) @@ -974,8 +974,8 @@ func TestGetMaxVols(t *testing.T) { } } -func getFakePVCLister(filterName string) fakeframework.PersistentVolumeClaimLister { - return fakeframework.PersistentVolumeClaimLister{ +func getFakePVCLister(filterName string) tf.PersistentVolumeClaimLister { + return tf.PersistentVolumeClaimLister{ { ObjectMeta: metav1.ObjectMeta{Name: "some" + filterName + "Vol"}, Spec: v1.PersistentVolumeClaimSpec{ @@ -1035,8 +1035,8 @@ func getFakePVCLister(filterName string) fakeframework.PersistentVolumeClaimList } } -func getFakePVLister(filterName string) fakeframework.PersistentVolumeLister { - return fakeframework.PersistentVolumeLister{ +func getFakePVLister(filterName string) tf.PersistentVolumeLister { + return tf.PersistentVolumeLister{ { ObjectMeta: metav1.ObjectMeta{Name: "some" + filterName + "Vol"}, Spec: v1.PersistentVolumeSpec{ diff --git a/pkg/scheduler/framework/plugins/volumezone/volume_zone_test.go b/pkg/scheduler/framework/plugins/volumezone/volume_zone_test.go index 2d9859c9eb2..dfeb024153f 100644 --- a/pkg/scheduler/framework/plugins/volumezone/volume_zone_test.go +++ b/pkg/scheduler/framework/plugins/volumezone/volume_zone_test.go @@ -29,10 +29,10 @@ import ( "k8s.io/klog/v2/ktesting" "k8s.io/kubernetes/pkg/scheduler/apis/config" "k8s.io/kubernetes/pkg/scheduler/framework" - fakeframework "k8s.io/kubernetes/pkg/scheduler/framework/fake" plugintesting "k8s.io/kubernetes/pkg/scheduler/framework/plugins/testing" "k8s.io/kubernetes/pkg/scheduler/internal/cache" st "k8s.io/kubernetes/pkg/scheduler/testing" + tf "k8s.io/kubernetes/pkg/scheduler/testing/framework" ) func createPodWithVolume(pod, pv, pvc string) *v1.Pod { @@ -40,7 +40,7 @@ func createPodWithVolume(pod, pv, pvc string) *v1.Pod { } func TestSingleZone(t *testing.T) { - pvLister := fakeframework.PersistentVolumeLister{ + pvLister := tf.PersistentVolumeLister{ { ObjectMeta: metav1.ObjectMeta{Name: "Vol_1", Labels: map[string]string{v1.LabelFailureDomainBetaZone: "us-west1-a"}}, }, @@ -61,7 +61,7 @@ func TestSingleZone(t *testing.T) { }, } - pvcLister := fakeframework.PersistentVolumeClaimLister{ + pvcLister := tf.PersistentVolumeClaimLister{ { ObjectMeta: metav1.ObjectMeta{Name: "PVC_1", Namespace: "default"}, Spec: v1.PersistentVolumeClaimSpec{VolumeName: "Vol_1"}, @@ -283,7 +283,7 @@ func TestSingleZone(t *testing.T) { } func TestMultiZone(t *testing.T) { - pvLister := fakeframework.PersistentVolumeLister{ + pvLister := tf.PersistentVolumeLister{ { ObjectMeta: metav1.ObjectMeta{Name: "Vol_1", Labels: map[string]string{v1.LabelFailureDomainBetaZone: "us-west1-a"}}, }, @@ -301,7 +301,7 @@ func TestMultiZone(t *testing.T) { }, } - pvcLister := fakeframework.PersistentVolumeClaimLister{ + pvcLister := tf.PersistentVolumeClaimLister{ { ObjectMeta: metav1.ObjectMeta{Name: "PVC_1", Namespace: "default"}, Spec: v1.PersistentVolumeClaimSpec{VolumeName: "Vol_1"}, @@ -423,7 +423,7 @@ func TestWithBinding(t *testing.T) { classImmediate = "Class_Immediate" ) - scLister := fakeframework.StorageClassLister{ + scLister := tf.StorageClassLister{ { ObjectMeta: metav1.ObjectMeta{Name: classImmediate}, }, @@ -433,13 +433,13 @@ func TestWithBinding(t *testing.T) { }, } - pvLister := fakeframework.PersistentVolumeLister{ + pvLister := tf.PersistentVolumeLister{ { ObjectMeta: metav1.ObjectMeta{Name: "Vol_1", Labels: map[string]string{v1.LabelFailureDomainBetaZone: "us-west1-a"}}, }, } - pvcLister := fakeframework.PersistentVolumeClaimLister{ + pvcLister := tf.PersistentVolumeClaimLister{ { ObjectMeta: metav1.ObjectMeta{Name: "PVC_1", Namespace: "default"}, Spec: v1.PersistentVolumeClaimSpec{VolumeName: "Vol_1"}, diff --git a/pkg/scheduler/framework/preemption/preemption_test.go b/pkg/scheduler/framework/preemption/preemption_test.go index ff68f2309a7..632f3dd9ea1 100644 --- a/pkg/scheduler/framework/preemption/preemption_test.go +++ b/pkg/scheduler/framework/preemption/preemption_test.go @@ -48,6 +48,7 @@ import ( internalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache" internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue" st "k8s.io/kubernetes/pkg/scheduler/testing" + tf "k8s.io/kubernetes/pkg/scheduler/testing/framework" ) var ( @@ -268,9 +269,9 @@ func TestDryRunPreemption(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { logger, _ := ktesting.NewTestContext(t) - registeredPlugins := append([]st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New)}, - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registeredPlugins := append([]tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New)}, + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), ) var objs []runtime.Object for _, p := range append(tt.testPods, tt.initPods...) { @@ -284,7 +285,7 @@ func TestDryRunPreemption(t *testing.T) { _, ctx := ktesting.NewTestContext(t) ctx, cancel := context.WithCancel(ctx) defer cancel() - fwk, err := st.NewFramework( + fwk, err := tf.NewFramework( ctx, registeredPlugins, "", frameworkruntime.WithPodNominator(internalqueue.NewPodNominator(informerFactory.Core().V1().Pods().Lister())), diff --git a/pkg/scheduler/schedule_one_test.go b/pkg/scheduler/schedule_one_test.go index bfdb587c7ae..d7be9094c44 100644 --- a/pkg/scheduler/schedule_one_test.go +++ b/pkg/scheduler/schedule_one_test.go @@ -64,6 +64,7 @@ import ( internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue" "k8s.io/kubernetes/pkg/scheduler/profile" st "k8s.io/kubernetes/pkg/scheduler/testing" + tf "k8s.io/kubernetes/pkg/scheduler/testing/framework" schedutil "k8s.io/kubernetes/pkg/scheduler/util" "k8s.io/utils/pointer" ) @@ -268,7 +269,7 @@ func (pl *noPodsFilterPlugin) Filter(_ context.Context, _ *framework.CycleState, if len(nodeInfo.Pods) == 0 { return nil } - return framework.NewStatus(framework.Unschedulable, st.ErrReasonFake) + return framework.NewStatus(framework.Unschedulable, tf.ErrReasonFake) } type fakeNodeSelectorArgs struct { @@ -633,7 +634,7 @@ func TestSchedulerScheduleOne(t *testing.T) { name string injectBindError error sendPod *v1.Pod - registerPluginFuncs []st.RegisterPluginFunc + registerPluginFuncs []tf.RegisterPluginFunc expectErrorPod *v1.Pod expectForgetPod *v1.Pod expectAssumedPod *v1.Pod @@ -646,8 +647,8 @@ func TestSchedulerScheduleOne(t *testing.T) { name: "error reserve pod", sendPod: podWithID("foo", ""), mockResult: mockScheduleResult{ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil}, - registerPluginFuncs: []st.RegisterPluginFunc{ - st.RegisterReservePlugin("FakeReserve", st.NewFakeReservePlugin(framework.NewStatus(framework.Error, "reserve error"))), + registerPluginFuncs: []tf.RegisterPluginFunc{ + tf.RegisterReservePlugin("FakeReserve", tf.NewFakeReservePlugin(framework.NewStatus(framework.Error, "reserve error"))), }, expectErrorPod: podWithID("foo", testNode.Name), expectForgetPod: podWithID("foo", testNode.Name), @@ -659,8 +660,8 @@ func TestSchedulerScheduleOne(t *testing.T) { name: "error permit pod", sendPod: podWithID("foo", ""), mockResult: mockScheduleResult{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)), + registerPluginFuncs: []tf.RegisterPluginFunc{ + tf.RegisterPermitPlugin("FakePermit", tf.NewFakePermitPlugin(framework.NewStatus(framework.Error, "permit error"), time.Minute)), }, expectErrorPod: podWithID("foo", testNode.Name), expectForgetPod: podWithID("foo", testNode.Name), @@ -672,8 +673,8 @@ func TestSchedulerScheduleOne(t *testing.T) { name: "error prebind pod", sendPod: podWithID("foo", ""), mockResult: mockScheduleResult{ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil}, - registerPluginFuncs: []st.RegisterPluginFunc{ - st.RegisterPreBindPlugin("FakePreBind", st.NewFakePreBindPlugin(framework.AsStatus(preBindErr))), + registerPluginFuncs: []tf.RegisterPluginFunc{ + tf.RegisterPreBindPlugin("FakePreBind", tf.NewFakePreBindPlugin(framework.AsStatus(preBindErr))), }, expectErrorPod: podWithID("foo", testNode.Name), expectForgetPod: podWithID("foo", testNode.Name), @@ -747,12 +748,12 @@ func TestSchedulerScheduleOne(t *testing.T) { return true, gotBinding, item.injectBindError }) registerPluginFuncs := append(item.registerPluginFuncs, - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), ) ctx, cancel := context.WithCancel(context.Background()) defer cancel() - fwk, err := st.NewFramework(ctx, + fwk, err := tf.NewFramework(ctx, registerPluginFuncs, testSchedulerName, frameworkruntime.WithClientSet(client), @@ -824,10 +825,10 @@ func TestSchedulerNoPhantomPodAfterExpire(t *testing.T) { node := v1.Node{ObjectMeta: metav1.ObjectMeta{Name: "node1", UID: types.UID("node1")}} scache.AddNode(logger, &node) - fns := []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), - st.RegisterPluginAsExtensions(nodeports.Name, nodeports.New, "Filter", "PreFilter"), + fns := []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterPluginAsExtensions(nodeports.Name, nodeports.New, "Filter", "PreFilter"), } scheduler, bindingChan, errChan := setupTestSchedulerWithOnePodOnNode(ctx, t, queuedPodStore, scache, pod, &node, fns...) @@ -889,10 +890,10 @@ func TestSchedulerNoPhantomPodAfterDelete(t *testing.T) { firstPod := podWithPort("pod.Name", "", 8080) node := v1.Node{ObjectMeta: metav1.ObjectMeta{Name: "node1", UID: types.UID("node1")}} scache.AddNode(logger, &node) - fns := []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), - st.RegisterPluginAsExtensions(nodeports.Name, nodeports.New, "Filter", "PreFilter"), + fns := []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterPluginAsExtensions(nodeports.Name, nodeports.New, "Filter", "PreFilter"), } scheduler, bindingChan, errChan := setupTestSchedulerWithOnePodOnNode(ctx, t, queuedPodStore, scache, firstPod, &node, fns...) @@ -1001,10 +1002,10 @@ func TestSchedulerFailedSchedulingReasons(t *testing.T) { fmt.Sprintf("Insufficient %v", v1.ResourceMemory), ).WithFailedPlugin(noderesources.Name) } - fns := []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), - st.RegisterPluginAsExtensions(noderesources.Name, frameworkruntime.FactoryAdapter(feature.Features{}, noderesources.NewFit), "Filter", "PreFilter"), + fns := []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterPluginAsExtensions(noderesources.Name, frameworkruntime.FactoryAdapter(feature.Features{}, noderesources.NewFit), "Filter", "PreFilter"), } informerFactory := informers.NewSharedInformerFactory(clientsetfake.NewSimpleClientset(objects...), 0) @@ -1231,10 +1232,10 @@ func TestSchedulerBinding(t *testing.T) { _, ctx := ktesting.NewTestContext(t) ctx, cancel := context.WithCancel(ctx) defer cancel() - fwk, err := st.NewFramework(ctx, - []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + fwk, err := tf.NewFramework(ctx, + []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, "", frameworkruntime.WithClientSet(client), frameworkruntime.WithEventRecorder(&events.FakeRecorder{})) if err != nil { t.Fatal(err) @@ -1586,7 +1587,7 @@ func Test_SelectHost(t *testing.T) { func TestFindNodesThatPassExtenders(t *testing.T) { tests := []struct { name string - extenders []st.FakeExtender + extenders []tf.FakeExtender nodes []*v1.Node filteredNodesStatuses framework.NodeToStatusMap expectsErr bool @@ -1595,10 +1596,10 @@ func TestFindNodesThatPassExtenders(t *testing.T) { }{ { name: "error", - extenders: []st.FakeExtender{ + extenders: []tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{st.ErrorPredicateExtender}, + Predicates: []tf.FitPredicate{tf.ErrorPredicateExtender}, }, }, nodes: makeNodeList([]string{"a"}), @@ -1607,10 +1608,10 @@ func TestFindNodesThatPassExtenders(t *testing.T) { }, { name: "success", - extenders: []st.FakeExtender{ + extenders: []tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{st.TruePredicateExtender}, + Predicates: []tf.FitPredicate{tf.TruePredicateExtender}, }, }, nodes: makeNodeList([]string{"a"}), @@ -1621,10 +1622,10 @@ func TestFindNodesThatPassExtenders(t *testing.T) { }, { name: "unschedulable", - extenders: []st.FakeExtender{ + extenders: []tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{func(pod *v1.Pod, node *v1.Node) *framework.Status { + Predicates: []tf.FitPredicate{func(pod *v1.Pod, node *v1.Node) *framework.Status { if node.Name == "a" { return framework.NewStatus(framework.Success) } @@ -1642,10 +1643,10 @@ func TestFindNodesThatPassExtenders(t *testing.T) { }, { name: "unschedulable and unresolvable", - extenders: []st.FakeExtender{ + extenders: []tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{func(pod *v1.Pod, node *v1.Node) *framework.Status { + Predicates: []tf.FitPredicate{func(pod *v1.Pod, node *v1.Node) *framework.Status { if node.Name == "a" { return framework.NewStatus(framework.Success) } @@ -1667,10 +1668,10 @@ func TestFindNodesThatPassExtenders(t *testing.T) { }, { name: "extender may overwrite the statuses", - extenders: []st.FakeExtender{ + extenders: []tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{func(pod *v1.Pod, node *v1.Node) *framework.Status { + Predicates: []tf.FitPredicate{func(pod *v1.Pod, node *v1.Node) *framework.Status { if node.Name == "a" { return framework.NewStatus(framework.Success) } @@ -1694,10 +1695,10 @@ func TestFindNodesThatPassExtenders(t *testing.T) { }, { name: "multiple extenders", - extenders: []st.FakeExtender{ + extenders: []tf.FakeExtender{ { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{func(pod *v1.Pod, node *v1.Node) *framework.Status { + Predicates: []tf.FitPredicate{func(pod *v1.Pod, node *v1.Node) *framework.Status { if node.Name == "a" { return framework.NewStatus(framework.Success) } @@ -1709,7 +1710,7 @@ func TestFindNodesThatPassExtenders(t *testing.T) { }, { ExtenderName: "FakeExtender1", - Predicates: []st.FitPredicate{func(pod *v1.Pod, node *v1.Node) *framework.Status { + Predicates: []tf.FitPredicate{func(pod *v1.Pod, node *v1.Node) *framework.Status { if node.Name == "a" { return framework.NewStatus(framework.Success) } @@ -1767,7 +1768,7 @@ func TestSchedulerSchedulePod(t *testing.T) { fts := feature.Features{} tests := []struct { name string - registerPlugins []st.RegisterPluginFunc + registerPlugins []tf.RegisterPluginFunc nodes []string pvcs []v1.PersistentVolumeClaim pod *v1.Pod @@ -1777,10 +1778,10 @@ func TestSchedulerSchedulePod(t *testing.T) { wErr error }{ { - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterFilterPlugin("FalseFilter", st.NewFalseFilterPlugin), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin("FalseFilter", tf.NewFalseFilterPlugin), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"node1", "node2"}, pod: st.MakePod().Name("2").UID("2").Obj(), @@ -1790,18 +1791,18 @@ func TestSchedulerSchedulePod(t *testing.T) { NumAllNodes: 2, Diagnosis: framework.Diagnosis{ NodeToStatusMap: framework.NodeToStatusMap{ - "node1": framework.NewStatus(framework.Unschedulable, st.ErrReasonFake).WithFailedPlugin("FalseFilter"), - "node2": framework.NewStatus(framework.Unschedulable, st.ErrReasonFake).WithFailedPlugin("FalseFilter"), + "node1": framework.NewStatus(framework.Unschedulable, tf.ErrReasonFake).WithFailedPlugin("FalseFilter"), + "node2": framework.NewStatus(framework.Unschedulable, tf.ErrReasonFake).WithFailedPlugin("FalseFilter"), }, UnschedulablePlugins: sets.New("FalseFilter"), }, }, }, { - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"node1", "node2"}, pod: st.MakePod().Name("ignore").UID("ignore").Obj(), @@ -1811,10 +1812,10 @@ func TestSchedulerSchedulePod(t *testing.T) { }, { // Fits on a node where the pod ID matches the node name - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterFilterPlugin("MatchFilter", st.NewMatchFilterPlugin), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin("MatchFilter", tf.NewMatchFilterPlugin), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"node1", "node2"}, pod: st.MakePod().Name("node2").UID("node2").Obj(), @@ -1823,11 +1824,11 @@ func TestSchedulerSchedulePod(t *testing.T) { wErr: nil, }, { - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterScorePlugin("NumericMap", newNumericMapPlugin(), 1), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterScorePlugin("NumericMap", newNumericMapPlugin(), 1), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"3", "2", "1"}, pod: st.MakePod().Name("ignore").UID("ignore").Obj(), @@ -1836,11 +1837,11 @@ func TestSchedulerSchedulePod(t *testing.T) { wErr: nil, }, { - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterFilterPlugin("MatchFilter", st.NewMatchFilterPlugin), - st.RegisterScorePlugin("NumericMap", newNumericMapPlugin(), 1), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin("MatchFilter", tf.NewMatchFilterPlugin), + tf.RegisterScorePlugin("NumericMap", newNumericMapPlugin(), 1), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"3", "2", "1"}, pod: st.MakePod().Name("2").UID("2").Obj(), @@ -1849,12 +1850,12 @@ func TestSchedulerSchedulePod(t *testing.T) { wErr: nil, }, { - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterScorePlugin("NumericMap", newNumericMapPlugin(), 1), - st.RegisterScorePlugin("ReverseNumericMap", newReverseNumericMapPlugin(), 2), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterScorePlugin("NumericMap", newNumericMapPlugin(), 1), + tf.RegisterScorePlugin("ReverseNumericMap", newReverseNumericMapPlugin(), 2), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"3", "2", "1"}, pod: st.MakePod().Name("2").UID("2").Obj(), @@ -1863,12 +1864,12 @@ func TestSchedulerSchedulePod(t *testing.T) { wErr: nil, }, { - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterFilterPlugin("FalseFilter", st.NewFalseFilterPlugin), - st.RegisterScorePlugin("NumericMap", newNumericMapPlugin(), 1), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterFilterPlugin("FalseFilter", tf.NewFalseFilterPlugin), + tf.RegisterScorePlugin("NumericMap", newNumericMapPlugin(), 1), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"3", "2", "1"}, pod: st.MakePod().Name("2").UID("2").Obj(), @@ -1878,21 +1879,21 @@ func TestSchedulerSchedulePod(t *testing.T) { NumAllNodes: 3, Diagnosis: framework.Diagnosis{ NodeToStatusMap: framework.NodeToStatusMap{ - "3": framework.NewStatus(framework.Unschedulable, st.ErrReasonFake).WithFailedPlugin("FalseFilter"), - "2": framework.NewStatus(framework.Unschedulable, st.ErrReasonFake).WithFailedPlugin("FalseFilter"), - "1": framework.NewStatus(framework.Unschedulable, st.ErrReasonFake).WithFailedPlugin("FalseFilter"), + "3": framework.NewStatus(framework.Unschedulable, tf.ErrReasonFake).WithFailedPlugin("FalseFilter"), + "2": framework.NewStatus(framework.Unschedulable, tf.ErrReasonFake).WithFailedPlugin("FalseFilter"), + "1": framework.NewStatus(framework.Unschedulable, tf.ErrReasonFake).WithFailedPlugin("FalseFilter"), }, UnschedulablePlugins: sets.New("FalseFilter"), }, }, }, { - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterFilterPlugin("NoPodsFilter", NewNoPodsFilterPlugin), - st.RegisterFilterPlugin("MatchFilter", st.NewMatchFilterPlugin), - st.RegisterScorePlugin("NumericMap", newNumericMapPlugin(), 1), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin("NoPodsFilter", NewNoPodsFilterPlugin), + tf.RegisterFilterPlugin("MatchFilter", tf.NewMatchFilterPlugin), + tf.RegisterScorePlugin("NumericMap", newNumericMapPlugin(), 1), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, pods: []*v1.Pod{ st.MakePod().Name("2").UID("2").Node("2").Phase(v1.PodRunning).Obj(), @@ -1905,8 +1906,8 @@ func TestSchedulerSchedulePod(t *testing.T) { NumAllNodes: 2, Diagnosis: framework.Diagnosis{ NodeToStatusMap: framework.NodeToStatusMap{ - "1": framework.NewStatus(framework.Unschedulable, st.ErrReasonFake).WithFailedPlugin("MatchFilter"), - "2": framework.NewStatus(framework.Unschedulable, st.ErrReasonFake).WithFailedPlugin("NoPodsFilter"), + "1": framework.NewStatus(framework.Unschedulable, tf.ErrReasonFake).WithFailedPlugin("MatchFilter"), + "2": framework.NewStatus(framework.Unschedulable, tf.ErrReasonFake).WithFailedPlugin("NoPodsFilter"), }, UnschedulablePlugins: sets.New("MatchFilter", "NoPodsFilter"), }, @@ -1914,11 +1915,11 @@ func TestSchedulerSchedulePod(t *testing.T) { }, { // Pod with existing PVC - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterPreFilterPlugin(volumebinding.Name, frameworkruntime.FactoryAdapter(fts, volumebinding.New)), - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterPreFilterPlugin(volumebinding.Name, frameworkruntime.FactoryAdapter(fts, volumebinding.New)), + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"node1", "node2"}, pvcs: []v1.PersistentVolumeClaim{ @@ -1934,11 +1935,11 @@ func TestSchedulerSchedulePod(t *testing.T) { }, { // Pod with non existing PVC - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterPreFilterPlugin(volumebinding.Name, frameworkruntime.FactoryAdapter(fts, volumebinding.New)), - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterPreFilterPlugin(volumebinding.Name, frameworkruntime.FactoryAdapter(fts, volumebinding.New)), + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"node1", "node2"}, pod: st.MakePod().Name("ignore").UID("ignore").PVC("unknownPVC").Obj(), @@ -1958,11 +1959,11 @@ func TestSchedulerSchedulePod(t *testing.T) { }, { // Pod with deleting PVC - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterPreFilterPlugin(volumebinding.Name, frameworkruntime.FactoryAdapter(fts, volumebinding.New)), - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterPreFilterPlugin(volumebinding.Name, frameworkruntime.FactoryAdapter(fts, volumebinding.New)), + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"node1", "node2"}, pvcs: []v1.PersistentVolumeClaim{{ObjectMeta: metav1.ObjectMeta{Name: "existingPVC", UID: types.UID("existingPVC"), Namespace: v1.NamespaceDefault, DeletionTimestamp: &metav1.Time{}}}}, @@ -1982,12 +1983,12 @@ func TestSchedulerSchedulePod(t *testing.T) { }, }, { - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterScorePlugin("FalseMap", newFalseMapPlugin(), 1), - st.RegisterScorePlugin("TrueMap", newTrueMapPlugin(), 2), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterScorePlugin("FalseMap", newFalseMapPlugin(), 1), + tf.RegisterScorePlugin("TrueMap", newTrueMapPlugin(), 2), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"2", "1"}, pod: st.MakePod().Name("2").Obj(), @@ -1996,15 +1997,15 @@ func TestSchedulerSchedulePod(t *testing.T) { }, { name: "test podtopologyspread plugin - 2 nodes with maxskew=1", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterPluginAsExtensions( + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterPluginAsExtensions( podtopologyspread.Name, podTopologySpreadFunc, "PreFilter", "Filter", ), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"node1", "node2"}, pod: st.MakePod().Name("p").UID("p").Label("foo", "").SpreadConstraint(1, "hostname", v1.DoNotSchedule, &metav1.LabelSelector{ @@ -2023,15 +2024,15 @@ func TestSchedulerSchedulePod(t *testing.T) { }, { name: "test podtopologyspread plugin - 3 nodes with maxskew=2", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterPluginAsExtensions( + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterPluginAsExtensions( podtopologyspread.Name, podTopologySpreadFunc, "PreFilter", "Filter", ), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"node1", "node2", "node3"}, pod: st.MakePod().Name("p").UID("p").Label("foo", "").SpreadConstraint(2, "hostname", v1.DoNotSchedule, &metav1.LabelSelector{ @@ -2052,14 +2053,14 @@ func TestSchedulerSchedulePod(t *testing.T) { }, { name: "test with filter plugin returning Unschedulable status", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterFilterPlugin( + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin( "FakeFilter", - st.NewFakeFilterPlugin(map[string]framework.Code{"3": framework.Unschedulable}), + tf.NewFakeFilterPlugin(map[string]framework.Code{"3": framework.Unschedulable}), ), - st.RegisterScorePlugin("NumericMap", newNumericMapPlugin(), 1), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterScorePlugin("NumericMap", newNumericMapPlugin(), 1), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"3"}, pod: st.MakePod().Name("test-filter").UID("test-filter").Obj(), @@ -2077,14 +2078,14 @@ func TestSchedulerSchedulePod(t *testing.T) { }, { name: "test with filter plugin returning UnschedulableAndUnresolvable status", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterFilterPlugin( + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin( "FakeFilter", - st.NewFakeFilterPlugin(map[string]framework.Code{"3": framework.UnschedulableAndUnresolvable}), + tf.NewFakeFilterPlugin(map[string]framework.Code{"3": framework.UnschedulableAndUnresolvable}), ), - st.RegisterScorePlugin("NumericMap", newNumericMapPlugin(), 1), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterScorePlugin("NumericMap", newNumericMapPlugin(), 1), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"3"}, pod: st.MakePod().Name("test-filter").UID("test-filter").Obj(), @@ -2102,14 +2103,14 @@ func TestSchedulerSchedulePod(t *testing.T) { }, { name: "test with partial failed filter plugin", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterFilterPlugin( + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin( "FakeFilter", - st.NewFakeFilterPlugin(map[string]framework.Code{"1": framework.Unschedulable}), + tf.NewFakeFilterPlugin(map[string]framework.Code{"1": framework.Unschedulable}), ), - st.RegisterScorePlugin("NumericMap", newNumericMapPlugin(), 1), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterScorePlugin("NumericMap", newNumericMapPlugin(), 1), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"1", "2"}, pod: st.MakePod().Name("test-filter").UID("test-filter").Obj(), @@ -2118,13 +2119,13 @@ func TestSchedulerSchedulePod(t *testing.T) { }, { name: "test prefilter plugin returning Unschedulable status", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterPreFilterPlugin( + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterPreFilterPlugin( "FakePreFilter", - st.NewFakePreFilterPlugin("FakePreFilter", nil, framework.NewStatus(framework.UnschedulableAndUnresolvable, "injected unschedulable status")), + tf.NewFakePreFilterPlugin("FakePreFilter", nil, framework.NewStatus(framework.UnschedulableAndUnresolvable, "injected unschedulable status")), ), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"1", "2"}, pod: st.MakePod().Name("test-prefilter").UID("test-prefilter").Obj(), @@ -2144,13 +2145,13 @@ func TestSchedulerSchedulePod(t *testing.T) { }, { name: "test prefilter plugin returning error status", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterPreFilterPlugin( + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterPreFilterPlugin( "FakePreFilter", - st.NewFakePreFilterPlugin("FakePreFilter", nil, framework.NewStatus(framework.Error, "injected error status")), + tf.NewFakePreFilterPlugin("FakePreFilter", nil, framework.NewStatus(framework.Error, "injected error status")), ), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"1", "2"}, pod: st.MakePod().Name("test-prefilter").UID("test-prefilter").Obj(), @@ -2159,21 +2160,21 @@ func TestSchedulerSchedulePod(t *testing.T) { }, { name: "test prefilter plugin returning node", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterPreFilterPlugin( + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterPreFilterPlugin( "FakePreFilter1", - st.NewFakePreFilterPlugin("FakePreFilter1", nil, nil), + tf.NewFakePreFilterPlugin("FakePreFilter1", nil, nil), ), - st.RegisterPreFilterPlugin( + tf.RegisterPreFilterPlugin( "FakePreFilter2", - st.NewFakePreFilterPlugin("FakePreFilter2", &framework.PreFilterResult{NodeNames: sets.New("node2")}, nil), + tf.NewFakePreFilterPlugin("FakePreFilter2", &framework.PreFilterResult{NodeNames: sets.New("node2")}, nil), ), - st.RegisterPreFilterPlugin( + tf.RegisterPreFilterPlugin( "FakePreFilter3", - st.NewFakePreFilterPlugin("FakePreFilter3", &framework.PreFilterResult{NodeNames: sets.New("node1", "node2")}, nil), + tf.NewFakePreFilterPlugin("FakePreFilter3", &framework.PreFilterResult{NodeNames: sets.New("node1", "node2")}, nil), ), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"node1", "node2", "node3"}, pod: st.MakePod().Name("test-prefilter").UID("test-prefilter").Obj(), @@ -2182,21 +2183,21 @@ func TestSchedulerSchedulePod(t *testing.T) { }, { name: "test prefilter plugin returning non-intersecting nodes", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterPreFilterPlugin( + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterPreFilterPlugin( "FakePreFilter1", - st.NewFakePreFilterPlugin("FakePreFilter1", nil, nil), + tf.NewFakePreFilterPlugin("FakePreFilter1", nil, nil), ), - st.RegisterPreFilterPlugin( + tf.RegisterPreFilterPlugin( "FakePreFilter2", - st.NewFakePreFilterPlugin("FakePreFilter2", &framework.PreFilterResult{NodeNames: sets.New("node2")}, nil), + tf.NewFakePreFilterPlugin("FakePreFilter2", &framework.PreFilterResult{NodeNames: sets.New("node2")}, nil), ), - st.RegisterPreFilterPlugin( + tf.RegisterPreFilterPlugin( "FakePreFilter3", - st.NewFakePreFilterPlugin("FakePreFilter3", &framework.PreFilterResult{NodeNames: sets.New("node1")}, nil), + tf.NewFakePreFilterPlugin("FakePreFilter3", &framework.PreFilterResult{NodeNames: sets.New("node1")}, nil), ), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"node1", "node2", "node3"}, pod: st.MakePod().Name("test-prefilter").UID("test-prefilter").Obj(), @@ -2216,17 +2217,17 @@ func TestSchedulerSchedulePod(t *testing.T) { }, { name: "test prefilter plugin returning empty node set", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterPreFilterPlugin( + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterPreFilterPlugin( "FakePreFilter1", - st.NewFakePreFilterPlugin("FakePreFilter1", nil, nil), + tf.NewFakePreFilterPlugin("FakePreFilter1", nil, nil), ), - st.RegisterPreFilterPlugin( + tf.RegisterPreFilterPlugin( "FakePreFilter2", - st.NewFakePreFilterPlugin("FakePreFilter2", &framework.PreFilterResult{NodeNames: sets.New[string]()}, nil), + tf.NewFakePreFilterPlugin("FakePreFilter2", &framework.PreFilterResult{NodeNames: sets.New[string]()}, nil), ), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"node1"}, pod: st.MakePod().Name("test-prefilter").UID("test-prefilter").Obj(), @@ -2244,25 +2245,25 @@ func TestSchedulerSchedulePod(t *testing.T) { }, { name: "test prefilter plugin returning skip", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterPreFilterPlugin( + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterPreFilterPlugin( "FakePreFilter1", - st.NewFakePreFilterPlugin("FakeFilter1", nil, nil), + tf.NewFakePreFilterPlugin("FakeFilter1", nil, nil), ), - st.RegisterFilterPlugin( + tf.RegisterFilterPlugin( "FakeFilter1", - st.NewFakeFilterPlugin(map[string]framework.Code{ + tf.NewFakeFilterPlugin(map[string]framework.Code{ "node1": framework.Unschedulable, }), ), - st.RegisterPluginAsExtensions("FakeFilter2", func(configuration runtime.Object, f framework.Handle) (framework.Plugin, error) { - return st.FakePreFilterAndFilterPlugin{ - FakePreFilterPlugin: &st.FakePreFilterPlugin{ + tf.RegisterPluginAsExtensions("FakeFilter2", func(configuration runtime.Object, f framework.Handle) (framework.Plugin, error) { + return tf.FakePreFilterAndFilterPlugin{ + FakePreFilterPlugin: &tf.FakePreFilterPlugin{ Result: nil, Status: framework.NewStatus(framework.Skip), }, - FakeFilterPlugin: &st.FakeFilterPlugin{ + FakeFilterPlugin: &tf.FakeFilterPlugin{ // This Filter plugin shouldn't be executed in the Filter extension point due to skip. // To confirm that, return the status code Error to all Nodes. FailedNodeReturnCodeMap: map[string]framework.Code{ @@ -2271,7 +2272,7 @@ func TestSchedulerSchedulePod(t *testing.T) { }, }, nil }, "PreFilter", "Filter"), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, nodes: []string{"node1", "node2", "node3"}, pod: st.MakePod().Name("test-prefilter").UID("test-prefilter").Obj(), @@ -2280,11 +2281,11 @@ func TestSchedulerSchedulePod(t *testing.T) { }, { name: "test all prescore plugins return skip", - registerPlugins: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), - st.RegisterPluginAsExtensions("FakePreScoreAndScorePlugin", st.NewFakePreScoreAndScorePlugin("FakePreScoreAndScorePlugin", 0, + registerPlugins: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterPluginAsExtensions("FakePreScoreAndScorePlugin", tf.NewFakePreScoreAndScorePlugin("FakePreScoreAndScorePlugin", 0, framework.NewStatus(framework.Skip, "fake skip"), framework.NewStatus(framework.Error, "this score function shouldn't be executed because this plugin returned Skip in the PreScore"), ), "PreScore", "Score"), @@ -2322,7 +2323,7 @@ func TestSchedulerSchedulePod(t *testing.T) { } } snapshot := internalcache.NewSnapshot(test.pods, nodes) - fwk, err := st.NewFramework( + fwk, err := tf.NewFramework( ctx, test.registerPlugins, "", frameworkruntime.WithSnapshotSharedLister(snapshot), @@ -2376,13 +2377,13 @@ func TestFindFitAllError(t *testing.T) { nodes := makeNodeList([]string{"3", "2", "1"}) scheduler := makeScheduler(ctx, nodes) - fwk, err := st.NewFramework( + fwk, err := tf.NewFramework( ctx, - []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterFilterPlugin("MatchFilter", st.NewMatchFilterPlugin), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterFilterPlugin("MatchFilter", tf.NewMatchFilterPlugin), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, "", frameworkruntime.WithPodNominator(internalqueue.NewPodNominator(nil)), @@ -2398,9 +2399,9 @@ func TestFindFitAllError(t *testing.T) { expected := framework.Diagnosis{ NodeToStatusMap: framework.NodeToStatusMap{ - "1": framework.NewStatus(framework.Unschedulable, st.ErrReasonFake).WithFailedPlugin("MatchFilter"), - "2": framework.NewStatus(framework.Unschedulable, st.ErrReasonFake).WithFailedPlugin("MatchFilter"), - "3": framework.NewStatus(framework.Unschedulable, st.ErrReasonFake).WithFailedPlugin("MatchFilter"), + "1": framework.NewStatus(framework.Unschedulable, tf.ErrReasonFake).WithFailedPlugin("MatchFilter"), + "2": framework.NewStatus(framework.Unschedulable, tf.ErrReasonFake).WithFailedPlugin("MatchFilter"), + "3": framework.NewStatus(framework.Unschedulable, tf.ErrReasonFake).WithFailedPlugin("MatchFilter"), }, UnschedulablePlugins: sets.New("MatchFilter"), } @@ -2416,13 +2417,13 @@ func TestFindFitSomeError(t *testing.T) { nodes := makeNodeList([]string{"3", "2", "1"}) scheduler := makeScheduler(ctx, nodes) - fwk, err := st.NewFramework( + fwk, err := tf.NewFramework( ctx, - []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterFilterPlugin("MatchFilter", st.NewMatchFilterPlugin), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterFilterPlugin("MatchFilter", tf.NewMatchFilterPlugin), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, "", frameworkruntime.WithPodNominator(internalqueue.NewPodNominator(nil)), @@ -2455,7 +2456,7 @@ func TestFindFitSomeError(t *testing.T) { t.Errorf("failed to find node %v in %v", node.Name, diagnosis.NodeToStatusMap) } reasons := status.Reasons() - if len(reasons) != 1 || reasons[0] != st.ErrReasonFake { + if len(reasons) != 1 || reasons[0] != tf.ErrReasonFake { t.Errorf("unexpected failures: %v", reasons) } }) @@ -2484,22 +2485,22 @@ func TestFindFitPredicateCallCounts(t *testing.T) { t.Run(test.name, func(t *testing.T) { nodes := makeNodeList([]string{"1"}) - plugin := st.FakeFilterPlugin{} - registerFakeFilterFunc := st.RegisterFilterPlugin( + plugin := tf.FakeFilterPlugin{} + registerFakeFilterFunc := tf.RegisterFilterPlugin( "FakeFilter", func(_ runtime.Object, fh framework.Handle) (framework.Plugin, error) { return &plugin, nil }, ) - registerPlugins := []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + registerPlugins := []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), registerFakeFilterFunc, - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), } logger, ctx := ktesting.NewTestContext(t) ctx, cancel := context.WithCancel(ctx) defer cancel() - fwk, err := st.NewFramework( + fwk, err := tf.NewFramework( ctx, registerPlugins, "", frameworkruntime.WithPodNominator(internalqueue.NewPodNominator(nil)), @@ -2629,15 +2630,15 @@ func TestZeroRequest(t *testing.T) { snapshot := internalcache.NewSnapshot(test.pods, test.nodes) fts := feature.Features{} - pluginRegistrations := []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterScorePlugin(noderesources.Name, frameworkruntime.FactoryAdapter(fts, noderesources.NewFit), 1), - st.RegisterScorePlugin(noderesources.BalancedAllocationName, frameworkruntime.FactoryAdapter(fts, noderesources.NewBalancedAllocation), 1), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + pluginRegistrations := []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterScorePlugin(noderesources.Name, frameworkruntime.FactoryAdapter(fts, noderesources.NewFit), 1), + tf.RegisterScorePlugin(noderesources.BalancedAllocationName, frameworkruntime.FactoryAdapter(fts, noderesources.NewBalancedAllocation), 1), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), } ctx, cancel := context.WithCancel(context.Background()) defer cancel() - fwk, err := st.NewFramework( + fwk, err := tf.NewFramework( ctx, pluginRegistrations, "", frameworkruntime.WithInformerFactory(informerFactory), @@ -2680,19 +2681,19 @@ func Test_prioritizeNodes(t *testing.T) { pod *v1.Pod pods []*v1.Pod nodes []*v1.Node - pluginRegistrations []st.RegisterPluginFunc - extenders []st.FakeExtender + pluginRegistrations []tf.RegisterPluginFunc + extenders []tf.FakeExtender want []framework.NodePluginScores }{ { name: "the score from all plugins should be recorded in PluginToNodeScores", pod: &v1.Pod{}, nodes: []*v1.Node{makeNode("node1", 1000, schedutil.DefaultMemoryRequest*10), makeNode("node2", 1000, schedutil.DefaultMemoryRequest*10)}, - pluginRegistrations: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterScorePlugin(noderesources.BalancedAllocationName, frameworkruntime.FactoryAdapter(feature.Features{}, noderesources.NewBalancedAllocation), 1), - st.RegisterScorePlugin("Node2Prioritizer", st.NewNode2PrioritizerPlugin(), 1), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + pluginRegistrations: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterScorePlugin(noderesources.BalancedAllocationName, frameworkruntime.FactoryAdapter(feature.Features{}, noderesources.NewBalancedAllocation), 1), + tf.RegisterScorePlugin("Node2Prioritizer", tf.NewNode2PrioritizerPlugin(), 1), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, extenders: nil, want: []framework.NodePluginScores{ @@ -2730,29 +2731,29 @@ func Test_prioritizeNodes(t *testing.T) { name: "the score from extender should also be recorded in PluginToNodeScores with plugin scores", pod: &v1.Pod{}, nodes: []*v1.Node{makeNode("node1", 1000, schedutil.DefaultMemoryRequest*10), makeNode("node2", 1000, schedutil.DefaultMemoryRequest*10)}, - pluginRegistrations: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterScorePlugin(noderesources.BalancedAllocationName, frameworkruntime.FactoryAdapter(feature.Features{}, noderesources.NewBalancedAllocation), 1), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + pluginRegistrations: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterScorePlugin(noderesources.BalancedAllocationName, frameworkruntime.FactoryAdapter(feature.Features{}, noderesources.NewBalancedAllocation), 1), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, - extenders: []st.FakeExtender{ + extenders: []tf.FakeExtender{ { ExtenderName: "FakeExtender1", Weight: 1, - Prioritizers: []st.PriorityConfig{ + Prioritizers: []tf.PriorityConfig{ { Weight: 3, - Function: st.Node1PrioritizerExtender, + Function: tf.Node1PrioritizerExtender, }, }, }, { ExtenderName: "FakeExtender2", Weight: 1, - Prioritizers: []st.PriorityConfig{ + Prioritizers: []tf.PriorityConfig{ { Weight: 2, - Function: st.Node2PrioritizerExtender, + Function: tf.Node2PrioritizerExtender, }, }, }, @@ -2801,12 +2802,12 @@ func Test_prioritizeNodes(t *testing.T) { name: "plugin which returned skip in preScore shouldn't be executed in the score phase", pod: &v1.Pod{}, nodes: []*v1.Node{makeNode("node1", 1000, schedutil.DefaultMemoryRequest*10), makeNode("node2", 1000, schedutil.DefaultMemoryRequest*10)}, - pluginRegistrations: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterScorePlugin(noderesources.BalancedAllocationName, frameworkruntime.FactoryAdapter(feature.Features{}, noderesources.NewBalancedAllocation), 1), - st.RegisterScorePlugin("Node2Prioritizer", st.NewNode2PrioritizerPlugin(), 1), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), - st.RegisterPluginAsExtensions("FakePreScoreAndScorePlugin", st.NewFakePreScoreAndScorePlugin("FakePreScoreAndScorePlugin", 0, + pluginRegistrations: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterScorePlugin(noderesources.BalancedAllocationName, frameworkruntime.FactoryAdapter(feature.Features{}, noderesources.NewBalancedAllocation), 1), + tf.RegisterScorePlugin("Node2Prioritizer", tf.NewNode2PrioritizerPlugin(), 1), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterPluginAsExtensions("FakePreScoreAndScorePlugin", tf.NewFakePreScoreAndScorePlugin("FakePreScoreAndScorePlugin", 0, framework.NewStatus(framework.Skip, "fake skip"), framework.NewStatus(framework.Error, "this score function shouldn't be executed because this plugin returned Skip in the PreScore"), ), "PreScore", "Score"), @@ -2847,10 +2848,10 @@ func Test_prioritizeNodes(t *testing.T) { name: "all score plugins are skipped", pod: &v1.Pod{}, nodes: []*v1.Node{makeNode("node1", 1000, schedutil.DefaultMemoryRequest*10), makeNode("node2", 1000, schedutil.DefaultMemoryRequest*10)}, - pluginRegistrations: []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), - st.RegisterPluginAsExtensions("FakePreScoreAndScorePlugin", st.NewFakePreScoreAndScorePlugin("FakePreScoreAndScorePlugin", 0, + pluginRegistrations: []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterPluginAsExtensions("FakePreScoreAndScorePlugin", tf.NewFakePreScoreAndScorePlugin("FakePreScoreAndScorePlugin", 0, framework.NewStatus(framework.Skip, "fake skip"), framework.NewStatus(framework.Error, "this score function shouldn't be executed because this plugin returned Skip in the PreScore"), ), "PreScore", "Score"), @@ -2871,7 +2872,7 @@ func Test_prioritizeNodes(t *testing.T) { snapshot := internalcache.NewSnapshot(test.pods, test.nodes) ctx, cancel := context.WithCancel(context.Background()) defer cancel() - fwk, err := st.NewFramework( + fwk, err := tf.NewFramework( ctx, test.pluginRegistrations, "", frameworkruntime.WithInformerFactory(informerFactory), @@ -2986,12 +2987,12 @@ func TestFairEvaluationForNodes(t *testing.T) { defer cancel() sched := makeScheduler(ctx, nodes) - fwk, err := st.NewFramework( + fwk, err := tf.NewFramework( ctx, - []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterFilterPlugin("TrueFilter", st.NewTrueFilterPlugin), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterFilterPlugin("TrueFilter", tf.NewTrueFilterPlugin), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), }, "", frameworkruntime.WithPodNominator(internalqueue.NewPodNominator(nil)), @@ -3059,19 +3060,19 @@ func TestPreferNominatedNodeFilterCallCounts(t *testing.T) { for _, n := range nodes { cache.AddNode(logger, n) } - plugin := st.FakeFilterPlugin{FailedNodeReturnCodeMap: test.nodeReturnCodeMap} - registerFakeFilterFunc := st.RegisterFilterPlugin( + plugin := tf.FakeFilterPlugin{FailedNodeReturnCodeMap: test.nodeReturnCodeMap} + registerFakeFilterFunc := tf.RegisterFilterPlugin( "FakeFilter", func(_ runtime.Object, fh framework.Handle) (framework.Plugin, error) { return &plugin, nil }, ) - registerPlugins := []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + registerPlugins := []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), registerFakeFilterFunc, - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), } - fwk, err := st.NewFramework( + fwk, err := tf.NewFramework( ctx, registerPlugins, "", frameworkruntime.WithClientSet(client), @@ -3172,7 +3173,7 @@ func makeNode(node string, milliCPU, memory int64) *v1.Node { // queuedPodStore: pods queued before processing. // cache: scheduler cache that might contain assumed pods. func setupTestSchedulerWithOnePodOnNode(ctx context.Context, t *testing.T, queuedPodStore *clientcache.FIFO, scache internalcache.Cache, - pod *v1.Pod, node *v1.Node, fns ...st.RegisterPluginFunc) (*Scheduler, chan *v1.Binding, chan error) { + pod *v1.Pod, node *v1.Node, fns ...tf.RegisterPluginFunc) (*Scheduler, chan *v1.Binding, chan error) { scheduler, bindingChan, errChan := setupTestScheduler(ctx, t, queuedPodStore, scache, nil, nil, fns...) queuedPodStore.Add(pod) @@ -3200,7 +3201,7 @@ func setupTestSchedulerWithOnePodOnNode(ctx context.Context, t *testing.T, queue // queuedPodStore: pods queued before processing. // scache: scheduler cache that might contain assumed pods. -func setupTestScheduler(ctx context.Context, t *testing.T, queuedPodStore *clientcache.FIFO, cache internalcache.Cache, informerFactory informers.SharedInformerFactory, broadcaster events.EventBroadcaster, fns ...st.RegisterPluginFunc) (*Scheduler, chan *v1.Binding, chan error) { +func setupTestScheduler(ctx context.Context, t *testing.T, queuedPodStore *clientcache.FIFO, cache internalcache.Cache, informerFactory informers.SharedInformerFactory, broadcaster events.EventBroadcaster, fns ...tf.RegisterPluginFunc) (*Scheduler, chan *v1.Binding, chan error) { bindingChan := make(chan *v1.Binding, 1) client := clientsetfake.NewSimpleClientset() client.PrependReactor("create", "pods", func(action clienttesting.Action) (bool, runtime.Object, error) { @@ -3224,7 +3225,7 @@ func setupTestScheduler(ctx context.Context, t *testing.T, queuedPodStore *clien } schedulingQueue := internalqueue.NewTestQueueWithInformerFactory(ctx, nil, informerFactory) - fwk, _ := st.NewFramework( + fwk, _ := tf.NewFramework( ctx, fns, testSchedulerName, @@ -3275,10 +3276,10 @@ func setupTestSchedulerWithVolumeBinding(ctx context.Context, t *testing.T, volu pvcInformer := informerFactory.Core().V1().PersistentVolumeClaims() pvcInformer.Informer().GetStore().Add(&testPVC) - fns := []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), - st.RegisterPluginAsExtensions(volumebinding.Name, func(plArgs runtime.Object, handle framework.Handle) (framework.Plugin, error) { + fns := []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterPluginAsExtensions(volumebinding.Name, func(plArgs runtime.Object, handle framework.Handle) (framework.Plugin, error) { return &volumebinding.VolumeBinding{Binder: volumeBinder, PVCLister: pvcInformer.Lister()}, nil }, "PreFilter", "Filter", "Reserve", "PreBind"), } diff --git a/pkg/scheduler/scheduler_test.go b/pkg/scheduler/scheduler_test.go index a85f04261e1..d05a3a58b1d 100644 --- a/pkg/scheduler/scheduler_test.go +++ b/pkg/scheduler/scheduler_test.go @@ -52,6 +52,7 @@ import ( internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue" "k8s.io/kubernetes/pkg/scheduler/profile" st "k8s.io/kubernetes/pkg/scheduler/testing" + tf "k8s.io/kubernetes/pkg/scheduler/testing/framework" testingclock "k8s.io/utils/clock/testing" "k8s.io/utils/pointer" ) @@ -498,12 +499,12 @@ func getPodFromPriorityQueue(queue *internalqueue.PriorityQueue, pod *v1.Pod) *v func initScheduler(ctx context.Context, cache internalcache.Cache, queue internalqueue.SchedulingQueue, client kubernetes.Interface, informerFactory informers.SharedInformerFactory) (*Scheduler, framework.Framework, error) { logger := klog.FromContext(ctx) - registerPluginFuncs := []st.RegisterPluginFunc{ - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + registerPluginFuncs := []tf.RegisterPluginFunc{ + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), } eventBroadcaster := events.NewBroadcaster(&events.EventSinkImpl{Interface: client.EventsV1()}) - fwk, err := st.NewFramework(ctx, + fwk, err := tf.NewFramework(ctx, registerPluginFuncs, testSchedulerName, frameworkruntime.WithClientSet(client), @@ -593,22 +594,22 @@ func TestInitPluginsWithIndexers(t *testing.T) { t.Run(tt.name, func(t *testing.T) { fakeInformerFactory := NewInformerFactory(&fake.Clientset{}, 0*time.Second) - var registerPluginFuncs []st.RegisterPluginFunc + var registerPluginFuncs []tf.RegisterPluginFunc for name, entrypoint := range tt.entrypoints { registerPluginFuncs = append(registerPluginFuncs, // anything supported by TestPlugin is fine - st.RegisterFilterPlugin(name, entrypoint), + tf.RegisterFilterPlugin(name, entrypoint), ) } // we always need this registerPluginFuncs = append(registerPluginFuncs, - st.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), - st.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), + tf.RegisterQueueSortPlugin(queuesort.Name, queuesort.New), + tf.RegisterBindPlugin(defaultbinder.Name, defaultbinder.New), ) _, ctx := ktesting.NewTestContext(t) ctx, cancel := context.WithCancel(ctx) defer cancel() - _, err := st.NewFramework(ctx, registerPluginFuncs, "test", frameworkruntime.WithInformerFactory(fakeInformerFactory)) + _, err := tf.NewFramework(ctx, registerPluginFuncs, "test", frameworkruntime.WithInformerFactory(fakeInformerFactory)) if len(tt.wantErr) > 0 { if err == nil || !strings.Contains(err.Error(), tt.wantErr) { diff --git a/pkg/scheduler/testing/fake_extender.go b/pkg/scheduler/testing/framework/fake_extender.go similarity index 99% rename from pkg/scheduler/testing/fake_extender.go rename to pkg/scheduler/testing/framework/fake_extender.go index 903fbebdf2a..5cad19a3bed 100644 --- a/pkg/scheduler/testing/fake_extender.go +++ b/pkg/scheduler/testing/framework/fake_extender.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package testing +package framework import ( "context" diff --git a/pkg/scheduler/framework/fake/listers.go b/pkg/scheduler/testing/framework/fake_listers.go similarity index 99% rename from pkg/scheduler/framework/fake/listers.go rename to pkg/scheduler/testing/framework/fake_listers.go index 61c8dfc3460..2135f68129b 100644 --- a/pkg/scheduler/framework/fake/listers.go +++ b/pkg/scheduler/testing/framework/fake_listers.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package fake +package framework import ( "fmt" diff --git a/pkg/scheduler/testing/fake_plugins.go b/pkg/scheduler/testing/framework/fake_plugins.go similarity index 99% rename from pkg/scheduler/testing/fake_plugins.go rename to pkg/scheduler/testing/framework/fake_plugins.go index ce6fafa4a8f..61d1b870c79 100644 --- a/pkg/scheduler/testing/fake_plugins.go +++ b/pkg/scheduler/testing/framework/fake_plugins.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package testing +package framework import ( "context" diff --git a/pkg/scheduler/testing/framework_helpers.go b/pkg/scheduler/testing/framework/framework_helpers.go similarity index 99% rename from pkg/scheduler/testing/framework_helpers.go rename to pkg/scheduler/testing/framework/framework_helpers.go index a3097702885..72110f2315e 100644 --- a/pkg/scheduler/testing/framework_helpers.go +++ b/pkg/scheduler/testing/framework/framework_helpers.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package testing +package framework import ( "context"