mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	proxier: improve node topology event handler logic
Signed-off-by: Andrew Sy Kim <kiman@vmware.com>
This commit is contained in:
		@@ -600,14 +600,16 @@ func (proxier *Proxier) OnNodeAdd(node *v1.Node) {
 | 
			
		||||
		klog.Errorf("Received a watch event for a node %s that doesn't match the current node %v", node.Name, proxier.hostname)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	oldLabels := proxier.nodeLabels
 | 
			
		||||
	newLabels := node.Labels
 | 
			
		||||
	proxier.mu.Lock()
 | 
			
		||||
	proxier.nodeLabels = newLabels
 | 
			
		||||
	proxier.mu.Unlock()
 | 
			
		||||
	if !reflect.DeepEqual(oldLabels, newLabels) {
 | 
			
		||||
		proxier.syncProxyRules()
 | 
			
		||||
 | 
			
		||||
	if reflect.DeepEqual(proxier.nodeLabels, node.Labels) {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	proxier.mu.Lock()
 | 
			
		||||
	proxier.nodeLabels = node.Labels
 | 
			
		||||
	proxier.mu.Unlock()
 | 
			
		||||
 | 
			
		||||
	proxier.syncProxyRules()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// OnNodeUpdate is called whenever modification of an existing
 | 
			
		||||
@@ -617,14 +619,16 @@ func (proxier *Proxier) OnNodeUpdate(oldNode, node *v1.Node) {
 | 
			
		||||
		klog.Errorf("Received a watch event for a node %s that doesn't match the current node %v", node.Name, proxier.hostname)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	oldLabels := proxier.nodeLabels
 | 
			
		||||
	newLabels := node.Labels
 | 
			
		||||
	proxier.mu.Lock()
 | 
			
		||||
	proxier.nodeLabels = newLabels
 | 
			
		||||
	proxier.mu.Unlock()
 | 
			
		||||
	if !reflect.DeepEqual(oldLabels, newLabels) {
 | 
			
		||||
		proxier.syncProxyRules()
 | 
			
		||||
 | 
			
		||||
	if reflect.DeepEqual(proxier.nodeLabels, node.Labels) {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	proxier.mu.Lock()
 | 
			
		||||
	proxier.nodeLabels = node.Labels
 | 
			
		||||
	proxier.mu.Unlock()
 | 
			
		||||
 | 
			
		||||
	proxier.syncProxyRules()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// OnNodeDelete is called whever deletion of an existing node
 | 
			
		||||
@@ -637,6 +641,7 @@ func (proxier *Proxier) OnNodeDelete(node *v1.Node) {
 | 
			
		||||
	proxier.mu.Lock()
 | 
			
		||||
	proxier.nodeLabels = nil
 | 
			
		||||
	proxier.mu.Unlock()
 | 
			
		||||
 | 
			
		||||
	proxier.syncProxyRules()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -906,14 +906,16 @@ func (proxier *Proxier) OnNodeAdd(node *v1.Node) {
 | 
			
		||||
		klog.Errorf("Received a watch event for a node %s that doesn't match the current node %v", node.Name, proxier.hostname)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	oldLabels := proxier.nodeLabels
 | 
			
		||||
	newLabels := node.Labels
 | 
			
		||||
	proxier.mu.Lock()
 | 
			
		||||
	proxier.nodeLabels = newLabels
 | 
			
		||||
	proxier.mu.Unlock()
 | 
			
		||||
	if !reflect.DeepEqual(oldLabels, newLabels) {
 | 
			
		||||
		proxier.syncProxyRules()
 | 
			
		||||
 | 
			
		||||
	if reflect.DeepEqual(proxier.nodeLabels, node.Labels) {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	proxier.mu.Lock()
 | 
			
		||||
	proxier.nodeLabels = node.Labels
 | 
			
		||||
	proxier.mu.Unlock()
 | 
			
		||||
 | 
			
		||||
	proxier.syncProxyRules()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// OnNodeUpdate is called whenever modification of an existing
 | 
			
		||||
@@ -923,14 +925,16 @@ func (proxier *Proxier) OnNodeUpdate(oldNode, node *v1.Node) {
 | 
			
		||||
		klog.Errorf("Received a watch event for a node %s that doesn't match the current node %v", node.Name, proxier.hostname)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	oldLabels := proxier.nodeLabels
 | 
			
		||||
	newLabels := node.Labels
 | 
			
		||||
	proxier.mu.Lock()
 | 
			
		||||
	proxier.nodeLabels = newLabels
 | 
			
		||||
	proxier.mu.Unlock()
 | 
			
		||||
	if !reflect.DeepEqual(oldLabels, newLabels) {
 | 
			
		||||
		proxier.syncProxyRules()
 | 
			
		||||
 | 
			
		||||
	if reflect.DeepEqual(proxier.nodeLabels, node.Labels) {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	proxier.mu.Lock()
 | 
			
		||||
	proxier.nodeLabels = node.Labels
 | 
			
		||||
	proxier.mu.Unlock()
 | 
			
		||||
 | 
			
		||||
	proxier.syncProxyRules()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// OnNodeDelete is called whever deletion of an existing node
 | 
			
		||||
@@ -943,6 +947,7 @@ func (proxier *Proxier) OnNodeDelete(node *v1.Node) {
 | 
			
		||||
	proxier.mu.Lock()
 | 
			
		||||
	proxier.nodeLabels = nil
 | 
			
		||||
	proxier.mu.Unlock()
 | 
			
		||||
 | 
			
		||||
	proxier.syncProxyRules()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user