Skip to content
This repository was archived by the owner on Feb 18, 2025. It is now read-only.

Commit 424e8c6

Browse files
authored
automatically convert from 2.2 to 2.3 finalizers (#163)
1 parent a94c12b commit 424e8c6

File tree

2 files changed

+21
-8
lines changed

2 files changed

+21
-8
lines changed

internal/controller/appwrapper_controller.go

+9-8
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,15 @@ type AppWrapperReconciler struct {
4646
}
4747

4848
const (
49-
nameLabel = "appwrapper.mcad.ibm.com" // owner name label for wrapped resources
50-
namespaceLabel = "appwrapper.mcad.ibm.com/namespace" // owner namespace label for wrapped resources
51-
assignedClusterLabel = "appwrapper.mcad.ibm.com/assignedCluster" // cluster to which appwrapper has been assigned for execution
52-
serializedStatusKey = "appwrapper.mcad.ibm.com/serializedStatus" // annotation key for serializing status from hub to spoke
53-
dispatchFinalizer = "workload.codeflare.dev/finalizer" // finalizer name for dispatcher
54-
runnerFinalizer = "workload.codeflare.dev/finalizer_runner" // finalizer name for runner
55-
nvidiaGpu = "nvidia.com/gpu" // GPU resource name
56-
specNodeName = ".spec.nodeName" // key to index pods based on node placement
49+
nameLabel = "appwrapper.mcad.ibm.com" // owner name label for wrapped resources
50+
namespaceLabel = "appwrapper.mcad.ibm.com/namespace" // owner namespace label for wrapped resources
51+
assignedClusterLabel = "appwrapper.mcad.ibm.com/assignedCluster" // cluster to which appwrapper has been assigned for execution
52+
serializedStatusKey = "appwrapper.mcad.ibm.com/serializedStatus" // annotation key for serializing status from hub to spoke
53+
legacyFinalizer = "workload.codeflare.dev/finalizer" // finalizer name used in 2.2.0 and earlier
54+
dispatchFinalizer = "workload.codeflare.dev/finalizer_dispatcher" // finalizer name for dispatcher
55+
runnerFinalizer = "workload.codeflare.dev/finalizer_runner" // finalizer name for runner
56+
nvidiaGpu = "nvidia.com/gpu" // GPU resource name
57+
specNodeName = ".spec.nodeName" // key to index pods based on node placement
5758
)
5859

5960
// Structured logger

internal/controller/runner.go

+12
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,18 @@ func (r *Runner) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result,
9696
return ctrl.Result{}, nil
9797
}
9898

99+
if controllerutil.ContainsFinalizer(appWrapper, legacyFinalizer) {
100+
// Convert 2.2.0 and earlier single finalizer to two finalizer design
101+
controllerutil.AddFinalizer(appWrapper, dispatchFinalizer)
102+
controllerutil.AddFinalizer(appWrapper, runnerFinalizer)
103+
controllerutil.RemoveFinalizer(appWrapper, legacyFinalizer)
104+
if err := r.Update(ctx, appWrapper); err != nil {
105+
return ctrl.Result{}, err
106+
}
107+
log.FromContext(ctx).Info("Converted 2.2 finalizer to 2.3 finalizers")
108+
return ctrl.Result{Requeue: true}, nil
109+
}
110+
99111
// handle state transitions that occur on the execution cluster
100112
switch appWrapper.Status.State {
101113
case mcadv1beta1.Empty:

0 commit comments

Comments
 (0)