func()

in controllers/keycloakauthflow/keycloakauthflow_controller.go [84:127]


func (r *Reconcile) Reconcile(ctx context.Context, request reconcile.Request) (reconcile.Result, error) {
	log := ctrl.LoggerFrom(ctx)
	log.Info("Reconciling KeycloakAuthFlow")

	authFlow := &keycloakApi.KeycloakAuthFlow{}
	if err := r.client.Get(ctx, request.NamespacedName, authFlow); err != nil {
		if k8sErrors.IsNotFound(err) {
			return reconcile.Result{}, nil
		}

		return reconcile.Result{}, fmt.Errorf("unable to get keycloak auth flow from k8s: %w", err)
	}

	if updated, err := r.applyDefaults(ctx, authFlow); err != nil {
		return reconcile.Result{}, err
	} else if updated {
		return reconcile.Result{}, nil
	}

	oldStatus := authFlow.Status

	if err := r.tryReconcile(ctx, authFlow); err != nil {
		if errors.Is(err, helper.ErrKeycloakIsNotAvailable) {
			return helper.RequeueOnKeycloakNotAvailable, nil
		}

		authFlow.Status.Value = err.Error()

		if statusErr := r.updateKeycloakAuthFlowStatus(ctx, authFlow, oldStatus); statusErr != nil {
			return ctrl.Result{}, err
		}

		return ctrl.Result{}, err
	}

	authFlow.Status.Value = helper.StatusOK
	if statusErr := r.updateKeycloakAuthFlowStatus(ctx, authFlow, oldStatus); statusErr != nil {
		return ctrl.Result{}, statusErr
	}

	log.Info("Reconciling KeycloakAuthFlow done.")

	return ctrl.Result{}, nil
}