Fixed updating node labels in cluster autoscaler e2e test.
Fixed updating node labels in cluster autoscaler e2e test.
This commit is contained in:
		@@ -29,6 +29,7 @@ import (
 | 
				
			|||||||
	"k8s.io/kubernetes/pkg/api"
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	client "k8s.io/kubernetes/pkg/client/unversioned"
 | 
						client "k8s.io/kubernetes/pkg/client/unversioned"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/fields"
 | 
						"k8s.io/kubernetes/pkg/fields"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/util/sets"
 | 
				
			||||||
	"k8s.io/kubernetes/test/e2e/framework"
 | 
						"k8s.io/kubernetes/test/e2e/framework"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/golang/glog"
 | 
						"github.com/golang/glog"
 | 
				
			||||||
@@ -153,22 +154,17 @@ var _ = framework.KubeDescribe("Cluster size autoscaling [Slow]", func() {
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		removeLabels := func(nodesToClean []string) {
 | 
							removeLabels := func(nodesToClean sets.String) {
 | 
				
			||||||
			By("Removing labels from nodes")
 | 
								By("Removing labels from nodes")
 | 
				
			||||||
			for _, node := range nodesToClean {
 | 
								updateNodeLabels(c, nodesToClean, nil, labels)
 | 
				
			||||||
				updateLabelsForNode(f, node, map[string]string{}, []string{"cluster-autoscaling-test.special-node"})
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		nodes, err := GetGroupNodes(minMig)
 | 
							nodes, err := GetGroupNodes(minMig)
 | 
				
			||||||
		defer removeLabels(nodes)
 | 
					 | 
				
			||||||
		nodesMap := map[string]struct{}{}
 | 
					 | 
				
			||||||
		ExpectNoError(err)
 | 
							ExpectNoError(err)
 | 
				
			||||||
 | 
							nodesSet := sets.NewString(nodes...)
 | 
				
			||||||
 | 
							defer removeLabels(nodesSet)
 | 
				
			||||||
		By(fmt.Sprintf("Annotating nodes of the smallest MIG(%s): %v", minMig, nodes))
 | 
							By(fmt.Sprintf("Annotating nodes of the smallest MIG(%s): %v", minMig, nodes))
 | 
				
			||||||
		for _, node := range nodes {
 | 
							updateNodeLabels(c, nodesSet, labels, nil)
 | 
				
			||||||
			updateLabelsForNode(f, node, labels, nil)
 | 
					 | 
				
			||||||
			nodesMap[node] = struct{}{}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		CreateNodeSelectorPods(f, "node-selector", minSize+1, labels, false)
 | 
							CreateNodeSelectorPods(f, "node-selector", minSize+1, labels, false)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -179,14 +175,12 @@ var _ = framework.KubeDescribe("Cluster size autoscaling [Slow]", func() {
 | 
				
			|||||||
			func(size int) bool { return size >= nodeCount+1 }, scaleUpTimeout))
 | 
								func(size int) bool { return size >= nodeCount+1 }, scaleUpTimeout))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		newNodes, err := GetGroupNodes(minMig)
 | 
							newNodes, err := GetGroupNodes(minMig)
 | 
				
			||||||
		defer removeLabels(newNodes)
 | 
					 | 
				
			||||||
		ExpectNoError(err)
 | 
							ExpectNoError(err)
 | 
				
			||||||
		By(fmt.Sprintf("Setting labels for new nodes: %v", newNodes))
 | 
							newNodesSet := sets.NewString(newNodes...)
 | 
				
			||||||
		for _, node := range newNodes {
 | 
							newNodesSet.Delete(nodes...)
 | 
				
			||||||
			if _, old := nodesMap[node]; !old {
 | 
							defer removeLabels(newNodesSet)
 | 
				
			||||||
				updateLabelsForNode(f, node, labels, nil)
 | 
							By(fmt.Sprintf("Setting labels for new nodes: %v", newNodesSet.List()))
 | 
				
			||||||
			}
 | 
							updateNodeLabels(c, newNodesSet, labels, nil)
 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		framework.ExpectNoError(WaitForClusterSizeFunc(f.Client,
 | 
							framework.ExpectNoError(WaitForClusterSizeFunc(f.Client,
 | 
				
			||||||
			func(size int) bool { return size >= nodeCount+1 }, scaleUpTimeout))
 | 
								func(size int) bool { return size >= nodeCount+1 }, scaleUpTimeout))
 | 
				
			||||||
@@ -463,17 +457,3 @@ func setMigSizes(sizes map[string]int) {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
func updateLabelsForNode(f *framework.Framework, node string, addLabels map[string]string, rmLabels []string) {
 | 
					 | 
				
			||||||
	n, err := f.Client.Nodes().Get(node)
 | 
					 | 
				
			||||||
	ExpectNoError(err)
 | 
					 | 
				
			||||||
	for _, label := range rmLabels {
 | 
					 | 
				
			||||||
		delete(n.Labels, label)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	for label, value := range addLabels {
 | 
					 | 
				
			||||||
		n.Labels[label] = value
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	_, err = f.Client.Nodes().Update(n)
 | 
					 | 
				
			||||||
	ExpectNoError(err)
 | 
					 | 
				
			||||||
	By(fmt.Sprintf("Labels successfully updated for node %s", node))
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -114,7 +114,7 @@ func updateNodeLabels(c *client.Client, nodeNames sets.String, toAdd, toRemove m
 | 
				
			|||||||
					delete(node.ObjectMeta.Labels, k)
 | 
										delete(node.ObjectMeta.Labels, k)
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			_, err := c.Nodes().Update(node)
 | 
								_, err = c.Nodes().Update(node)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				framework.Logf("Error updating node %s: %v", nodeName, err)
 | 
									framework.Logf("Error updating node %s: %v", nodeName, err)
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user