@@ -26,6 +26,7 @@ import (
26
26
"encoding/base32"
27
27
"fmt"
28
28
"net"
29
+ "reflect"
29
30
"strconv"
30
31
"strings"
31
32
"sync"
@@ -599,9 +600,14 @@ func (proxier *Proxier) OnNodeAdd(node *v1.Node) {
599
600
klog .Errorf ("Received a watch event for a node %s that doesn't match the current node %v" , node .Name , proxier .hostname )
600
601
return
601
602
}
603
+ oldLabels := proxier .nodeLabels
604
+ newLabels := node .Labels
602
605
proxier .mu .Lock ()
603
- proxier .nodeLabels = node . Labels
606
+ proxier .nodeLabels = newLabels
604
607
proxier .mu .Unlock ()
608
+ if ! reflect .DeepEqual (oldLabels , newLabels ) {
609
+ proxier .syncProxyRules ()
610
+ }
605
611
}
606
612
607
613
// OnNodeUpdate is called whenever modification of an existing
@@ -611,9 +617,14 @@ func (proxier *Proxier) OnNodeUpdate(oldNode, node *v1.Node) {
611
617
klog .Errorf ("Received a watch event for a node %s that doesn't match the current node %v" , node .Name , proxier .hostname )
612
618
return
613
619
}
620
+ oldLabels := proxier .nodeLabels
621
+ newLabels := node .Labels
614
622
proxier .mu .Lock ()
615
- proxier .nodeLabels = node . Labels
623
+ proxier .nodeLabels = newLabels
616
624
proxier .mu .Unlock ()
625
+ if ! reflect .DeepEqual (oldLabels , newLabels ) {
626
+ proxier .syncProxyRules ()
627
+ }
617
628
}
618
629
619
630
// OnNodeDelete is called whever deletion of an existing node
@@ -626,6 +637,7 @@ func (proxier *Proxier) OnNodeDelete(node *v1.Node) {
626
637
proxier .mu .Lock ()
627
638
proxier .nodeLabels = nil
628
639
proxier .mu .Unlock ()
640
+ proxier .syncProxyRules ()
629
641
}
630
642
631
643
// OnNodeSynced is called once all the initial event handlers were
0 commit comments