From e283e739949eb443d2560d207bb10a3e95fd3ff6 Mon Sep 17 00:00:00 2001 From: Wei Huang Date: Fri, 8 May 2020 16:47:30 -0700 Subject: [PATCH] Remove `enableNonPreempting` field from scheduler codebase --- pkg/scheduler/BUILD | 2 -- pkg/scheduler/core/extender_test.go | 3 +-- pkg/scheduler/core/generic_scheduler.go | 11 ++++------- pkg/scheduler/core/generic_scheduler_test.go | 14 +++++--------- pkg/scheduler/factory.go | 3 --- pkg/scheduler/factory_test.go | 3 --- pkg/scheduler/scheduler.go | 3 --- pkg/scheduler/scheduler_test.go | 2 -- 8 files changed, 10 insertions(+), 31 deletions(-) diff --git a/pkg/scheduler/BUILD b/pkg/scheduler/BUILD index 811f9f82cf8..467be48db95 100644 --- a/pkg/scheduler/BUILD +++ b/pkg/scheduler/BUILD @@ -61,7 +61,6 @@ go_test( deps = [ "//pkg/apis/core:go_default_library", "//pkg/controller/volume/scheduling:go_default_library", - "//pkg/features:go_default_library", "//pkg/scheduler/apis/config:go_default_library", "//pkg/scheduler/apis/config/scheme:go_default_library", "//pkg/scheduler/core:go_default_library", @@ -91,7 +90,6 @@ go_test( "//staging/src/k8s.io/apimachinery/pkg/util/clock:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", "//staging/src/k8s.io/client-go/informers:go_default_library", "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library", diff --git a/pkg/scheduler/core/extender_test.go b/pkg/scheduler/core/extender_test.go index 890180f0f51..378e2c5ae28 100644 --- a/pkg/scheduler/core/extender_test.go +++ b/pkg/scheduler/core/extender_test.go @@ -600,8 +600,7 @@ func TestGenericSchedulerWithExtenders(t *testing.T) { informerFactory.Core().V1().PersistentVolumeClaims().Lister(), informerFactory.Policy().V1beta1().PodDisruptionBudgets().Lister(), false, - schedulerapi.DefaultPercentageOfNodesToScore, - false) + schedulerapi.DefaultPercentageOfNodesToScore) podIgnored := &v1.Pod{} result, err := scheduler.Schedule(context.Background(), prof, framework.NewCycleState(), podIgnored) if test.expectsErr { diff --git a/pkg/scheduler/core/generic_scheduler.go b/pkg/scheduler/core/generic_scheduler.go index a547b78876d..6cdab280765 100644 --- a/pkg/scheduler/core/generic_scheduler.go +++ b/pkg/scheduler/core/generic_scheduler.go @@ -131,7 +131,6 @@ type genericScheduler struct { pdbLister policylisters.PodDisruptionBudgetLister disablePreemption bool percentageOfNodesToScore int32 - enableNonPreempting bool nextStartNodeIndex int } @@ -259,7 +258,7 @@ func (g *genericScheduler) Preempt(ctx context.Context, prof *profile.Profile, s if !ok || fitError == nil { return nil, nil, nil, nil } - if !podEligibleToPreemptOthers(pod, g.nodeInfoSnapshot.NodeInfos(), g.enableNonPreempting) { + if !podEligibleToPreemptOthers(pod, g.nodeInfoSnapshot.NodeInfos()) { klog.V(5).Infof("Pod %v/%v is not eligible for more preemption.", pod.Namespace, pod.Name) return nil, nil, nil, nil } @@ -1053,8 +1052,8 @@ func nodesWherePreemptionMightHelp(nodes []*framework.NodeInfo, fitErr *FitError // considered for preemption. // We look at the node that is nominated for this pod and as long as there are // terminating pods on the node, we don't consider this for preempting more pods. -func podEligibleToPreemptOthers(pod *v1.Pod, nodeInfos framework.NodeInfoLister, enableNonPreempting bool) bool { - if enableNonPreempting && pod.Spec.PreemptionPolicy != nil && *pod.Spec.PreemptionPolicy == v1.PreemptNever { +func podEligibleToPreemptOthers(pod *v1.Pod, nodeInfos framework.NodeInfoLister) bool { + if pod.Spec.PreemptionPolicy != nil && *pod.Spec.PreemptionPolicy == v1.PreemptNever { klog.V(5).Infof("Pod %v/%v is not eligible for preemption because it has a preemptionPolicy of %v", pod.Namespace, pod.Name, v1.PreemptNever) return false } @@ -1108,8 +1107,7 @@ func NewGenericScheduler( pvcLister corelisters.PersistentVolumeClaimLister, pdbLister policylisters.PodDisruptionBudgetLister, disablePreemption bool, - percentageOfNodesToScore int32, - enableNonPreempting bool) ScheduleAlgorithm { + percentageOfNodesToScore int32) ScheduleAlgorithm { return &genericScheduler{ cache: cache, schedulingQueue: podQueue, @@ -1119,6 +1117,5 @@ func NewGenericScheduler( pdbLister: pdbLister, disablePreemption: disablePreemption, percentageOfNodesToScore: percentageOfNodesToScore, - enableNonPreempting: enableNonPreempting, } } diff --git a/pkg/scheduler/core/generic_scheduler_test.go b/pkg/scheduler/core/generic_scheduler_test.go index 30a975e5411..d33b04e4c30 100644 --- a/pkg/scheduler/core/generic_scheduler_test.go +++ b/pkg/scheduler/core/generic_scheduler_test.go @@ -817,8 +817,7 @@ func TestGenericScheduler(t *testing.T) { pvcLister, informerFactory.Policy().V1beta1().PodDisruptionBudgets().Lister(), false, - schedulerapi.DefaultPercentageOfNodesToScore, - false) + schedulerapi.DefaultPercentageOfNodesToScore) result, err := scheduler.Schedule(context.Background(), prof, framework.NewCycleState(), test.pod) if !reflect.DeepEqual(err, test.wErr) { t.Errorf("Unexpected error: %v, expected: %v", err.Error(), test.wErr) @@ -845,7 +844,7 @@ func makeScheduler(nodes []*v1.Node) *genericScheduler { internalqueue.NewSchedulingQueue(nil), emptySnapshot, nil, nil, nil, false, - schedulerapi.DefaultPercentageOfNodesToScore, false) + schedulerapi.DefaultPercentageOfNodesToScore) cache.UpdateSnapshot(s.(*genericScheduler).nodeInfoSnapshot) return s.(*genericScheduler) } @@ -1139,8 +1138,7 @@ func TestZeroRequest(t *testing.T) { nil, nil, false, - schedulerapi.DefaultPercentageOfNodesToScore, - false).(*genericScheduler) + schedulerapi.DefaultPercentageOfNodesToScore).(*genericScheduler) scheduler.nodeInfoSnapshot = snapshot ctx := context.Background() @@ -1619,8 +1617,7 @@ func TestSelectNodesForPreemption(t *testing.T) { nil, informerFactory.Policy().V1beta1().PodDisruptionBudgets().Lister(), false, - schedulerapi.DefaultPercentageOfNodesToScore, - false) + schedulerapi.DefaultPercentageOfNodesToScore) g := scheduler.(*genericScheduler) assignDefaultStartTime(test.pods) @@ -2416,8 +2413,7 @@ func TestPreempt(t *testing.T) { informerFactory.Core().V1().PersistentVolumeClaims().Lister(), informerFactory.Policy().V1beta1().PodDisruptionBudgets().Lister(), false, - schedulerapi.DefaultPercentageOfNodesToScore, - true) + schedulerapi.DefaultPercentageOfNodesToScore) state := framework.NewCycleState() // Some tests rely on PreFilter plugin to compute its CycleState. preFilterStatus := fwk.RunPreFilterPlugins(context.Background(), state, test.pod) diff --git a/pkg/scheduler/factory.go b/pkg/scheduler/factory.go index 64768883ab7..a5fe324a8e1 100644 --- a/pkg/scheduler/factory.go +++ b/pkg/scheduler/factory.go @@ -101,8 +101,6 @@ type Configurator struct { podMaxBackoffSeconds int64 - enableNonPreempting bool - profiles []schedulerapi.KubeSchedulerProfile registry framework.Registry nodeInfoSnapshot *internalcache.Snapshot @@ -204,7 +202,6 @@ func (c *Configurator) create() (*Scheduler, error) { GetPodDisruptionBudgetLister(c.informerFactory), c.disablePreemption, c.percentageOfNodesToScore, - c.enableNonPreempting, ) return &Scheduler{ diff --git a/pkg/scheduler/factory_test.go b/pkg/scheduler/factory_test.go index 5676438c9c1..39aa52a4d25 100644 --- a/pkg/scheduler/factory_test.go +++ b/pkg/scheduler/factory_test.go @@ -29,7 +29,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/clock" - utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/informers" clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/fake" @@ -38,7 +37,6 @@ import ( "k8s.io/client-go/tools/events" extenderv1 "k8s.io/kube-scheduler/extender/v1" apicore "k8s.io/kubernetes/pkg/apis/core" - kubefeatures "k8s.io/kubernetes/pkg/features" schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config" "k8s.io/kubernetes/pkg/scheduler/apis/config/scheme" frameworkplugins "k8s.io/kubernetes/pkg/scheduler/framework/plugins" @@ -471,7 +469,6 @@ func newConfigFactoryWithFrameworkRegistry( podInitialBackoffSeconds: podInitialBackoffDurationSeconds, podMaxBackoffSeconds: podMaxBackoffDurationSeconds, StopEverything: stopCh, - enableNonPreempting: utilfeature.DefaultFeatureGate.Enabled(kubefeatures.NonPreemptingPriority), registry: registry, profiles: []schedulerapi.KubeSchedulerProfile{ {SchedulerName: testSchedulerName}, diff --git a/pkg/scheduler/scheduler.go b/pkg/scheduler/scheduler.go index 11119e05798..6088891f3fc 100644 --- a/pkg/scheduler/scheduler.go +++ b/pkg/scheduler/scheduler.go @@ -28,7 +28,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/wait" - utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/informers" coreinformers "k8s.io/client-go/informers/core/v1" clientset "k8s.io/client-go/kubernetes" @@ -36,7 +35,6 @@ import ( "k8s.io/klog" podutil "k8s.io/kubernetes/pkg/api/v1/pod" "k8s.io/kubernetes/pkg/controller/volume/scheduling" - kubefeatures "k8s.io/kubernetes/pkg/features" schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config" "k8s.io/kubernetes/pkg/scheduler/apis/config/scheme" "k8s.io/kubernetes/pkg/scheduler/core" @@ -279,7 +277,6 @@ func New(client clientset.Interface, bindTimeoutSeconds: options.bindTimeoutSeconds, podInitialBackoffSeconds: options.podInitialBackoffSeconds, podMaxBackoffSeconds: options.podMaxBackoffSeconds, - enableNonPreempting: utilfeature.DefaultFeatureGate.Enabled(kubefeatures.NonPreemptingPriority), profiles: append([]schedulerapi.KubeSchedulerProfile(nil), options.profiles...), registry: registry, nodeInfoSnapshot: snapshot, diff --git a/pkg/scheduler/scheduler_test.go b/pkg/scheduler/scheduler_test.go index 482c7b008b3..9413e6819db 100644 --- a/pkg/scheduler/scheduler_test.go +++ b/pkg/scheduler/scheduler_test.go @@ -820,7 +820,6 @@ func setupTestScheduler(queuedPodStore *clientcache.FIFO, scache internalcache.C informerFactory.Policy().V1beta1().PodDisruptionBudgets().Lister(), false, schedulerapi.DefaultPercentageOfNodesToScore, - false, ) errChan := make(chan error, 1) @@ -1175,7 +1174,6 @@ func TestSchedulerBinding(t *testing.T) { nil, false, 0, - false, ) sched := Scheduler{ Algorithm: algo,