mirror of https://github.com/k3s-io/k3s
Send update events from service-controller.
parent
210bac10c9
commit
33654c8b4e
|
@ -274,7 +274,7 @@ func (s *ServiceController) processDelta(delta *cache.Delta) (error, bool) {
|
||||||
// Returns whatever error occurred along with a boolean indicator of whether it
|
// Returns whatever error occurred along with a boolean indicator of whether it
|
||||||
// should be retried.
|
// should be retried.
|
||||||
func (s *ServiceController) createLoadBalancerIfNeeded(namespacedName types.NamespacedName, service, appliedState *api.Service) (error, bool) {
|
func (s *ServiceController) createLoadBalancerIfNeeded(namespacedName types.NamespacedName, service, appliedState *api.Service) (error, bool) {
|
||||||
if appliedState != nil && !needsUpdate(appliedState, service) {
|
if appliedState != nil && !s.needsUpdate(appliedState, service) {
|
||||||
glog.Infof("LB already exists and doesn't need update for service %s", namespacedName)
|
glog.Infof("LB already exists and doesn't need update for service %s", namespacedName)
|
||||||
return nil, notRetryable
|
return nil, notRetryable
|
||||||
}
|
}
|
||||||
|
@ -457,24 +457,32 @@ func (s *serviceCache) delete(serviceName string) {
|
||||||
delete(s.serviceMap, serviceName)
|
delete(s.serviceMap, serviceName)
|
||||||
}
|
}
|
||||||
|
|
||||||
func needsUpdate(oldService *api.Service, newService *api.Service) bool {
|
func (s *ServiceController) needsUpdate(oldService *api.Service, newService *api.Service) bool {
|
||||||
if !wantsLoadBalancer(oldService) && !wantsLoadBalancer(newService) {
|
if !wantsLoadBalancer(oldService) && !wantsLoadBalancer(newService) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if wantsLoadBalancer(oldService) != wantsLoadBalancer(newService) {
|
if wantsLoadBalancer(oldService) != wantsLoadBalancer(newService) {
|
||||||
|
s.eventRecorder.Eventf(newService, api.EventTypeNormal, "Type", "%v -> %v",
|
||||||
|
oldService.Spec.Type, newService.Spec.Type)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if !portsEqualForLB(oldService, newService) || oldService.Spec.SessionAffinity != newService.Spec.SessionAffinity {
|
if !portsEqualForLB(oldService, newService) || oldService.Spec.SessionAffinity != newService.Spec.SessionAffinity {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if !loadBalancerIPsAreEqual(oldService, newService) {
|
if !loadBalancerIPsAreEqual(oldService, newService) {
|
||||||
|
s.eventRecorder.Eventf(newService, api.EventTypeNormal, "LoadbalancerIP", "%v -> %v",
|
||||||
|
oldService.Spec.LoadBalancerIP, newService.Spec.LoadBalancerIP)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if len(oldService.Spec.ExternalIPs) != len(newService.Spec.ExternalIPs) {
|
if len(oldService.Spec.ExternalIPs) != len(newService.Spec.ExternalIPs) {
|
||||||
|
s.eventRecorder.Eventf(newService, api.EventTypeNormal, "ExternalIP", "Count: %v -> %v",
|
||||||
|
len(oldService.Spec.ExternalIPs), len(newService.Spec.ExternalIPs))
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
for i := range oldService.Spec.ExternalIPs {
|
for i := range oldService.Spec.ExternalIPs {
|
||||||
if oldService.Spec.ExternalIPs[i] != newService.Spec.ExternalIPs[i] {
|
if oldService.Spec.ExternalIPs[i] != newService.Spec.ExternalIPs[i] {
|
||||||
|
s.eventRecorder.Eventf(newService, api.EventTypeNormal, "ExternalIP", "Added: %v",
|
||||||
|
newService.Spec.ExternalIPs[i])
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue