in controllers/keycloakrealmuser/keycloakrealmuser_controller.go [72:117]
func (r *Reconcile) Reconcile(ctx context.Context, request reconcile.Request) (ctrl.Result, error) {
log := ctrl.LoggerFrom(ctx)
log.Info("Reconciling KeycloakRealmUser")
var instance keycloakApi.KeycloakRealmUser
if err := r.client.Get(ctx, request.NamespacedName, &instance); err != nil {
if k8sErrors.IsNotFound(err) {
return ctrl.Result{}, nil
}
return ctrl.Result{}, errors.Wrap(err, "unable to get keycloak realm user from k8s")
}
if updated, err := r.applyDefaults(ctx, &instance); err != nil {
return ctrl.Result{}, fmt.Errorf("unable to apply default values: %w", err)
} else if updated {
return ctrl.Result{}, nil
}
oldStatus := instance.Status
if err := r.tryReconcile(ctx, &instance); err != nil {
log.Error(err, "An error has occurred while handling KeycloakRealmUser")
if errors.Is(err, helper.ErrKeycloakIsNotAvailable) {
return helper.RequeueOnKeycloakNotAvailable, nil
}
instance.Status.Value = err.Error()
if statusErr := r.updateKeycloakRealmUserStatus(ctx, &instance, oldStatus); statusErr != nil {
return ctrl.Result{}, statusErr
}
return ctrl.Result{}, err
}
instance.Status.Value = helper.StatusOK
if statusErr := r.updateKeycloakRealmUserStatus(ctx, &instance, oldStatus); statusErr != nil {
return ctrl.Result{}, statusErr
}
log.Info("Reconciling KeycloakRealmUser done")
return ctrl.Result{}, nil
}