Skip to content

Commit 6aa784e

Browse files
committed
proxy/iptables: don't sync proxy rules if services map didn't change
1 parent 433f683 commit 6aa784e

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

pkg/proxy/iptables/proxier.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -556,8 +556,6 @@ func (proxier *Proxier) OnServiceUpdate(allServices []api.Service) {
556556
proxier.haveReceivedServiceUpdate = true
557557

558558
newServiceMap, hcAdd, hcDel, staleUDPServices := buildServiceMap(allServices, proxier.serviceMap)
559-
proxier.serviceMap = newServiceMap
560-
561559
for _, hc := range hcAdd {
562560
glog.V(4).Infof("Adding health check for %+v, port %v", hc.namespace, hc.nodeport)
563561
// Turn on healthcheck responder to listen on the health check nodePort
@@ -572,7 +570,13 @@ func (proxier *Proxier) OnServiceUpdate(allServices []api.Service) {
572570
healthcheck.DeleteServiceListener(hc.namespace, hc.nodeport)
573571
}
574572

575-
proxier.syncProxyRules()
573+
if len(newServiceMap) != len(proxier.serviceMap) || !reflect.DeepEqual(newServiceMap, proxier.serviceMap) {
574+
proxier.serviceMap = newServiceMap
575+
proxier.syncProxyRules()
576+
} else {
577+
glog.V(4).Infof("Skipping proxy iptables rule sync on service update because nothing changed")
578+
}
579+
576580
proxier.deleteServiceConnections(staleUDPServices.List())
577581
}
578582

0 commit comments

Comments
 (0)