diff --git a/pkg/proxy/config/config.go b/pkg/proxy/config/config.go index 2f073e8f06e6..35c8daa5a4ff 100644 --- a/pkg/proxy/config/config.go +++ b/pkg/proxy/config/config.go @@ -20,7 +20,7 @@ import ( "fmt" "time" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" discovery "k8s.io/api/discovery/v1beta1" utilruntime "k8s.io/apimachinery/pkg/util/runtime" coreinformers "k8s.io/client-go/informers/core/v1" @@ -381,7 +381,7 @@ type NodeHandler interface { // OnNodeUpdate is called whenever modification of an existing // node object is observed. OnNodeUpdate(oldNode, node *v1.Node) - // OnNodeDelete is called whever deletion of an existing node + // OnNodeDelete is called whenever deletion of an existing node // object is observed. OnNodeDelete(node *v1.Node) // OnNodeSynced is called once all the initial event handlers were diff --git a/pkg/proxy/iptables/proxier.go b/pkg/proxy/iptables/proxier.go index e223f0f9e8f9..a83ca3aa1d63 100644 --- a/pkg/proxy/iptables/proxier.go +++ b/pkg/proxy/iptables/proxier.go @@ -541,7 +541,7 @@ func (proxier *Proxier) OnServiceDelete(service *v1.Service) { } -// OnServiceSynced is called once all the initial even handlers were +// OnServiceSynced is called once all the initial event handlers were // called and the state is fully propagated to local cache. func (proxier *Proxier) OnServiceSynced() { proxier.mu.Lock() @@ -663,7 +663,7 @@ func (proxier *Proxier) OnNodeUpdate(oldNode, node *v1.Node) { proxier.syncProxyRules() } -// OnNodeDelete is called whever deletion of an existing node +// OnNodeDelete is called whenever deletion of an existing node // object is observed. func (proxier *Proxier) OnNodeDelete(node *v1.Node) { if node.Name != proxier.hostname { diff --git a/pkg/proxy/ipvs/proxier.go b/pkg/proxy/ipvs/proxier.go index 5b3eda42960a..d4f313984dc5 100644 --- a/pkg/proxy/ipvs/proxier.go +++ b/pkg/proxy/ipvs/proxier.go @@ -963,7 +963,7 @@ func (proxier *Proxier) OnNodeUpdate(oldNode, node *v1.Node) { proxier.syncProxyRules() } -// OnNodeDelete is called whever deletion of an existing node +// OnNodeDelete is called whenever deletion of an existing node // object is observed. func (proxier *Proxier) OnNodeDelete(node *v1.Node) { if node.Name != proxier.hostname { diff --git a/pkg/proxy/userspace/proxier.go b/pkg/proxy/userspace/proxier.go index 49bd24f705de..142c0e4b52be 100644 --- a/pkg/proxy/userspace/proxier.go +++ b/pkg/proxy/userspace/proxier.go @@ -621,18 +621,26 @@ func (proxier *Proxier) serviceChange(previous, current *v1.Service, detail stri } } +// OnServiceAdd is called whenever creation of new service object +// is observed. func (proxier *Proxier) OnServiceAdd(service *v1.Service) { proxier.serviceChange(nil, service, "OnServiceAdd") } +// OnServiceUpdate is called whenever modification of an existing +// service object is observed. func (proxier *Proxier) OnServiceUpdate(oldService, service *v1.Service) { proxier.serviceChange(oldService, service, "OnServiceUpdate") } +// OnServiceDelete is called whenever deletion of an existing service +// object is observed. func (proxier *Proxier) OnServiceDelete(service *v1.Service) { proxier.serviceChange(service, nil, "OnServiceDelete") } +// OnServiceSynced is called once all the initial event handlers were +// called and the state is fully propagated to local cache. func (proxier *Proxier) OnServiceSynced() { klog.V(2).Infof("userspace OnServiceSynced") @@ -649,18 +657,26 @@ func (proxier *Proxier) OnServiceSynced() { go proxier.syncProxyRules() } +// OnEndpointsAdd is called whenever creation of new endpoints object +// is observed. func (proxier *Proxier) OnEndpointsAdd(endpoints *v1.Endpoints) { proxier.loadBalancer.OnEndpointsAdd(endpoints) } +// OnEndpointsUpdate is called whenever modification of an existing +// endpoints object is observed. func (proxier *Proxier) OnEndpointsUpdate(oldEndpoints, endpoints *v1.Endpoints) { proxier.loadBalancer.OnEndpointsUpdate(oldEndpoints, endpoints) } +// OnEndpointsDelete is called whenever deletion of an existing endpoints +// object is observed. func (proxier *Proxier) OnEndpointsDelete(endpoints *v1.Endpoints) { proxier.loadBalancer.OnEndpointsDelete(endpoints) } +// OnEndpointsSynced is called once all the initial event handlers were +// called and the state is fully propagated to local cache. func (proxier *Proxier) OnEndpointsSynced() { klog.V(2).Infof("userspace OnEndpointsSynced") proxier.loadBalancer.OnEndpointsSynced() diff --git a/pkg/proxy/winkernel/proxier.go b/pkg/proxy/winkernel/proxier.go index 51c203b54ab8..3d742f436461 100644 --- a/pkg/proxy/winkernel/proxier.go +++ b/pkg/proxy/winkernel/proxier.go @@ -761,6 +761,8 @@ func (proxier *Proxier) isInitialized() bool { return atomic.LoadInt32(&proxier.initialized) > 0 } +// OnServiceAdd is called whenever creation of new service object +// is observed. func (proxier *Proxier) OnServiceAdd(service *v1.Service) { namespacedName := types.NamespacedName{Namespace: service.Namespace, Name: service.Name} if proxier.serviceChanges.update(&namespacedName, nil, service, proxier.hns) && proxier.isInitialized() { @@ -768,6 +770,8 @@ func (proxier *Proxier) OnServiceAdd(service *v1.Service) { } } +// OnServiceUpdate is called whenever modification of an existing +// service object is observed. func (proxier *Proxier) OnServiceUpdate(oldService, service *v1.Service) { namespacedName := types.NamespacedName{Namespace: service.Namespace, Name: service.Name} if proxier.serviceChanges.update(&namespacedName, oldService, service, proxier.hns) && proxier.isInitialized() { @@ -775,6 +779,8 @@ func (proxier *Proxier) OnServiceUpdate(oldService, service *v1.Service) { } } +// OnServiceDelete is called whenever deletion of an existing service +// object is observed. func (proxier *Proxier) OnServiceDelete(service *v1.Service) { namespacedName := types.NamespacedName{Namespace: service.Namespace, Name: service.Name} if proxier.serviceChanges.update(&namespacedName, service, nil, proxier.hns) && proxier.isInitialized() { @@ -782,6 +788,8 @@ func (proxier *Proxier) OnServiceDelete(service *v1.Service) { } } +// OnServiceSynced is called once all the initial event handlers were +// called and the state is fully propagated to local cache. func (proxier *Proxier) OnServiceSynced() { proxier.mu.Lock() proxier.servicesSynced = true @@ -836,6 +844,8 @@ func (proxier *Proxier) updateServiceMap() (result updateServiceMapResult) { return result } +// OnEndpointsAdd is called whenever creation of new endpoints object +// is observed. func (proxier *Proxier) OnEndpointsAdd(endpoints *v1.Endpoints) { namespacedName := types.NamespacedName{Namespace: endpoints.Namespace, Name: endpoints.Name} if proxier.endpointsChanges.update(&namespacedName, nil, endpoints, proxier.hns) && proxier.isInitialized() { @@ -843,6 +853,8 @@ func (proxier *Proxier) OnEndpointsAdd(endpoints *v1.Endpoints) { } } +// OnEndpointsUpdate is called whenever modification of an existing +// endpoints object is observed. func (proxier *Proxier) OnEndpointsUpdate(oldEndpoints, endpoints *v1.Endpoints) { namespacedName := types.NamespacedName{Namespace: endpoints.Namespace, Name: endpoints.Name} if proxier.endpointsChanges.update(&namespacedName, oldEndpoints, endpoints, proxier.hns) && proxier.isInitialized() { @@ -850,6 +862,8 @@ func (proxier *Proxier) OnEndpointsUpdate(oldEndpoints, endpoints *v1.Endpoints) } } +// OnEndpointsDelete is called whenever deletion of an existing endpoints +// object is observed. func (proxier *Proxier) OnEndpointsDelete(endpoints *v1.Endpoints) { namespacedName := types.NamespacedName{Namespace: endpoints.Namespace, Name: endpoints.Name} if proxier.endpointsChanges.update(&namespacedName, endpoints, nil, proxier.hns) && proxier.isInitialized() { @@ -857,6 +871,8 @@ func (proxier *Proxier) OnEndpointsDelete(endpoints *v1.Endpoints) { } } +// OnEndpointsSynced is called once all the initial event handlers were +// called and the state is fully propagated to local cache. func (proxier *Proxier) OnEndpointsSynced() { proxier.mu.Lock() proxier.endpointsSynced = true diff --git a/pkg/proxy/winuserspace/proxier.go b/pkg/proxy/winuserspace/proxier.go index b3fc33d5f651..bfeb4fdee2c0 100644 --- a/pkg/proxy/winuserspace/proxier.go +++ b/pkg/proxy/winuserspace/proxier.go @@ -411,34 +411,50 @@ func (proxier *Proxier) unmergeService(service *v1.Service, existingPortPortals } } +// OnServiceAdd is called whenever creation of new service object +// is observed. func (proxier *Proxier) OnServiceAdd(service *v1.Service) { _ = proxier.mergeService(service) } +// OnServiceUpdate is called whenever modification of an existing +// service object is observed. func (proxier *Proxier) OnServiceUpdate(oldService, service *v1.Service) { existingPortPortals := proxier.mergeService(service) proxier.unmergeService(oldService, existingPortPortals) } +// OnServiceDelete is called whenever deletion of an existing service +// object is observed. func (proxier *Proxier) OnServiceDelete(service *v1.Service) { proxier.unmergeService(service, map[ServicePortPortalName]bool{}) } +// OnServiceSynced is called once all the initial event handlers were +// called and the state is fully propagated to local cache. func (proxier *Proxier) OnServiceSynced() { } +// OnEndpointsAdd is called whenever creation of new endpoints object +// is observed. func (proxier *Proxier) OnEndpointsAdd(endpoints *v1.Endpoints) { proxier.loadBalancer.OnEndpointsAdd(endpoints) } +// OnEndpointsUpdate is called whenever modification of an existing +// endpoints object is observed. func (proxier *Proxier) OnEndpointsUpdate(oldEndpoints, endpoints *v1.Endpoints) { proxier.loadBalancer.OnEndpointsUpdate(oldEndpoints, endpoints) } +// OnEndpointsDelete is called whenever deletion of an existing endpoints +// object is observed. func (proxier *Proxier) OnEndpointsDelete(endpoints *v1.Endpoints) { proxier.loadBalancer.OnEndpointsDelete(endpoints) } +// OnEndpointsSynced is called once all the initial event handlers were +// called and the state is fully propagated to local cache. func (proxier *Proxier) OnEndpointsSynced() { proxier.loadBalancer.OnEndpointsSynced() }