From 948355b84068e41b42d20f53120337c928e8501c Mon Sep 17 00:00:00 2001 From: ishaansehgal99 Date: Fri, 19 Jul 2024 21:00:01 -0400 Subject: [PATCH 1/3] nits: ensure finalizer --- pkg/controllers/workspace_controller.go | 28 ++++++++++++++----------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/pkg/controllers/workspace_controller.go b/pkg/controllers/workspace_controller.go index c717a51c8..7958565f6 100644 --- a/pkg/controllers/workspace_controller.go +++ b/pkg/controllers/workspace_controller.go @@ -6,6 +6,7 @@ package controllers import ( "context" "fmt" + "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sort" "strings" "time" @@ -38,7 +39,6 @@ import ( ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller" - "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/handler" "sigs.k8s.io/controller-runtime/pkg/reconcile" ) @@ -66,20 +66,12 @@ func (c *WorkspaceReconciler) Reconcile(ctx context.Context, req reconcile.Reque klog.InfoS("Reconciling", "workspace", req.NamespacedName) + if err := c.ensureFinalizer(ctx, workspaceObj); err != nil { + return reconcile.Result{}, err + } // Handle deleting workspace, garbage collect all the resources. if !workspaceObj.DeletionTimestamp.IsZero() { return c.deleteWorkspace(ctx, workspaceObj) - } else { - // Ensure finalizer - if !controllerutil.ContainsFinalizer(workspaceObj, consts.WorkspaceFinalizer) { - controllerutil.AddFinalizer(workspaceObj, consts.WorkspaceFinalizer) - updateCopy := workspaceObj.DeepCopy() - if updateErr := c.Update(ctx, updateCopy, &client.UpdateOptions{}); updateErr != nil { - klog.ErrorS(updateErr, "failed to ensure the finalizer to the workspace", - "workspace", klog.KObj(updateCopy)) - return ctrl.Result{}, updateErr - } - } } if workspaceObj.Inference != nil && workspaceObj.Inference.Preset != nil { @@ -92,6 +84,18 @@ func (c *WorkspaceReconciler) Reconcile(ctx context.Context, req reconcile.Reque return c.addOrUpdateWorkspace(ctx, workspaceObj) } +func (c *WorkspaceReconciler) ensureFinalizer(ctx context.Context, workspaceObj *kaitov1alpha1.Workspace) error { + if !controllerutil.ContainsFinalizer(workspaceObj, consts.WorkspaceFinalizer) { + patch := client.MergeFrom(workspaceObj.DeepCopy()) + controllerutil.AddFinalizer(workspaceObj, consts.WorkspaceFinalizer) + if err := c.Client.Patch(ctx, workspaceObj, patch); err != nil { + klog.ErrorS(err, "failed to ensure the finalizer to the workspace", "workspace", klog.KObj(workspaceObj)) + return err + } + } + return nil +} + func (c *WorkspaceReconciler) addOrUpdateWorkspace(ctx context.Context, wObj *kaitov1alpha1.Workspace) (reconcile.Result, error) { // Read ResourceSpec err := c.applyWorkspaceResource(ctx, wObj) From 8d278d558331ebc1bbbfb9e686ce1664c3f1e19b Mon Sep 17 00:00:00 2001 From: ishaansehgal99 Date: Fri, 19 Jul 2024 21:25:33 -0400 Subject: [PATCH 2/3] nits: ensure finalizer --- pkg/controllers/workspace_controller.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/controllers/workspace_controller.go b/pkg/controllers/workspace_controller.go index 7958565f6..8a673dc87 100644 --- a/pkg/controllers/workspace_controller.go +++ b/pkg/controllers/workspace_controller.go @@ -86,8 +86,10 @@ func (c *WorkspaceReconciler) Reconcile(ctx context.Context, req reconcile.Reque func (c *WorkspaceReconciler) ensureFinalizer(ctx context.Context, workspaceObj *kaitov1alpha1.Workspace) error { if !controllerutil.ContainsFinalizer(workspaceObj, consts.WorkspaceFinalizer) { - patch := client.MergeFrom(workspaceObj.DeepCopy()) + original := workspaceObj.DeepCopy() controllerutil.AddFinalizer(workspaceObj, consts.WorkspaceFinalizer) + // Create a patch from the original object to the modified object + patch := client.MergeFrom(original) if err := c.Client.Patch(ctx, workspaceObj, patch); err != nil { klog.ErrorS(err, "failed to ensure the finalizer to the workspace", "workspace", klog.KObj(workspaceObj)) return err From 890052640c39fd34414201eada50fade267905e1 Mon Sep 17 00:00:00 2001 From: ishaansehgal99 Date: Fri, 19 Jul 2024 21:35:36 -0400 Subject: [PATCH 3/3] nits: ensure finalizer --- pkg/controllers/workspace_controller.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkg/controllers/workspace_controller.go b/pkg/controllers/workspace_controller.go index 8a673dc87..7958565f6 100644 --- a/pkg/controllers/workspace_controller.go +++ b/pkg/controllers/workspace_controller.go @@ -86,10 +86,8 @@ func (c *WorkspaceReconciler) Reconcile(ctx context.Context, req reconcile.Reque func (c *WorkspaceReconciler) ensureFinalizer(ctx context.Context, workspaceObj *kaitov1alpha1.Workspace) error { if !controllerutil.ContainsFinalizer(workspaceObj, consts.WorkspaceFinalizer) { - original := workspaceObj.DeepCopy() + patch := client.MergeFrom(workspaceObj.DeepCopy()) controllerutil.AddFinalizer(workspaceObj, consts.WorkspaceFinalizer) - // Create a patch from the original object to the modified object - patch := client.MergeFrom(original) if err := c.Client.Patch(ctx, workspaceObj, patch); err != nil { klog.ErrorS(err, "failed to ensure the finalizer to the workspace", "workspace", klog.KObj(workspaceObj)) return err