Skip to content

Commit 349b4dc

Browse files
committed
chore: use helper for setting personal organization owner
1 parent 46bf2e6 commit 349b4dc

2 files changed

Lines changed: 8 additions & 9 deletions

File tree

cmd/controller/manager.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,7 @@ func runControllerManager(
289289
if err = (&resourcemanagercontroller.PersonalOrganizationController{
290290
Client: mgr.GetClient(),
291291
Config: serverConfig.PersonalOrganizationController,
292+
Scheme: mgr.GetScheme(),
292293
}).SetupWithManager(mgr); err != nil {
293294
setupLog.Error(err, "unable to create controller", "controller", "PersonalOrganization")
294295
return err

internal/controller/resourcemanager/personal_organization_controller.go

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"hash/fnv"
1010

1111
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
12+
"k8s.io/apimachinery/pkg/runtime"
1213
ctrl "sigs.k8s.io/controller-runtime"
1314
"sigs.k8s.io/controller-runtime/pkg/client"
1415
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
@@ -28,6 +29,10 @@ type PersonalOrganizationController struct {
2829
Client client.Client
2930

3031
Config PersonalOrganizationControllerConfig
32+
33+
// The scheme is used to set the controller reference on the personal
34+
// organization.
35+
Scheme *runtime.Scheme
3136
}
3237

3338
// +kubebuilder:rbac:groups=iam.datumapis.com,resources=users,verbs=get;list;watch
@@ -59,15 +64,8 @@ func (r *PersonalOrganizationController) Reconcile(ctx context.Context, req ctrl
5964
_, err := controllerutil.CreateOrUpdate(ctx, r.Client, personalOrg, func() error {
6065
logger.Info("Creating or updating personal organization", "organization", personalOrg.Name)
6166
metav1.SetMetaDataAnnotation(&personalOrg.ObjectMeta, "kubernetes.io/display-name", fmt.Sprintf("%s %s's Personal Org", user.Spec.GivenName, user.Spec.FamilyName))
62-
personalOrg.ObjectMeta.OwnerReferences = []metav1.OwnerReference{
63-
// The owner reference is used to ensure that the personal organization
64-
// is deleted when the user is deleted.
65-
{
66-
APIVersion: iamv1alpha1.SchemeGroupVersion.String(),
67-
Kind: "User",
68-
Name: user.Name,
69-
UID: user.UID,
70-
},
67+
if err := controllerutil.SetControllerReference(user, personalOrg, r.Scheme); err != nil {
68+
return fmt.Errorf("failed to set controller reference: %w", err)
7169
}
7270
personalOrg.Spec.Type = "Personal"
7371
return nil

0 commit comments

Comments
 (0)