in controllers/keycloakauthflow/keycloakauthflow_controller.go [129:172]
func (r *Reconcile) tryReconcile(ctx context.Context, instance *keycloakApi.KeycloakAuthFlow) error {
if err := r.helper.SetRealmOwnerRef(ctx, instance); err != nil {
return fmt.Errorf("unable to set realm owner ref: %w", err)
}
kClient, err := r.helper.CreateKeycloakClientFromRealmRef(ctx, instance)
if err != nil {
return fmt.Errorf("unable to create keycloak client from realm ref: %w", err)
}
realm, err := r.helper.GetKeycloakRealmFromRef(ctx, instance, kClient)
if err != nil {
return fmt.Errorf("unable to get realm from ref: %w", err)
}
keycloakAuthFlow := authFlowSpecToAdapterAuthFlow(&instance.Spec)
deleted, err := r.helper.TryToDelete(
ctx,
instance,
makeTerminator(
gocloak.PString(realm.Realm),
instance.GetRealmRef().Name,
keycloakAuthFlow,
r.client,
kClient,
objectmeta.PreserveResourcesOnDeletion(instance),
),
finalizerName,
)
if err != nil {
return fmt.Errorf("unable to delete auth flow: %w", err)
}
if deleted {
return nil
}
if err = kClient.SyncAuthFlow(gocloak.PString(realm.Realm), keycloakAuthFlow); err != nil {
return fmt.Errorf("unable to sync auth flow: %w", err)
}
return nil
}