in internal/controller/generic_controller.go [356:382]
func (a *action[O]) execute(ctx context.Context, logger logr.Logger, client crclient.Client, refresh func(O) time.Duration) (ctrl.Result, error) {
if a == nil {
return ctrl.Result{}, nil
}
a.validate()
if a.updatePullBinding != nil {
return ctrl.Result{}, client.Update(ctx, a.updatePullBinding)
} else if a.noop != nil {
after := clampRequeue(refresh(a.noop))
logger.WithValues("requeueAfter", after).Info("nothing to do, re-queueing for later processing")
return ctrl.Result{RequeueAfter: after}, nil
} else if a.updatePullBindingStatus != nil {
after := clampRequeue(refresh(a.updatePullBindingStatus))
logger.WithValues("requeueAfter", after).Info("re-queueing for later processing")
return ctrl.Result{RequeueAfter: after}, client.Status().Update(ctx, a.updatePullBindingStatus)
} else if a.createSecret != nil {
return ctrl.Result{}, client.Create(ctx, a.createSecret)
} else if a.updateSecret != nil {
return ctrl.Result{}, client.Update(ctx, a.updateSecret)
} else if a.deleteSecret != nil {
return ctrl.Result{}, client.Delete(ctx, a.deleteSecret)
} else if a.updateServiceAccount != nil {
return ctrl.Result{}, client.Update(ctx, a.updateServiceAccount)
}
logger.Info("no action taken")
return ctrl.Result{}, nil
}