in controllers/helper/controller_helper.go [121:170]
func (h *Helper) SetKeycloakOwnerRef(ctx context.Context, object ObjectWithKeycloakRef) error {
if metav1.GetControllerOf(object) != nil {
return nil
}
kind := object.GetKeycloakRef().Kind
name := object.GetKeycloakRef().Name
switch kind {
case keycloakApi.KeycloakKind:
kc := &keycloakApi.Keycloak{}
if err := h.client.Get(ctx, types.NamespacedName{
Namespace: object.GetNamespace(),
Name: name,
}, kc); err != nil {
return fmt.Errorf("failed to get Keycloak: %w", err)
}
if err := controllerutil.SetControllerReference(kc, object, h.scheme); err != nil {
return fmt.Errorf("failed to set controller reference for %s: %w", object.GetName(), err)
}
if err := h.client.Update(ctx, object); err != nil {
return fmt.Errorf("failed to update keycloak owner reference %s: %w", kc.GetName(), err)
}
return nil
case keycloakAlpha.ClusterKeycloakKind:
clusterKc := &keycloakAlpha.ClusterKeycloak{}
if err := h.client.Get(ctx, types.NamespacedName{
Name: name,
}, clusterKc); err != nil {
return fmt.Errorf("failed to get ClusterKeycloak: %w", err)
}
if err := controllerutil.SetControllerReference(clusterKc, object, h.scheme); err != nil {
return fmt.Errorf("failed to set controller reference for %s: %w", object.GetName(), err)
}
if err := h.client.Update(ctx, object); err != nil {
return fmt.Errorf("failed to update keycloak owner reference %s: %w", clusterKc.GetName(), err)
}
return nil
default:
return fmt.Errorf("unknown keycloak kind: %s", kind)
}
}