diff --git a/pkg/util/taints/taints.go b/pkg/util/taints/taints.go index 5c0e8c17899..0f8513f9ff1 100644 --- a/pkg/util/taints/taints.go +++ b/pkg/util/taints/taints.go @@ -43,7 +43,7 @@ func ParseTaint(st string) (v1.Taint, error) { return taint, fmt.Errorf("invalid taint spec: %v, %s", st, strings.Join(errs, "; ")) } - if effect != v1.TaintEffectNoSchedule && effect != v1.TaintEffectPreferNoSchedule { + if effect != v1.TaintEffectNoSchedule && effect != v1.TaintEffectPreferNoSchedule && effect != v1.TaintEffectNoExecute { return taint, fmt.Errorf("invalid taint spec: %v, unsupported taint effect", st) } diff --git a/pkg/util/taints/taints_test.go b/pkg/util/taints/taints_test.go index 51edcff1957..7ea7d791cae 100644 --- a/pkg/util/taints/taints_test.go +++ b/pkg/util/taints/taints_test.go @@ -47,6 +47,10 @@ func TestTaintsVar(t *testing.T) { {Key: "bing", Value: "bang", Effect: api.TaintEffectPreferNoSchedule}, }, }, + { + f: "--t=dedicated-for=user1:NoExecute", + t: []api.Taint{{Key: "dedicated-for", Value: "user1", Effect: "NoExecute"}}, + }, } for i, c := range cases { diff --git a/test/e2e/kubectl.go b/test/e2e/kubectl.go index f8d565eb80f..c94ab6f3552 100644 --- a/test/e2e/kubectl.go +++ b/test/e2e/kubectl.go @@ -1467,6 +1467,24 @@ var _ = framework.KubeDescribe("Kubectl client", func() { } checkOutput(output, requiredStrings) + noExecuteTaint := v1.Taint{ + Key: testTaint.Key, + Value: "testing-taint-value-no-execute", + Effect: v1.TaintEffectNoExecute, + } + By("adding NoExecute taint " + noExecuteTaint.ToString() + " to the node") + runKubectlRetryOrDie("taint", "nodes", nodeName, noExecuteTaint.ToString()) + defer framework.RemoveTaintOffNode(f.ClientSet, nodeName, noExecuteTaint) + + By("verifying the node has the taint " + noExecuteTaint.ToString()) + output = runKubectlRetryOrDie("describe", "node", nodeName) + requiredStrings = [][]string{ + {"Name:", nodeName}, + {"Taints:"}, + {noExecuteTaint.ToString()}, + } + checkOutput(output, requiredStrings) + By("removing all taints that have the same key " + testTaint.Key + " of the node") runKubectlRetryOrDie("taint", "nodes", nodeName, testTaint.Key+"-") By("verifying the node doesn't have the taints that have the same key " + testTaint.Key)