Skip to content

Commit

Permalink
Merge pull request #1184 from ricky-rav/dev_az_node_informer_upstream…
Browse files Browse the repository at this point in the history
…_master

Bug 2040715: upstream 108149: do not return early in the node informer when there is no change
  • Loading branch information
openshift-merge-robot committed Feb 17, 2022
2 parents 476a929 + d99a317 commit 194b639
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 4 deletions.
4 changes: 0 additions & 4 deletions staging/src/k8s.io/legacy-cloud-providers/azure/azure.go
Expand Up @@ -749,10 +749,6 @@ func (az *Cloud) SetInformers(informerFactory informers.SharedInformerFactory) {
UpdateFunc: func(prev, obj interface{}) {
prevNode := prev.(*v1.Node)
newNode := obj.(*v1.Node)
if newNode.Labels[v1.LabelTopologyZone] ==
prevNode.Labels[v1.LabelTopologyZone] {
return
}
az.updateNodeCaches(prevNode, newNode)
},
DeleteFunc: func(obj interface{}) {
Expand Down
36 changes: 36 additions & 0 deletions staging/src/k8s.io/legacy-cloud-providers/azure/azure_test.go
Expand Up @@ -3276,6 +3276,42 @@ func TestUpdateNodeCaches(t *testing.T) {
assert.Equal(t, 1, len(az.nodeNames))
}

func TestUpdateNodeCacheExcludeLoadBalancer(t *testing.T) {
ctrl := gomock.NewController(t)
defer ctrl.Finish()
az := GetTestCloud(ctrl)

zone := fmt.Sprintf("%s-0", az.Location)
nodesInZone := sets.NewString("prevNode")
az.nodeZones = map[string]sets.String{zone: nodesInZone}
az.nodeResourceGroups = map[string]string{"prevNode": "rg"}
az.unmanagedNodes = sets.NewString("prevNode")
az.excludeLoadBalancerNodes = sets.NewString()
az.nodeNames = sets.NewString("prevNode")

// excluded node cache shall be updated even if the topology label does not change
prevNode := v1.Node{
ObjectMeta: metav1.ObjectMeta{
Labels: map[string]string{
v1.LabelTopologyZone: zone,
},
Name: "prevNode",
},
}
newNode := v1.Node{
ObjectMeta: metav1.ObjectMeta{
Labels: map[string]string{
v1.LabelTopologyZone: zone,
v1.LabelNodeExcludeBalancers: "true",
},
Name: "newNode",
},
}
az.updateNodeCaches(&prevNode, &newNode)
assert.Equal(t, 1, len(az.excludeLoadBalancerNodes))

}

func TestGetActiveZones(t *testing.T) {
ctrl := gomock.NewController(t)
defer ctrl.Finish()
Expand Down

0 comments on commit 194b639

Please sign in to comment.