make kubectl respect taint effect NoExecute
This commit is contained in:
		| @@ -43,7 +43,7 @@ func ParseTaint(st string) (v1.Taint, error) { | |||||||
| 		return taint, fmt.Errorf("invalid taint spec: %v, %s", st, strings.Join(errs, "; ")) | 		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) | 		return taint, fmt.Errorf("invalid taint spec: %v, unsupported taint effect", st) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|   | |||||||
| @@ -47,6 +47,10 @@ func TestTaintsVar(t *testing.T) { | |||||||
| 				{Key: "bing", Value: "bang", Effect: api.TaintEffectPreferNoSchedule}, | 				{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 { | 	for i, c := range cases { | ||||||
|   | |||||||
| @@ -1467,6 +1467,24 @@ var _ = framework.KubeDescribe("Kubectl client", func() { | |||||||
| 			} | 			} | ||||||
| 			checkOutput(output, requiredStrings) | 			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") | 			By("removing all taints that have the same key " + testTaint.Key + " of the node") | ||||||
| 			runKubectlRetryOrDie("taint", "nodes", nodeName, testTaint.Key+"-") | 			runKubectlRetryOrDie("taint", "nodes", nodeName, testTaint.Key+"-") | ||||||
| 			By("verifying the node doesn't have the taints that have the same key " + testTaint.Key) | 			By("verifying the node doesn't have the taints that have the same key " + testTaint.Key) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Kevin
					Kevin