diff --git a/test/e2e/framework/node/BUILD b/test/e2e/framework/node/BUILD index e4d3dba0066..fe860e6d64e 100644 --- a/test/e2e/framework/node/BUILD +++ b/test/e2e/framework/node/BUILD @@ -10,7 +10,6 @@ go_library( importpath = "k8s.io/kubernetes/test/e2e/framework/node", visibility = ["//visibility:public"], deps = [ - "//pkg/apis/core/v1/helper:go_default_library", "//pkg/controller/nodelifecycle:go_default_library", "//pkg/scheduler/nodeinfo:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", diff --git a/test/e2e/framework/node/resource.go b/test/e2e/framework/node/resource.go index bc0256779dc..58548a75934 100644 --- a/test/e2e/framework/node/resource.go +++ b/test/e2e/framework/node/resource.go @@ -28,7 +28,6 @@ import ( "k8s.io/apimachinery/pkg/util/rand" "k8s.io/apimachinery/pkg/util/sets" clientset "k8s.io/client-go/kubernetes" - v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" nodectlr "k8s.io/kubernetes/pkg/controller/nodelifecycle" schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo" e2elog "k8s.io/kubernetes/test/e2e/framework/log" @@ -404,9 +403,34 @@ func isNodeUntaintedWithNonblocking(node *v1.Node, nonblockingTaints string) boo return false } - return v1helper.TolerationsTolerateTaintsWithFilter(fakePod.Spec.Tolerations, taints, func(t *v1.Taint) bool { - return t.Effect == v1.TaintEffectNoExecute || t.Effect == v1.TaintEffectNoSchedule - }) + return toleratesTaintsWithNoScheduleNoExecuteEffects(taints, fakePod.Spec.Tolerations) +} + +func toleratesTaintsWithNoScheduleNoExecuteEffects(taints []v1.Taint, tolerations []v1.Toleration) bool { + filteredTaints := []v1.Taint{} + for _, taint := range taints { + if taint.Effect == v1.TaintEffectNoExecute || taint.Effect == v1.TaintEffectNoSchedule { + filteredTaints = append(filteredTaints, taint) + } + } + + toleratesTaint := func(taint v1.Taint) bool { + for _, toleration := range tolerations { + if toleration.ToleratesTaint(&taint) { + return true + } + } + + return false + } + + for _, taint := range filteredTaints { + if !toleratesTaint(taint) { + return false + } + } + + return true } // IsNodeSchedulable returns true if: