Add e2e test for DaemonSet node selector updates
This commit is contained in:
		@@ -143,7 +143,7 @@ var _ = framework.KubeDescribe("Daemon set [Serial]", func() {
 | 
				
			|||||||
		err = wait.Poll(dsRetryPeriod, dsRetryTimeout, checkRunningOnNoNodes(f, complexLabel))
 | 
							err = wait.Poll(dsRetryPeriod, dsRetryTimeout, checkRunningOnNoNodes(f, complexLabel))
 | 
				
			||||||
		Expect(err).NotTo(HaveOccurred(), "error waiting for daemon pods to be running on no nodes")
 | 
							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)
 | 
							nodeList := framework.GetReadySchedulableNodesOrDie(f.ClientSet)
 | 
				
			||||||
		Expect(len(nodeList.Items)).To(BeNumerically(">", 0))
 | 
							Expect(len(nodeList.Items)).To(BeNumerically(">", 0))
 | 
				
			||||||
		newNode, err := setDaemonSetNodeLabels(c, nodeList.Items[0].Name, nodeSelector)
 | 
							newNode, err := setDaemonSetNodeLabels(c, nodeList.Items[0].Name, nodeSelector)
 | 
				
			||||||
@@ -155,11 +155,24 @@ var _ = framework.KubeDescribe("Daemon set [Serial]", func() {
 | 
				
			|||||||
		err = checkDaemonStatus(f, dsName)
 | 
							err = checkDaemonStatus(f, dsName)
 | 
				
			||||||
		Expect(err).NotTo(HaveOccurred())
 | 
							Expect(err).NotTo(HaveOccurred())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		By("remove the node selector and wait for daemons to be unscheduled")
 | 
							By("Update the node label to green, and wait for daemons to be unscheduled")
 | 
				
			||||||
		_, err = setDaemonSetNodeLabels(c, nodeList.Items[0].Name, map[string]string{})
 | 
							nodeSelector[daemonsetColorLabel] = "green"
 | 
				
			||||||
 | 
							greenNode, err := setDaemonSetNodeLabels(c, nodeList.Items[0].Name, nodeSelector)
 | 
				
			||||||
		Expect(err).NotTo(HaveOccurred(), "error removing labels on node")
 | 
							Expect(err).NotTo(HaveOccurred(), "error removing labels on node")
 | 
				
			||||||
		Expect(wait.Poll(dsRetryPeriod, dsRetryTimeout, checkRunningOnNoNodes(f, complexLabel))).
 | 
							Expect(wait.Poll(dsRetryPeriod, dsRetryTimeout, checkRunningOnNoNodes(f, complexLabel))).
 | 
				
			||||||
			NotTo(HaveOccurred(), "error waiting for daemon pod to not be running on nodes")
 | 
								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() {
 | 
						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))
 | 
							err = wait.Poll(dsRetryPeriod, dsRetryTimeout, checkRunningOnNoNodes(f, complexLabel))
 | 
				
			||||||
		Expect(err).NotTo(HaveOccurred(), "error waiting for daemon pods to be running on no nodes")
 | 
							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)
 | 
							nodeList := framework.GetReadySchedulableNodesOrDie(f.ClientSet)
 | 
				
			||||||
		Expect(len(nodeList.Items)).To(BeNumerically(">", 0))
 | 
							Expect(len(nodeList.Items)).To(BeNumerically(">", 0))
 | 
				
			||||||
		newNode, err := setDaemonSetNodeLabels(c, nodeList.Items[0].Name, nodeSelector)
 | 
							newNode, err := setDaemonSetNodeLabels(c, nodeList.Items[0].Name, nodeSelector)
 | 
				
			||||||
@@ -203,7 +216,7 @@ var _ = framework.KubeDescribe("Daemon set [Serial]", func() {
 | 
				
			|||||||
		err = checkDaemonStatus(f, dsName)
 | 
							err = checkDaemonStatus(f, dsName)
 | 
				
			||||||
		Expect(err).NotTo(HaveOccurred())
 | 
							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{})
 | 
							_, err = setDaemonSetNodeLabels(c, nodeList.Items[0].Name, map[string]string{})
 | 
				
			||||||
		Expect(err).NotTo(HaveOccurred(), "error removing labels on node")
 | 
							Expect(err).NotTo(HaveOccurred(), "error removing labels on node")
 | 
				
			||||||
		Expect(wait.Poll(dsRetryPeriod, dsRetryTimeout, checkRunningOnNoNodes(f, complexLabel))).
 | 
							Expect(wait.Poll(dsRetryPeriod, dsRetryTimeout, checkRunningOnNoNodes(f, complexLabel))).
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user