diff --git a/controllers/dscinitialization/dscinitialization_controller.go b/controllers/dscinitialization/dscinitialization_controller.go index c23c3b898a8..8b7ef52ab0d 100644 --- a/controllers/dscinitialization/dscinitialization_controller.go +++ b/controllers/dscinitialization/dscinitialization_controller.go @@ -21,13 +21,11 @@ import ( "context" "fmt" operatorv1 "github.com/openshift/api/operator/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" logr "github.com/go-logr/logr" "k8s.io/client-go/util/retry" - ocuserv1 "github.com/openshift/api/user/v1" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" netv1 "k8s.io/api/networking/v1" @@ -153,27 +151,18 @@ func (r *DSCInitializationReconciler) Reconcile(ctx context.Context, req ctrl.Re } else { // Apply self-managed rhods config // Create rhods-admins Group if it doesn't exist - rhodsuserGroup := &ocuserv1.Group{ - ObjectMeta: metav1.ObjectMeta{ - Name: "rhods-admins", - }, - } - err := r.Client.Get(ctx, client.ObjectKey{ - Name: rhodsuserGroup.Name, - }, rhodsuserGroup) + err := r.createUserGroup(instance, "rhods-admins", ctx) if err != nil { - if apierrs.IsNotFound(err) { - err = r.Client.Create(ctx, rhodsuserGroup) - if err != nil && !apierrs.IsAlreadyExists(err) { - return reconcile.Result{}, err - } - } else { - return reconcile.Result{}, err - } + return reconcile.Result{}, err } } - // Apply common rhods-specific config + } else { // ODH case + // Create odh-admins Group if it doesn't exist + err := r.createUserGroup(instance, "odh-admins", ctx) + if err != nil { + return reconcile.Result{}, err + } } // If monitoring enabled diff --git a/controllers/dscinitialization/utils.go b/controllers/dscinitialization/utils.go index 0252fd7ba8f..fc3931cecb4 100644 --- a/controllers/dscinitialization/utils.go +++ b/controllers/dscinitialization/utils.go @@ -7,6 +7,7 @@ import ( "reflect" "time" + ocuserv1 "github.com/openshift/api/user/v1" corev1 "k8s.io/api/core/v1" netv1 "k8s.io/api/networking/v1" authv1 "k8s.io/api/rbac/v1" @@ -330,3 +331,25 @@ func (r *DSCInitializationReconciler) createOdhCommonConfigMap(dscInit *dsci.DSC } return nil } + +func (r *DSCInitializationReconciler) createUserGroup(dscInit *dsci.DSCInitialization, userGroupName string, ctx context.Context) error { + userGroup := &ocuserv1.Group{ + ObjectMeta: metav1.ObjectMeta{ + Name: userGroupName, + }, + } + err := r.Client.Get(ctx, client.ObjectKey{ + Name: userGroup.Name, + }, userGroup) + if err != nil { + if apierrs.IsNotFound(err) { + err = r.Client.Create(ctx, userGroup) + if err != nil && !apierrs.IsAlreadyExists(err) { + return err + } + } else { + return err + } + } + return nil +}