Skip to content

Commit 3ed131c

Browse files
authored
koord-descheduler: release Reservation when PodMigrationJob completes or is deleted (#438)
Signed-off-by: Joseph <joseph.t.lee@outlook.com>
1 parent bed2191 commit 3ed131c

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

pkg/descheduler/controllers/migration/controller.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)