mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
fix: do not return early in the node informer when there is no change of the topology label.
This commit is contained in:
parent
7bde4baac4
commit
82852c0a7c
@ -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{}) {
|
||||
|
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user