diff --git a/internal/controller/v2/reconcile_v2.go b/internal/controller/v2/reconcile_v2.go index 9dfbfc91..7b67a556 100644 --- a/internal/controller/v2/reconcile_v2.go +++ b/internal/controller/v2/reconcile_v2.go @@ -1869,6 +1869,21 @@ 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, + }, + } + 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) + } + } return ctrl.Result{}, nil } diff --git a/pkg/utils/gvk.go b/pkg/utils/gvk.go index 6853732b..402c7df6 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 00000000..8f5fcb7c --- /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") + } + }) +}