@@ -91,6 +91,10 @@ func New(args runtime.Object, handle framework.Handle) (framework.Plugin, error)
9191 DeleteFunc : func (event event.DeleteEvent ) bool {
9292 job := event .Object .(* sev1alpha1.PodMigrationJob )
9393 r .assumedCache .delete (job )
94+ // TODO(joseph): It's better that delete reservation asynchronously
95+ if err = r .deleteReservation (context .TODO (), job ); err != nil {
96+ klog .Errorf ("Failed to delete reservation, MigrationJob: %s, err: %v" , job .Name , err )
97+ }
9498 return true
9599 }}); err != nil {
96100 return nil , err
@@ -360,6 +364,12 @@ func (r *Reconciler) doMigrate(ctx context.Context, job *sev1alpha1.PodMigration
360364 return result , nil
361365 }
362366
367+ // TODO(joseph): currently Reservation does not support allocateOnce semantics.
368+ // It is our responsibility to clean up the Reservation ourselves
369+ if err = r .deleteReservation (ctx , job ); err != nil {
370+ klog .Errorf ("Failed to delete reservation, MigrationJob: %s, err: %v" , job .Name , err )
371+ }
372+
363373 boundPod := reservationObj .GetBoundPod ()
364374 podNamespacedName := types.NamespacedName {Namespace : boundPod .Namespace , Name : boundPod .Name }
365375 job .Status .PodRef = boundPod
@@ -672,6 +682,12 @@ func (r *Reconciler) waitForPendingPodScheduled(ctx context.Context, job *sev1al
672682 return reconcile.Result {RequeueAfter : defaultRequeueAfter }, err
673683 }
674684
685+ // TODO(joseph): currently Reservation does not support allocateOnce semantics.
686+ // It is our responsibility to clean up the Reservation ourselves
687+ if err = r .deleteReservation (ctx , job ); err != nil {
688+ klog .Errorf ("Failed to delete reservation, MigrationJob: %s, err: %v" , job .Name , err )
689+ }
690+
675691 job .Status .Phase = sev1alpha1 .PodMigrationJobSucceed
676692 job .Status .Status = "Complete"
677693 job .Status .Reason = ""
0 commit comments