From c439dc19a6c843d987695392011125496b309d7b Mon Sep 17 00:00:00 2001 From: jwcesign Date: Fri, 12 Sep 2025 12:14:24 +0800 Subject: [PATCH] fix: re-enqueue not too offen if error happened Signed-off-by: jwcesign --- pkg/controllers/nodeclass/status/controller.go | 8 ++++---- pkg/controllers/nodeclass/status/image.go | 2 +- pkg/controllers/nodeclass/status/securitygroup.go | 2 +- pkg/controllers/nodeclass/status/vswitch.go | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pkg/controllers/nodeclass/status/controller.go b/pkg/controllers/nodeclass/status/controller.go index a12b147a..debd1ef9 100644 --- a/pkg/controllers/nodeclass/status/controller.go +++ b/pkg/controllers/nodeclass/status/controller.go @@ -101,11 +101,11 @@ func (c *Controller) Reconcile(ctx context.Context, nodeClass *v1alpha1.ECSNodeC errs = multierr.Append(errs, client.IgnoreNotFound(err)) } } - - if errs != nil { - return reconcile.Result{}, errs + if result.Min(results...).RequeueAfter > 0 { + return result.Min(results...), nil } - return result.Min(results...), nil + + return reconcile.Result{}, errs } func (c *Controller) Register(_ context.Context, m manager.Manager) error { diff --git a/pkg/controllers/nodeclass/status/image.go b/pkg/controllers/nodeclass/status/image.go index c647eef2..71c707dd 100644 --- a/pkg/controllers/nodeclass/status/image.go +++ b/pkg/controllers/nodeclass/status/image.go @@ -37,7 +37,7 @@ func (i *Image) Reconcile(ctx context.Context, nodeClass *v1alpha1.ECSNodeClass) images, err := i.imageProvider.List(ctx, nodeClass) if err != nil { log.FromContext(ctx).Error(err, "failed to list images") - return reconcile.Result{}, err + return reconcile.Result{RequeueAfter: time.Second * 30}, err } if len(images) == 0 { diff --git a/pkg/controllers/nodeclass/status/securitygroup.go b/pkg/controllers/nodeclass/status/securitygroup.go index 70d120bf..d568c749 100644 --- a/pkg/controllers/nodeclass/status/securitygroup.go +++ b/pkg/controllers/nodeclass/status/securitygroup.go @@ -34,7 +34,7 @@ type SecurityGroup struct { func (sg *SecurityGroup) Reconcile(ctx context.Context, nodeClass *v1alpha1.ECSNodeClass) (reconcile.Result, error) { securityGroups, err := sg.securityGroupProvider.List(ctx, nodeClass) if err != nil { - return reconcile.Result{}, fmt.Errorf("getting security groups, %w", err) + return reconcile.Result{RequeueAfter: time.Second * 30}, fmt.Errorf("getting security groups, %w", err) } if len(securityGroups) == 0 && len(nodeClass.Spec.SecurityGroupSelectorTerms) > 0 { nodeClass.Status.SecurityGroups = nil diff --git a/pkg/controllers/nodeclass/status/vswitch.go b/pkg/controllers/nodeclass/status/vswitch.go index c10a153d..e62ceec1 100644 --- a/pkg/controllers/nodeclass/status/vswitch.go +++ b/pkg/controllers/nodeclass/status/vswitch.go @@ -37,7 +37,7 @@ type VSwitch struct { func (v *VSwitch) Reconcile(ctx context.Context, nodeClass *v1alpha1.ECSNodeClass) (reconcile.Result, error) { vSwitches, err := v.vSwitchProvider.List(ctx, nodeClass) if err != nil { - return reconcile.Result{}, fmt.Errorf("getting vSwitches, %w", err) + return reconcile.Result{RequeueAfter: time.Second * 30}, fmt.Errorf("getting vSwitches, %w", err) } if len(vSwitches) == 0 { nodeClass.Status.VSwitches = nil