Merge pull request #43419 from janetkuo/ds-e2e-node-selector-updates
Automatic merge from submit-queue (batch tested with PRs 43481, 43419, 42741, 43480) Add e2e test for DaemonSet node selector updates @kargakis @lukaszo @kubernetes/sig-apps-bugs
This commit is contained in:
		| @@ -143,7 +143,7 @@ var _ = framework.KubeDescribe("Daemon set [Serial]", func() { | ||||
| 		err = wait.Poll(dsRetryPeriod, dsRetryTimeout, checkRunningOnNoNodes(f, complexLabel)) | ||||
| 		Expect(err).NotTo(HaveOccurred(), "error waiting for daemon pods to be running on no nodes") | ||||
|  | ||||
| 		By("Change label of node, check that daemon pod is launched.") | ||||
| 		By("Change node label to blue, check that daemon pod is launched.") | ||||
| 		nodeList := framework.GetReadySchedulableNodesOrDie(f.ClientSet) | ||||
| 		Expect(len(nodeList.Items)).To(BeNumerically(">", 0)) | ||||
| 		newNode, err := setDaemonSetNodeLabels(c, nodeList.Items[0].Name, nodeSelector) | ||||
| @@ -155,11 +155,24 @@ var _ = framework.KubeDescribe("Daemon set [Serial]", func() { | ||||
| 		err = checkDaemonStatus(f, dsName) | ||||
| 		Expect(err).NotTo(HaveOccurred()) | ||||
|  | ||||
| 		By("remove the node selector and wait for daemons to be unscheduled") | ||||
| 		_, err = setDaemonSetNodeLabels(c, nodeList.Items[0].Name, map[string]string{}) | ||||
| 		By("Update the node label to green, and wait for daemons to be unscheduled") | ||||
| 		nodeSelector[daemonsetColorLabel] = "green" | ||||
| 		greenNode, err := setDaemonSetNodeLabels(c, nodeList.Items[0].Name, nodeSelector) | ||||
| 		Expect(err).NotTo(HaveOccurred(), "error removing labels on node") | ||||
| 		Expect(wait.Poll(dsRetryPeriod, dsRetryTimeout, checkRunningOnNoNodes(f, complexLabel))). | ||||
| 			NotTo(HaveOccurred(), "error waiting for daemon pod to not be running on nodes") | ||||
|  | ||||
| 		By("Update DaemonSet node selector to green, and change its update strategy to RollingUpdate") | ||||
| 		patch := fmt.Sprintf(`{"spec":{"template":{"spec":{"nodeSelector":{"%s":"%s"}}},"updateStrategy":{"type":"RollingUpdate"}}}`, | ||||
| 			daemonsetColorLabel, greenNode.Labels[daemonsetColorLabel]) | ||||
| 		ds, err = c.Extensions().DaemonSets(ns).Patch(dsName, types.StrategicMergePatchType, []byte(patch)) | ||||
| 		Expect(err).NotTo(HaveOccurred(), "error patching daemon set") | ||||
| 		daemonSetLabels, _ = separateDaemonSetNodeLabels(greenNode.Labels) | ||||
| 		Expect(len(daemonSetLabels)).To(Equal(1)) | ||||
| 		err = wait.Poll(dsRetryPeriod, dsRetryTimeout, checkDaemonPodOnNodes(f, complexLabel, []string{greenNode.Name})) | ||||
| 		Expect(err).NotTo(HaveOccurred(), "error waiting for daemon pods to be running on new nodes") | ||||
| 		err = checkDaemonStatus(f, dsName) | ||||
| 		Expect(err).NotTo(HaveOccurred()) | ||||
| 	}) | ||||
|  | ||||
| 	It("should run and stop complex daemon with node affinity", func() { | ||||
| @@ -191,7 +204,7 @@ var _ = framework.KubeDescribe("Daemon set [Serial]", func() { | ||||
| 		err = wait.Poll(dsRetryPeriod, dsRetryTimeout, checkRunningOnNoNodes(f, complexLabel)) | ||||
| 		Expect(err).NotTo(HaveOccurred(), "error waiting for daemon pods to be running on no nodes") | ||||
|  | ||||
| 		By("Change label of node, check that daemon pod is launched.") | ||||
| 		By("Change node label to blue, check that daemon pod is launched.") | ||||
| 		nodeList := framework.GetReadySchedulableNodesOrDie(f.ClientSet) | ||||
| 		Expect(len(nodeList.Items)).To(BeNumerically(">", 0)) | ||||
| 		newNode, err := setDaemonSetNodeLabels(c, nodeList.Items[0].Name, nodeSelector) | ||||
| @@ -203,7 +216,7 @@ var _ = framework.KubeDescribe("Daemon set [Serial]", func() { | ||||
| 		err = checkDaemonStatus(f, dsName) | ||||
| 		Expect(err).NotTo(HaveOccurred()) | ||||
|  | ||||
| 		By("remove the node selector and wait for daemons to be unscheduled") | ||||
| 		By("Remove the node label and wait for daemons to be unscheduled") | ||||
| 		_, err = setDaemonSetNodeLabels(c, nodeList.Items[0].Name, map[string]string{}) | ||||
| 		Expect(err).NotTo(HaveOccurred(), "error removing labels on node") | ||||
| 		Expect(wait.Poll(dsRetryPeriod, dsRetryTimeout, checkRunningOnNoNodes(f, complexLabel))). | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Kubernetes Submit Queue
					Kubernetes Submit Queue