mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 20:24:09 +00:00
Merge pull request #108149 from nilo19/bug/cache
fix: do not return early in the node informer when there is no change…
This commit is contained in:
commit
b68063fce7
@ -749,10 +749,6 @@ func (az *Cloud) SetInformers(informerFactory informers.SharedInformerFactory) {
|
|||||||
UpdateFunc: func(prev, obj interface{}) {
|
UpdateFunc: func(prev, obj interface{}) {
|
||||||
prevNode := prev.(*v1.Node)
|
prevNode := prev.(*v1.Node)
|
||||||
newNode := obj.(*v1.Node)
|
newNode := obj.(*v1.Node)
|
||||||
if newNode.Labels[v1.LabelTopologyZone] ==
|
|
||||||
prevNode.Labels[v1.LabelTopologyZone] {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
az.updateNodeCaches(prevNode, newNode)
|
az.updateNodeCaches(prevNode, newNode)
|
||||||
},
|
},
|
||||||
DeleteFunc: func(obj interface{}) {
|
DeleteFunc: func(obj interface{}) {
|
||||||
|
@ -3276,6 +3276,42 @@ func TestUpdateNodeCaches(t *testing.T) {
|
|||||||
assert.Equal(t, 1, len(az.nodeNames))
|
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) {
|
func TestGetActiveZones(t *testing.T) {
|
||||||
ctrl := gomock.NewController(t)
|
ctrl := gomock.NewController(t)
|
||||||
defer ctrl.Finish()
|
defer ctrl.Finish()
|
||||||
|
Loading…
Reference in New Issue
Block a user