From f4fbf53db8a57ba169f0ec87e8ffadbd46fe2fc0 Mon Sep 17 00:00:00 2001 From: Daniel Panzella Date: Tue, 28 Apr 2026 17:34:56 -0700 Subject: [PATCH 1/3] cleanup: Delete completed migration jobs after successful migrations in v2 reconciler (#168) --- internal/controller/v2/reconcile_v2.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/internal/controller/v2/reconcile_v2.go b/internal/controller/v2/reconcile_v2.go index 9dfbfc9..93ec5c6 100644 --- a/internal/controller/v2/reconcile_v2.go +++ b/internal/controller/v2/reconcile_v2.go @@ -1869,6 +1869,19 @@ func runMigrations(ctx context.Context, client ctrlClient.Client, wandb *apiv2.W version := wandb.Spec.Wandb.Version if wandb.Status.Wandb.Migration.Ready && wandb.Status.Wandb.Migration.Version == version { + for name, _ := range manifest.Migrations { + jobName := fmt.Sprintf("%s-%s", wandb.Name, name) + job := &batchv1.Job{ + ObjectMeta: metav1.ObjectMeta{ + Name: jobName, + Namespace: wandb.Namespace, + }, + } + err := client.Delete(ctx, job) + if err != nil { + return ctrl.Result{}, fmt.Errorf("failed to delete migration job %s: %v", jobName, err) + } + } return ctrl.Result{}, nil } From 113bcfeeaccfe7c05ba8e18a2a90313eafe0f8e3 Mon Sep 17 00:00:00 2001 From: Daniel Panzella Date: Tue, 28 Apr 2026 17:45:52 -0700 Subject: [PATCH 2/3] fix: Use DeletePropagationBackground for migration job deletion in v2 reconciler (#169) --- internal/controller/v2/reconcile_v2.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/controller/v2/reconcile_v2.go b/internal/controller/v2/reconcile_v2.go index 93ec5c6..7b67a55 100644 --- a/internal/controller/v2/reconcile_v2.go +++ b/internal/controller/v2/reconcile_v2.go @@ -1877,7 +1877,9 @@ func runMigrations(ctx context.Context, client ctrlClient.Client, wandb *apiv2.W Namespace: wandb.Namespace, }, } - err := client.Delete(ctx, job) + propagation := metav1.DeletePropagationBackground + deleteOptions := &ctrlClient.DeleteOptions{PropagationPolicy: &propagation} + err := client.Delete(ctx, job, deleteOptions) if err != nil { return ctrl.Result{}, fmt.Errorf("failed to delete migration job %s: %v", jobName, err) } From 09729c60af7e66409eba168c83606e7010c855ec Mon Sep 17 00:00:00 2001 From: Daniel Panzella Date: Wed, 29 Apr 2026 09:23:02 -0700 Subject: [PATCH 3/3] fix(controller): Fix infra registry check (#172) Co-authored-by: casey-coreweave --- pkg/utils/gvk.go | 2 +- pkg/utils/gvk_test.go | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 pkg/utils/gvk_test.go diff --git a/pkg/utils/gvk.go b/pkg/utils/gvk.go index 6853732..402c7df 100644 --- a/pkg/utils/gvk.go +++ b/pkg/utils/gvk.go @@ -13,7 +13,7 @@ func IsRegistered(scheme *runtime.Scheme, obj runtime.Object) bool { if err != nil || len(gvks) == 0 { return false } - return IsServerResource(fmt.Sprintf("%s.%s/%s", gvks[0].Kind, gvks[0].Group, gvks[0].Kind)) + return IsServerResource(fmt.Sprintf("%s.%s/%s", gvks[0].Kind, gvks[0].Group, gvks[0].Version)) } func AddServerResource(resource string) { diff --git a/pkg/utils/gvk_test.go b/pkg/utils/gvk_test.go new file mode 100644 index 0000000..8f5fcb7 --- /dev/null +++ b/pkg/utils/gvk_test.go @@ -0,0 +1,32 @@ +package utils + +import ( + "testing" + + "k8s.io/apimachinery/pkg/runtime" + gatewayv1 "sigs.k8s.io/gateway-api/apis/v1" +) + +func TestIsRegisteredUsesKindGroupVersion(t *testing.T) { + scheme := runtime.NewScheme() + if err := gatewayv1.Install(scheme); err != nil { + t.Fatalf("install gateway api scheme: %v", err) + } + + t.Run("returns true when server resource key uses version", func(t *testing.T) { + serverResources = map[string]bool{} + AddServerResource("HTTPRoute.gateway.networking.k8s.io/v1") + + if !IsRegistered(scheme, &gatewayv1.HTTPRoute{}) { + t.Fatalf("expected HTTPRoute to be registered") + } + }) + + t.Run("returns false when server resource key is missing", func(t *testing.T) { + serverResources = map[string]bool{} + + if IsRegistered(scheme, &gatewayv1.HTTPRoute{}) { + t.Fatalf("expected HTTPRoute to be unregistered") + } + }) +}