Skip to content

Commit 3f27f97

Browse files
authored
Merge pull request kubernetes#128179 from carlory/fix-128121
cloud service controller stops reporting events in the informer's event handlers
2 parents 81ce66f + c8723ea commit 3f27f97

File tree

2 files changed

+12
-25
lines changed

2 files changed

+12
-25
lines changed

staging/src/k8s.io/cloud-provider/controllers/service/controller.go

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ func New(
144144
UpdateFunc: func(old, cur interface{}) {
145145
oldSvc, ok1 := old.(*v1.Service)
146146
curSvc, ok2 := cur.(*v1.Service)
147-
if ok1 && ok2 && (s.needsUpdate(oldSvc, curSvc) || needsCleanup(curSvc)) {
147+
if ok1 && ok2 && (needsUpdate(oldSvc, curSvc) || needsCleanup(curSvc)) {
148148
s.enqueueService(cur)
149149
}
150150
},
@@ -553,19 +553,17 @@ func needsCleanup(service *v1.Service) bool {
553553
}
554554

555555
// needsUpdate checks if load balancer needs to be updated due to change in attributes.
556-
func (c *Controller) needsUpdate(oldService *v1.Service, newService *v1.Service) bool {
556+
func needsUpdate(oldService *v1.Service, newService *v1.Service) bool {
557557
if !wantsLoadBalancer(oldService) && !wantsLoadBalancer(newService) {
558558
return false
559559
}
560560
if wantsLoadBalancer(oldService) != wantsLoadBalancer(newService) {
561-
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "Type", "%v -> %v",
562-
oldService.Spec.Type, newService.Spec.Type)
561+
klog.V(2).Infof("Service %s wants load balancer changed from %s to %s", klog.KObj(oldService), oldService.Spec.Type, newService.Spec.Type)
563562
return true
564563
}
565564

566565
if wantsLoadBalancer(newService) && !reflect.DeepEqual(oldService.Spec.LoadBalancerSourceRanges, newService.Spec.LoadBalancerSourceRanges) {
567-
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "LoadBalancerSourceRanges", "%v -> %v",
568-
oldService.Spec.LoadBalancerSourceRanges, newService.Spec.LoadBalancerSourceRanges)
566+
klog.V(2).Infof("Service %s LoadBalancerSourceRanges changed from %v to %v", klog.KObj(newService), oldService.Spec.LoadBalancerSourceRanges, newService.Spec.LoadBalancerSourceRanges)
569567
return true
570568
}
571569

@@ -577,47 +575,40 @@ func (c *Controller) needsUpdate(oldService *v1.Service, newService *v1.Service)
577575
return true
578576
}
579577
if !loadBalancerIPsAreEqual(oldService, newService) {
580-
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "LoadbalancerIP", "%v -> %v",
581-
oldService.Spec.LoadBalancerIP, newService.Spec.LoadBalancerIP)
578+
klog.V(2).Infof("Service %s LoadBalancerIP changed from %s to %s", klog.KObj(newService), oldService.Spec.LoadBalancerIP, newService.Spec.LoadBalancerIP)
582579
return true
583580
}
584581
if len(oldService.Spec.ExternalIPs) != len(newService.Spec.ExternalIPs) {
585-
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "ExternalIP", "Count: %v -> %v",
586-
len(oldService.Spec.ExternalIPs), len(newService.Spec.ExternalIPs))
582+
klog.V(2).Infof("Service %s ExternalIPs' count changed from %v to %v", klog.KObj(newService), len(oldService.Spec.ExternalIPs), len(newService.Spec.ExternalIPs))
587583
return true
588584
}
589585
for i := range oldService.Spec.ExternalIPs {
590586
if oldService.Spec.ExternalIPs[i] != newService.Spec.ExternalIPs[i] {
591-
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "ExternalIP", "Added: %v",
592-
newService.Spec.ExternalIPs[i])
587+
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])
593588
return true
594589
}
595590
}
596591
if !reflect.DeepEqual(oldService.Annotations, newService.Annotations) {
597592
return true
598593
}
599594
if oldService.UID != newService.UID {
600-
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "UID", "%v -> %v",
601-
oldService.UID, newService.UID)
595+
klog.V(2).Infof("Service %s UID changed from %s to %s", klog.KObj(newService), oldService.UID, newService.UID)
602596
return true
603597
}
604598
if oldService.Spec.ExternalTrafficPolicy != newService.Spec.ExternalTrafficPolicy {
605-
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "ExternalTrafficPolicy", "%v -> %v",
606-
oldService.Spec.ExternalTrafficPolicy, newService.Spec.ExternalTrafficPolicy)
599+
klog.V(2).Infof("Service %s ExternalTrafficPolicy changed from %s to %s", klog.KObj(newService), oldService.Spec.ExternalTrafficPolicy, newService.Spec.ExternalTrafficPolicy)
607600
return true
608601
}
609602
if oldService.Spec.HealthCheckNodePort != newService.Spec.HealthCheckNodePort {
610-
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "HealthCheckNodePort", "%v -> %v",
611-
oldService.Spec.HealthCheckNodePort, newService.Spec.HealthCheckNodePort)
603+
klog.V(2).Infof("Service %s HealthCheckNodePort changed from %v to %v", klog.KObj(newService), oldService.Spec.HealthCheckNodePort, newService.Spec.HealthCheckNodePort)
612604
return true
613605
}
614606

615607
// User can upgrade (add another clusterIP or ipFamily) or can downgrade (remove secondary clusterIP or ipFamily),
616608
// but CAN NOT change primary/secondary clusterIP || ipFamily UNLESS they are changing from/to/ON ExternalName
617609
// so not care about order, only need check the length.
618610
if len(oldService.Spec.IPFamilies) != len(newService.Spec.IPFamilies) {
619-
c.eventRecorder.Eventf(newService, v1.EventTypeNormal, "IPFamilies", "Count: %v -> %v",
620-
len(oldService.Spec.IPFamilies), len(newService.Spec.IPFamilies))
611+
klog.V(2).Infof("Service %s IPFamilies' count changed from %d to %d", klog.KObj(newService), len(oldService.Spec.IPFamilies), len(newService.Spec.IPFamilies))
621612
return true
622613
}
623614

staging/src/k8s.io/cloud-provider/controllers/service/controller_test.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1498,12 +1498,8 @@ func TestNeedsUpdate(t *testing.T) {
14981498

14991499
for _, tc := range testCases {
15001500
t.Run(tc.testName, func(t *testing.T) {
1501-
_, ctx := ktesting.NewTestContext(t)
1502-
ctx, cancel := context.WithCancel(ctx)
1503-
defer cancel()
1504-
controller, _, _ := newController(ctx)
15051501
oldSvc, newSvc := tc.updateFn()
1506-
obtainedResult := controller.needsUpdate(oldSvc, newSvc)
1502+
obtainedResult := needsUpdate(oldSvc, newSvc)
15071503
if obtainedResult != tc.expectedNeedsUpdate {
15081504
t.Errorf("%v needsUpdate() should have returned %v but returned %v", tc.testName, tc.expectedNeedsUpdate, obtainedResult)
15091505
}

0 commit comments

Comments
 (0)