From 13aae61789bfe3bfcca5e85dd5aefc04581fa410 Mon Sep 17 00:00:00 2001 From: Kenichi Omichi Date: Tue, 23 Jun 2020 23:52:31 +0000 Subject: [PATCH] Add isNodeSchedulableWithoutTainted() For reducing usage of system.DeprecatedMightBeMasterNode(), this adds isNodeSchedulableWithoutTainted(). --- test/e2e/framework/node/resource.go | 10 +++++++++- test/e2e/framework/node/wait.go | 3 +-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/test/e2e/framework/node/resource.go b/test/e2e/framework/node/resource.go index 2829f14b09c..5860d02b78b 100644 --- a/test/e2e/framework/node/resource.go +++ b/test/e2e/framework/node/resource.go @@ -374,7 +374,7 @@ func GetMasterAndWorkerNodes(c clientset.Interface) (sets.String, *v1.NodeList, for _, n := range all.Items { if system.DeprecatedMightBeMasterNode(n.Name) { masters.Insert(n.Name) - } else if IsNodeSchedulable(&n) && isNodeUntainted(&n) { + } else if isNodeSchedulableWithoutTaints(&n) { nodes.Items = append(nodes.Items, n) } } @@ -478,6 +478,14 @@ func IsNodeReady(node *v1.Node) bool { return nodeReady && networkReady } +// isNodeSchedulableWithoutTaints returns true if: +// 1) doesn't have "unschedulable" field set +// 2) it also returns true from IsNodeReady +// 3) it also returns true from isNodeUntainted +func isNodeSchedulableWithoutTaints(node *v1.Node) bool { + return IsNodeSchedulable(node) && isNodeUntainted(node) +} + // hasNonblockingTaint returns true if the node contains at least // one taint with a key matching the regexp. func hasNonblockingTaint(node *v1.Node, nonblockingTaints string) bool { diff --git a/test/e2e/framework/node/wait.go b/test/e2e/framework/node/wait.go index 760e56af282..9cad4dc7120 100644 --- a/test/e2e/framework/node/wait.go +++ b/test/e2e/framework/node/wait.go @@ -28,7 +28,6 @@ import ( "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" e2elog "k8s.io/kubernetes/test/e2e/framework/log" - "k8s.io/kubernetes/test/e2e/system" testutils "k8s.io/kubernetes/test/utils" ) @@ -84,7 +83,7 @@ func WaitForTotalHealthy(c clientset.Interface, timeout time.Duration) error { } missingPodsPerNode = make(map[string][]string) for _, node := range nodes.Items { - if !system.DeprecatedMightBeMasterNode(node.Name) { + if isNodeSchedulableWithoutTaints(&node) { for _, requiredPod := range requiredPerNodePods { foundRequired := false for _, presentPod := range systemPodsPerNode[node.Name] {