mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 01:06:27 +00:00
Merge pull request #128179 from carlory/fix-128121
cloud service controller stops reporting events in the informer's event handlers
This commit is contained in:
commit
3f27f97046
@ -144,7 +144,7 @@ func New(
|
|||||||
UpdateFunc: func(old, cur interface{}) {
|
UpdateFunc: func(old, cur interface{}) {
|
||||||
oldSvc, ok1 := old.(*v1.Service)
|
oldSvc, ok1 := old.(*v1.Service)
|
||||||
curSvc, ok2 := cur.(*v1.Service)
|
curSvc, ok2 := cur.(*v1.Service)
|
||||||
if ok1 && ok2 && (s.needsUpdate(oldSvc, curSvc) || needsCleanup(curSvc)) {
|
if ok1 && ok2 && (needsUpdate(oldSvc, curSvc) || needsCleanup(curSvc)) {
|
||||||
s.enqueueService(cur)
|
s.enqueueService(cur)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -553,19 +553,17 @@ func needsCleanup(service *v1.Service) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// needsUpdate checks if load balancer needs to be updated due to change in attributes.
|
// needsUpdate checks if load balancer needs to be updated due to change in attributes.
|
||||||
func (c *Controller) needsUpdate(oldService *v1.Service, newService *v1.Service) bool {
|
func needsUpdate(oldService *v1.Service, newService *v1.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) {
|
||||||
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "Type", "%v -> %v",
|
klog.V(2).Infof("Service %s wants load balancer changed from %s to %s", klog.KObj(oldService), oldService.Spec.Type, newService.Spec.Type)
|
||||||
oldService.Spec.Type, newService.Spec.Type)
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
if wantsLoadBalancer(newService) && !reflect.DeepEqual(oldService.Spec.LoadBalancerSourceRanges, newService.Spec.LoadBalancerSourceRanges) {
|
if wantsLoadBalancer(newService) && !reflect.DeepEqual(oldService.Spec.LoadBalancerSourceRanges, newService.Spec.LoadBalancerSourceRanges) {
|
||||||
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "LoadBalancerSourceRanges", "%v -> %v",
|
klog.V(2).Infof("Service %s LoadBalancerSourceRanges changed from %v to %v", klog.KObj(newService), oldService.Spec.LoadBalancerSourceRanges, newService.Spec.LoadBalancerSourceRanges)
|
||||||
oldService.Spec.LoadBalancerSourceRanges, newService.Spec.LoadBalancerSourceRanges)
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -577,19 +575,16 @@ func (c *Controller) needsUpdate(oldService *v1.Service, newService *v1.Service)
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if !loadBalancerIPsAreEqual(oldService, newService) {
|
if !loadBalancerIPsAreEqual(oldService, newService) {
|
||||||
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "LoadbalancerIP", "%v -> %v",
|
klog.V(2).Infof("Service %s LoadBalancerIP changed from %s to %s", klog.KObj(newService), oldService.Spec.LoadBalancerIP, newService.Spec.LoadBalancerIP)
|
||||||
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) {
|
||||||
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "ExternalIP", "Count: %v -> %v",
|
klog.V(2).Infof("Service %s ExternalIPs' count changed from %v to %v", klog.KObj(newService), len(oldService.Spec.ExternalIPs), len(newService.Spec.ExternalIPs))
|
||||||
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] {
|
||||||
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "ExternalIP", "Added: %v",
|
klog.V(2).Infof("Service %s ExternalIPs[%d] changed from %v to %v", klog.KObj(newService), i, oldService.Spec.ExternalIPs[i], newService.Spec.ExternalIPs[i])
|
||||||
newService.Spec.ExternalIPs[i])
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -597,18 +592,15 @@ func (c *Controller) needsUpdate(oldService *v1.Service, newService *v1.Service)
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if oldService.UID != newService.UID {
|
if oldService.UID != newService.UID {
|
||||||
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "UID", "%v -> %v",
|
klog.V(2).Infof("Service %s UID changed from %s to %s", klog.KObj(newService), oldService.UID, newService.UID)
|
||||||
oldService.UID, newService.UID)
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if oldService.Spec.ExternalTrafficPolicy != newService.Spec.ExternalTrafficPolicy {
|
if oldService.Spec.ExternalTrafficPolicy != newService.Spec.ExternalTrafficPolicy {
|
||||||
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "ExternalTrafficPolicy", "%v -> %v",
|
klog.V(2).Infof("Service %s ExternalTrafficPolicy changed from %s to %s", klog.KObj(newService), oldService.Spec.ExternalTrafficPolicy, newService.Spec.ExternalTrafficPolicy)
|
||||||
oldService.Spec.ExternalTrafficPolicy, newService.Spec.ExternalTrafficPolicy)
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if oldService.Spec.HealthCheckNodePort != newService.Spec.HealthCheckNodePort {
|
if oldService.Spec.HealthCheckNodePort != newService.Spec.HealthCheckNodePort {
|
||||||
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "HealthCheckNodePort", "%v -> %v",
|
klog.V(2).Infof("Service %s HealthCheckNodePort changed from %v to %v", klog.KObj(newService), oldService.Spec.HealthCheckNodePort, newService.Spec.HealthCheckNodePort)
|
||||||
oldService.Spec.HealthCheckNodePort, newService.Spec.HealthCheckNodePort)
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -616,8 +608,7 @@ func (c *Controller) needsUpdate(oldService *v1.Service, newService *v1.Service)
|
|||||||
// but CAN NOT change primary/secondary clusterIP || ipFamily UNLESS they are changing from/to/ON ExternalName
|
// but CAN NOT change primary/secondary clusterIP || ipFamily UNLESS they are changing from/to/ON ExternalName
|
||||||
// so not care about order, only need check the length.
|
// so not care about order, only need check the length.
|
||||||
if len(oldService.Spec.IPFamilies) != len(newService.Spec.IPFamilies) {
|
if len(oldService.Spec.IPFamilies) != len(newService.Spec.IPFamilies) {
|
||||||
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "IPFamilies", "Count: %v -> %v",
|
klog.V(2).Infof("Service %s IPFamilies' count changed from %d to %d", klog.KObj(newService), len(oldService.Spec.IPFamilies), len(newService.Spec.IPFamilies))
|
||||||
len(oldService.Spec.IPFamilies), len(newService.Spec.IPFamilies))
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1498,12 +1498,8 @@ func TestNeedsUpdate(t *testing.T) {
|
|||||||
|
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
t.Run(tc.testName, func(t *testing.T) {
|
t.Run(tc.testName, func(t *testing.T) {
|
||||||
_, ctx := ktesting.NewTestContext(t)
|
|
||||||
ctx, cancel := context.WithCancel(ctx)
|
|
||||||
defer cancel()
|
|
||||||
controller, _, _ := newController(ctx)
|
|
||||||
oldSvc, newSvc := tc.updateFn()
|
oldSvc, newSvc := tc.updateFn()
|
||||||
obtainedResult := controller.needsUpdate(oldSvc, newSvc)
|
obtainedResult := needsUpdate(oldSvc, newSvc)
|
||||||
if obtainedResult != tc.expectedNeedsUpdate {
|
if obtainedResult != tc.expectedNeedsUpdate {
|
||||||
t.Errorf("%v needsUpdate() should have returned %v but returned %v", tc.testName, tc.expectedNeedsUpdate, obtainedResult)
|
t.Errorf("%v needsUpdate() should have returned %v but returned %v", tc.testName, tc.expectedNeedsUpdate, obtainedResult)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user