Skip to content

Commit 6532b40

Browse files
committed
move function RemoveTaintOffNode in test/e2e/framework/util.go to subpackage node
1 parent 172553b commit 6532b40

File tree

9 files changed

+54
-33
lines changed

9 files changed

+54
-33
lines changed

test/e2e/framework/node/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ go_library(
1010
importpath = "k8s.io/kubernetes/test/e2e/framework/node",
1111
visibility = ["//visibility:public"],
1212
deps = [
13+
"//pkg/controller:go_default_library",
1314
"//pkg/scheduler/framework/v1alpha1:go_default_library",
1415
"//staging/src/k8s.io/api/core/v1:go_default_library",
1516
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
@@ -22,6 +23,7 @@ go_library(
2223
"//test/e2e/system:go_default_library",
2324
"//test/utils:go_default_library",
2425
"//test/utils/image:go_default_library",
26+
"//vendor/github.com/onsi/ginkgo:go_default_library",
2527
"//vendor/github.com/onsi/gomega:go_default_library",
2628
"//vendor/k8s.io/utils/pointer:go_default_library",
2729
],

test/e2e/framework/node/resource.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,15 @@ import (
2323
"strings"
2424
"time"
2525

26+
"github.com/onsi/ginkgo"
2627
"github.com/onsi/gomega"
2728

2829
v1 "k8s.io/api/core/v1"
2930
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3031
"k8s.io/apimachinery/pkg/util/rand"
3132
"k8s.io/apimachinery/pkg/util/sets"
3233
clientset "k8s.io/client-go/kubernetes"
34+
"k8s.io/kubernetes/pkg/controller"
3335
schedfwk "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
3436
e2elog "k8s.io/kubernetes/test/e2e/framework/log"
3537
"k8s.io/kubernetes/test/e2e/system"
@@ -556,3 +558,33 @@ func CreatePodsPerNodeForSimpleApp(c clientset.Interface, namespace, appName str
556558
}
557559
return podLabels
558560
}
561+
562+
// RemoveTaintOffNode removes the given taint from the given node.
563+
func RemoveTaintOffNode(c clientset.Interface, nodeName string, taint v1.Taint) {
564+
err := controller.RemoveTaintOffNode(c, nodeName, nil, &taint)
565+
566+
// TODO use wrapper methods in expect.go after removing core e2e dependency on node
567+
gomega.ExpectWithOffset(2, err).NotTo(gomega.HaveOccurred())
568+
verifyThatTaintIsGone(c, nodeName, &taint)
569+
}
570+
571+
func verifyThatTaintIsGone(c clientset.Interface, nodeName string, taint *v1.Taint) {
572+
ginkgo.By("verifying the node doesn't have the taint " + taint.ToString())
573+
nodeUpdated, err := c.CoreV1().Nodes().Get(context.TODO(), nodeName, metav1.GetOptions{})
574+
575+
// TODO use wrapper methods in expect.go after removing core e2e dependency on node
576+
gomega.ExpectWithOffset(2, err).NotTo(gomega.HaveOccurred())
577+
if taintExists(nodeUpdated.Spec.Taints, taint) {
578+
e2elog.Failf("Failed removing taint " + taint.ToString() + " of the node " + nodeName)
579+
}
580+
}
581+
582+
// taintExists checks if the given taint exists in list of taints. Returns true if exists false otherwise.
583+
func taintExists(taints []v1.Taint, taintToFind *v1.Taint) bool {
584+
for _, taint := range taints {
585+
if taint.MatchTaint(taintToFind) {
586+
return true
587+
}
588+
}
589+
return false
590+
}

test/e2e/framework/util.go

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -978,12 +978,6 @@ func ExpectNodeHasLabel(c clientset.Interface, nodeName string, labelKey string,
978978
ExpectEqual(node.Labels[labelKey], labelValue)
979979
}
980980

981-
// RemoveTaintOffNode removes the given taint from the given node.
982-
func RemoveTaintOffNode(c clientset.Interface, nodeName string, taint v1.Taint) {
983-
ExpectNoError(controller.RemoveTaintOffNode(c, nodeName, nil, &taint))
984-
verifyThatTaintIsGone(c, nodeName, &taint)
985-
}
986-
987981
// AddOrUpdateTaintOnNode adds the given taint to the given node or updates taint.
988982
func AddOrUpdateTaintOnNode(c clientset.Interface, nodeName string, taint v1.Taint) {
989983
ExpectNoError(controller.AddOrUpdateTaintOnNode(c, nodeName, &taint))
@@ -999,15 +993,6 @@ func RemoveLabelOffNode(c clientset.Interface, nodeName string, labelKey string)
999993
ExpectNoError(testutils.VerifyLabelsRemoved(c, nodeName, []string{labelKey}))
1000994
}
1001995

1002-
func verifyThatTaintIsGone(c clientset.Interface, nodeName string, taint *v1.Taint) {
1003-
ginkgo.By("verifying the node doesn't have the taint " + taint.ToString())
1004-
nodeUpdated, err := c.CoreV1().Nodes().Get(context.TODO(), nodeName, metav1.GetOptions{})
1005-
ExpectNoError(err)
1006-
if taintExists(nodeUpdated.Spec.Taints, taint) {
1007-
Failf("Failed removing taint " + taint.ToString() + " of the node " + nodeName)
1008-
}
1009-
}
1010-
1011996
// ExpectNodeHasTaint expects that the node has the given taint.
1012997
func ExpectNodeHasTaint(c clientset.Interface, nodeName string, taint *v1.Taint) {
1013998
ginkgo.By("verifying the node has the taint " + taint.ToString())

test/e2e/kubectl/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ go_library(
3535
"//test/e2e/framework/auth:go_default_library",
3636
"//test/e2e/framework/endpoints:go_default_library",
3737
"//test/e2e/framework/kubectl:go_default_library",
38+
"//test/e2e/framework/node:go_default_library",
3839
"//test/e2e/framework/pod:go_default_library",
3940
"//test/e2e/framework/service:go_default_library",
4041
"//test/e2e/framework/testfiles:go_default_library",

test/e2e/kubectl/kubectl.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ import (
6565
e2eauth "k8s.io/kubernetes/test/e2e/framework/auth"
6666
e2eendpoints "k8s.io/kubernetes/test/e2e/framework/endpoints"
6767
e2ekubectl "k8s.io/kubernetes/test/e2e/framework/kubectl"
68+
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
6869
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
6970
e2eservice "k8s.io/kubernetes/test/e2e/framework/service"
7071
e2etestfiles "k8s.io/kubernetes/test/e2e/framework/testfiles"
@@ -1604,7 +1605,7 @@ metadata:
16041605

16051606
ginkgo.By("adding the taint " + testTaint.ToString() + " to a node")
16061607
runKubectlRetryOrDie(ns, "taint", "nodes", nodeName, testTaint.ToString())
1607-
defer framework.RemoveTaintOffNode(f.ClientSet, nodeName, testTaint)
1608+
defer e2enode.RemoveTaintOffNode(f.ClientSet, nodeName, testTaint)
16081609

16091610
ginkgo.By("verifying the node has the taint " + testTaint.ToString())
16101611
output := runKubectlRetryOrDie(ns, "describe", "node", nodeName)
@@ -1635,7 +1636,7 @@ metadata:
16351636

16361637
ginkgo.By("adding the taint " + testTaint.ToString() + " to a node")
16371638
runKubectlRetryOrDie(ns, "taint", "nodes", nodeName, testTaint.ToString())
1638-
defer framework.RemoveTaintOffNode(f.ClientSet, nodeName, testTaint)
1639+
defer e2enode.RemoveTaintOffNode(f.ClientSet, nodeName, testTaint)
16391640

16401641
ginkgo.By("verifying the node has the taint " + testTaint.ToString())
16411642
output := runKubectlRetryOrDie(ns, "describe", "node", nodeName)
@@ -1653,7 +1654,7 @@ metadata:
16531654
}
16541655
ginkgo.By("adding another taint " + newTestTaint.ToString() + " to the node")
16551656
runKubectlRetryOrDie(ns, "taint", "nodes", nodeName, newTestTaint.ToString())
1656-
defer framework.RemoveTaintOffNode(f.ClientSet, nodeName, newTestTaint)
1657+
defer e2enode.RemoveTaintOffNode(f.ClientSet, nodeName, newTestTaint)
16571658

16581659
ginkgo.By("verifying the node has the taint " + newTestTaint.ToString())
16591660
output = runKubectlRetryOrDie(ns, "describe", "node", nodeName)
@@ -1671,7 +1672,7 @@ metadata:
16711672
}
16721673
ginkgo.By("adding NoExecute taint " + noExecuteTaint.ToString() + " to the node")
16731674
runKubectlRetryOrDie(ns, "taint", "nodes", nodeName, noExecuteTaint.ToString())
1674-
defer framework.RemoveTaintOffNode(f.ClientSet, nodeName, noExecuteTaint)
1675+
defer e2enode.RemoveTaintOffNode(f.ClientSet, nodeName, noExecuteTaint)
16751676

16761677
ginkgo.By("verifying the node has the taint " + noExecuteTaint.ToString())
16771678
output = runKubectlRetryOrDie(ns, "describe", "node", nodeName)

test/e2e/node/runtimeclass.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ var _ = ginkgo.Describe("[sig-node] RuntimeClass", func() {
9292
}
9393
framework.AddOrUpdateTaintOnNode(f.ClientSet, nodeName, taint)
9494
framework.ExpectNodeHasTaint(f.ClientSet, nodeName, &taint)
95-
defer framework.RemoveTaintOffNode(f.ClientSet, nodeName, taint)
95+
defer e2enode.RemoveTaintOffNode(f.ClientSet, nodeName, taint)
9696

9797
ginkgo.By("Trying to create runtimeclass and pod")
9898
runtimeClass := newRuntimeClass(f.Namespace.Name, "non-conflict-runtimeclass", framework.TestContext.ContainerRuntime)

test/e2e/node/taints.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ var _ = SIGDescribe("NoExecuteTaintManager Single Pod [Serial]", func() {
190190
testTaint := getTestTaint()
191191
framework.AddOrUpdateTaintOnNode(cs, nodeName, testTaint)
192192
framework.ExpectNodeHasTaint(cs, nodeName, &testTaint)
193-
defer framework.RemoveTaintOffNode(cs, nodeName, testTaint)
193+
defer e2enode.RemoveTaintOffNode(cs, nodeName, testTaint)
194194

195195
// Wait a bit
196196
ginkgo.By("Waiting for Pod to be deleted")
@@ -222,7 +222,7 @@ var _ = SIGDescribe("NoExecuteTaintManager Single Pod [Serial]", func() {
222222
testTaint := getTestTaint()
223223
framework.AddOrUpdateTaintOnNode(cs, nodeName, testTaint)
224224
framework.ExpectNodeHasTaint(cs, nodeName, &testTaint)
225-
defer framework.RemoveTaintOffNode(cs, nodeName, testTaint)
225+
defer e2enode.RemoveTaintOffNode(cs, nodeName, testTaint)
226226

227227
// Wait a bit
228228
ginkgo.By("Waiting for Pod to be deleted")
@@ -255,7 +255,7 @@ var _ = SIGDescribe("NoExecuteTaintManager Single Pod [Serial]", func() {
255255
testTaint := getTestTaint()
256256
framework.AddOrUpdateTaintOnNode(cs, nodeName, testTaint)
257257
framework.ExpectNodeHasTaint(cs, nodeName, &testTaint)
258-
defer framework.RemoveTaintOffNode(cs, nodeName, testTaint)
258+
defer e2enode.RemoveTaintOffNode(cs, nodeName, testTaint)
259259

260260
// Wait a bit
261261
ginkgo.By("Waiting to see if a Pod won't be deleted")
@@ -305,7 +305,7 @@ var _ = SIGDescribe("NoExecuteTaintManager Single Pod [Serial]", func() {
305305
taintRemoved := false
306306
defer func() {
307307
if !taintRemoved {
308-
framework.RemoveTaintOffNode(cs, nodeName, testTaint)
308+
e2enode.RemoveTaintOffNode(cs, nodeName, testTaint)
309309
}
310310
}()
311311

@@ -322,7 +322,7 @@ var _ = SIGDescribe("NoExecuteTaintManager Single Pod [Serial]", func() {
322322

323323
// 4. Remove the taint
324324
framework.Logf("Removing taint from Node")
325-
framework.RemoveTaintOffNode(cs, nodeName, testTaint)
325+
e2enode.RemoveTaintOffNode(cs, nodeName, testTaint)
326326
taintRemoved = true
327327

328328
// 5. See if Pod won't be evicted.
@@ -376,11 +376,11 @@ var _ = SIGDescribe("NoExecuteTaintManager Multiple Pods [Serial]", func() {
376376
testTaint := getTestTaint()
377377
framework.AddOrUpdateTaintOnNode(cs, nodeName1, testTaint)
378378
framework.ExpectNodeHasTaint(cs, nodeName1, &testTaint)
379-
defer framework.RemoveTaintOffNode(cs, nodeName1, testTaint)
379+
defer e2enode.RemoveTaintOffNode(cs, nodeName1, testTaint)
380380
if nodeName2 != nodeName1 {
381381
framework.AddOrUpdateTaintOnNode(cs, nodeName2, testTaint)
382382
framework.ExpectNodeHasTaint(cs, nodeName2, &testTaint)
383-
defer framework.RemoveTaintOffNode(cs, nodeName2, testTaint)
383+
defer e2enode.RemoveTaintOffNode(cs, nodeName2, testTaint)
384384
}
385385

386386
// Wait a bit
@@ -449,7 +449,7 @@ var _ = SIGDescribe("NoExecuteTaintManager Multiple Pods [Serial]", func() {
449449
testTaint := getTestTaint()
450450
framework.AddOrUpdateTaintOnNode(cs, nodeName, testTaint)
451451
framework.ExpectNodeHasTaint(cs, nodeName, &testTaint)
452-
defer framework.RemoveTaintOffNode(cs, nodeName, testTaint)
452+
defer e2enode.RemoveTaintOffNode(cs, nodeName, testTaint)
453453

454454
// 3. Wait to see if both pods get evicted in between [5, 25] seconds
455455
ginkgo.By("Waiting for Pod1 and Pod2 to be deleted")

test/e2e/scheduling/predicates.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -587,7 +587,7 @@ var _ = SIGDescribe("SchedulerPredicates [Serial]", func() {
587587
}
588588
framework.AddOrUpdateTaintOnNode(cs, nodeName, testTaint)
589589
framework.ExpectNodeHasTaint(cs, nodeName, &testTaint)
590-
defer framework.RemoveTaintOffNode(cs, nodeName, testTaint)
590+
defer e2enode.RemoveTaintOffNode(cs, nodeName, testTaint)
591591

592592
ginkgo.By("Trying to apply a random label on the found node.")
593593
labelKey := fmt.Sprintf("kubernetes.io/e2e-label-key-%s", string(uuid.NewUUID()))
@@ -630,7 +630,7 @@ var _ = SIGDescribe("SchedulerPredicates [Serial]", func() {
630630
}
631631
framework.AddOrUpdateTaintOnNode(cs, nodeName, testTaint)
632632
framework.ExpectNodeHasTaint(cs, nodeName, &testTaint)
633-
defer framework.RemoveTaintOffNode(cs, nodeName, testTaint)
633+
defer e2enode.RemoveTaintOffNode(cs, nodeName, testTaint)
634634

635635
ginkgo.By("Trying to apply a random label on the found node.")
636636
labelKey := fmt.Sprintf("kubernetes.io/e2e-label-key-%s", string(uuid.NewUUID()))
@@ -904,7 +904,7 @@ func getRequestedStorageEphemeralStorage(pod v1.Pod) int64 {
904904
// from the given node upon invocation.
905905
func removeTaintFromNodeAction(cs clientset.Interface, nodeName string, testTaint v1.Taint) Action {
906906
return func() error {
907-
framework.RemoveTaintOffNode(cs, nodeName, testTaint)
907+
e2enode.RemoveTaintOffNode(cs, nodeName, testTaint)
908908
return nil
909909
}
910910
}

test/e2e/scheduling/priorities.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,14 +314,14 @@ var _ = SIGDescribe("SchedulerPriorities [Serial]", func() {
314314
for i := 0; i < 10; i++ {
315315
testTaint := addRandomTaintToNode(cs, nodeName)
316316
tolerations = append(tolerations, v1.Toleration{Key: testTaint.Key, Value: testTaint.Value, Effect: testTaint.Effect})
317-
defer framework.RemoveTaintOffNode(cs, nodeName, *testTaint)
317+
defer e2enode.RemoveTaintOffNode(cs, nodeName, *testTaint)
318318
}
319319
ginkgo.By("Adding 10 intolerable taints to all other nodes")
320320
for i := 1; i < len(nodeList.Items); i++ {
321321
node := nodeList.Items[i]
322322
for i := 0; i < 10; i++ {
323323
testTaint := addRandomTaintToNode(cs, node.Name)
324-
defer framework.RemoveTaintOffNode(cs, node.Name, *testTaint)
324+
defer e2enode.RemoveTaintOffNode(cs, node.Name, *testTaint)
325325
}
326326
}
327327

0 commit comments

Comments
 (0)