@@ -229,15 +229,18 @@ func (r *DedicatedCLBListenerReconciler) ensureBackendPod(ctx context.Context, l
229
229
backendPod := lis .Spec .BackendPod
230
230
if backendPod == nil {
231
231
if lis .Status .State == networkingv1alpha1 .DedicatedCLBListenerStateBound { // 但监听器状态是已占用,需要解绑
232
- log . V ( 6 ). Info ( "no backend pod configured, try to deregister all targets" )
232
+ r . Recorder . Event ( lis , corev1 . EventTypeNormal , "PodChangeToNil" , "no backend pod configured, try to deregister all targets" )
233
233
// 解绑所有后端
234
234
if err := clb .DeregisterAllTargets (ctx , lis .Spec .LbRegion , lis .Spec .LbId , lis .Status .ListenerId ); err != nil {
235
+ r .Recorder .Event (lis , corev1 .EventTypeWarning , "Deregister" , err .Error ())
235
236
return err
236
237
}
237
238
// 更新监听器状态
238
239
if err := r .setState (ctx , lis , networkingv1alpha1 .DedicatedCLBListenerStateAvailable ); err != nil {
240
+ r .Recorder .Event (lis , corev1 .EventTypeWarning , "UpdateStatusFailed" , err .Error ())
239
241
return err
240
242
}
243
+ r .Recorder .Event (lis , corev1 .EventTypeNormal , "UpdateStatus" , "listener available again" )
241
244
}
242
245
return nil
243
246
}
@@ -258,9 +261,11 @@ func (r *DedicatedCLBListenerReconciler) ensureBackendPod(ctx context.Context, l
258
261
log .V (5 ).Info ("configured pod not found, ignore reconcile the pod" )
259
262
// 后端pod不存在,确保状态为 Available
260
263
if lis .Status .State != networkingv1alpha1 .DedicatedCLBListenerStateAvailable {
261
- log .V (5 ).Info ("configured pod not found but state is not available, reset state to available" , "oldState" , lis .Status .State )
264
+ msg := fmt .Sprintf ("configured pod not found but state is %q, reset state to available" , lis .Status .State )
265
+ r .Recorder .Event (lis , corev1 .EventTypeNormal , "UpdateStatus" , msg )
262
266
lis .Status .State = networkingv1alpha1 .DedicatedCLBListenerStateAvailable
263
267
if err := r .Status ().Update (ctx , lis ); err != nil {
268
+ r .Recorder .Event (lis , corev1 .EventTypeWarning , "UpdateStatusFailed" , err .Error ())
264
269
return err
265
270
}
266
271
return nil
@@ -277,8 +282,9 @@ func (r *DedicatedCLBListenerReconciler) ensureBackendPod(ctx context.Context, l
277
282
"add pod finalizer" ,
278
283
"finalizerName" , podFinalizerName ,
279
284
)
285
+ r .Recorder .Event (lis , corev1 .EventTypeNormal , "AddPodFinalizer" , "add finalizer to pod " + pod .Name )
280
286
if err := kube .AddPodFinalizer (ctx , pod , podFinalizerName ); err != nil {
281
- log . Error ( err , "failed to add pod finalizer" )
287
+ r . Recorder . Event ( lis , corev1 . EventTypeWarning , "AddPodFinalizer" , err . Error () )
282
288
return err
283
289
}
284
290
}
@@ -287,8 +293,10 @@ func (r *DedicatedCLBListenerReconciler) ensureBackendPod(ctx context.Context, l
287
293
return nil
288
294
}
289
295
// 绑定rs
296
+ r .Recorder .Event (lis , corev1 .EventTypeNormal , "DeregisterPod" , "deregister pod " + pod .Name )
290
297
targets , err := clb .DescribeTargets (ctx , lis .Spec .LbRegion , lis .Spec .LbId , lis .Status .ListenerId )
291
298
if err != nil {
299
+ r .Recorder .Event (lis , corev1 .EventTypeWarning , "DeregisterPod" , err .Error ())
292
300
return err
293
301
}
294
302
toDel := []clb.Target {}
@@ -301,42 +309,56 @@ func (r *DedicatedCLBListenerReconciler) ensureBackendPod(ctx context.Context, l
301
309
}
302
310
}
303
311
if len (toDel ) > 0 {
312
+ r .Recorder .Event (lis , corev1 .EventTypeNormal , "DeregisterExtra" , fmt .Sprintf ("deregister extra rs %v" , toDel ))
304
313
log .Info ("deregister extra rs" , "extraRs" , toDel )
305
314
if err := clb .DeregisterTargetsForListener (ctx , lis .Spec .LbRegion , lis .Spec .LbId , lis .Status .ListenerId , toDel ... ); err != nil {
315
+ r .Recorder .Event (lis , corev1 .EventTypeWarning , "DeregisterExtra" , err .Error ())
306
316
return err
307
317
}
308
318
}
309
319
if ! needAdd {
310
320
log .V (6 ).Info ("backend pod already registered" , "podIP" , pod .Status .PodIP )
311
321
return nil
312
322
}
313
- log .V (6 ).Info ("register backend pod" , "podIP" , pod .Status .PodIP )
323
+ r .Recorder .Event (
324
+ lis , corev1 .EventTypeNormal , "RegisterPod" ,
325
+ fmt .Sprintf ("register pod %s/%s:%d" , pod .Name , pod .Status .PodIP , backendPod .Port ),
326
+ )
314
327
if err := clb .RegisterTargets (
315
328
ctx , lis .Spec .LbRegion , lis .Spec .LbId , lis .Status .ListenerId ,
316
329
clb.Target {TargetIP : pod .Status .PodIP , TargetPort : backendPod .Port },
317
330
); err != nil {
331
+ r .Recorder .Event (lis , corev1 .EventTypeWarning , "RegisterPod" , err .Error ())
318
332
return err
319
333
}
320
334
// 更新监听器状态
321
335
log .V (6 ).Info ("set listener state to bound" )
322
336
lis .Status .State = networkingv1alpha1 .DedicatedCLBListenerStateBound
337
+ r .Recorder .Event (lis , corev1 .EventTypeNormal , "UpdateStatus" , "listener bound" )
323
338
if err := r .Status ().Update (ctx , lis ); err != nil {
339
+ r .Recorder .Event (lis , corev1 .EventTypeWarning , "UpdateStatusFailed" , err .Error ())
324
340
return err
325
341
}
326
342
// 更新Pod注解
327
343
addr , err := clb .GetClbExternalAddress (ctx , lis .Spec .LbId , lis .Spec .LbRegion )
328
344
if err != nil {
345
+ r .Recorder .Event (lis , corev1 .EventTypeWarning , "GetClbExternalAddress" , err .Error ())
329
346
return err
330
347
}
331
348
addr = fmt .Sprintf ("%s:%d" , addr , lis .Spec .LbPort )
332
- log .V (6 ).Info ("set external address to status" , "address" , addr )
333
349
lis .Status .Address = addr
334
- return r .Status ().Update (ctx , lis )
350
+ r .Recorder .Event (lis , corev1 .EventTypeNormal , "UpdateStatus" , "set external address to " + addr )
351
+ if err := r .Status ().Update (ctx , lis ); err != nil {
352
+ r .Recorder .Event (lis , corev1 .EventTypeWarning , "UpdateStatusFailed" , err .Error ())
353
+ return err
354
+ }
355
+ return nil
335
356
}
336
357
337
358
// pod 正在删除,清理rs
338
- log . V ( 6 ). Info ( "pod deleting, try to deregister all targets" )
359
+ r . Recorder . Event ( lis , corev1 . EventTypeNormal , "PodDeleting" , " try to deregister all targets" )
339
360
if err := clb .DeregisterAllTargets (ctx , lis .Spec .LbRegion , lis .Spec .LbId , lis .Status .ListenerId ); err != nil {
361
+ r .Recorder .Event (lis , corev1 .EventTypeWarning , "DeregisterFailed" , err .Error ())
340
362
return err
341
363
}
342
364
// 清理成功,删除 pod finalizer
@@ -345,10 +367,16 @@ func (r *DedicatedCLBListenerReconciler) ensureBackendPod(ctx context.Context, l
345
367
"finalizerName" , podFinalizerName ,
346
368
)
347
369
if err := kube .RemovePodFinalizer (ctx , pod , podFinalizerName ); err != nil {
370
+ r .Recorder .Event (lis , corev1 .EventTypeWarning , "RemovePodFinalizerFailed" , err .Error ())
348
371
return err
349
372
}
350
373
// 更新 DedicatedCLBListener
351
- return r .setState (ctx , lis , networkingv1alpha1 .DedicatedCLBListenerStateAvailable )
374
+ r .Recorder .Event (lis , corev1 .EventTypeNormal , "UpdateStatus" , "listener available" )
375
+ if err := r .setState (ctx , lis , networkingv1alpha1 .DedicatedCLBListenerStateAvailable ); err != nil {
376
+ r .Recorder .Event (lis , corev1 .EventTypeNormal , "UpdateStatusFailed" , err .Error ())
377
+ return err
378
+ }
379
+ return nil
352
380
}
353
381
354
382
func (r * DedicatedCLBListenerReconciler ) ensureListener (ctx context.Context , log logr.Logger , lis * networkingv1alpha1.DedicatedCLBListener ) error {
0 commit comments