Skip to content

Commit

Permalink
koord-descheduler: handle reservation filter in preparePendingJob (#1542
Browse files Browse the repository at this point in the history
)

Signed-off-by: liuming6 <liuming6@360.cn>
Co-authored-by: liuming6 <liuming6@360.cn>
  • Loading branch information
lucming and liuming6 committed Aug 14, 2023
1 parent 5f2538f commit be610cd
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 5 deletions.
11 changes: 6 additions & 5 deletions pkg/descheduler/controllers/migration/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,12 @@ func (r *Reconciler) preparePendingJob(ctx context.Context, job *sev1alpha1.PodM
return reconcile.Result{}, err
}
}

if !r.reservationFilter(pod) {
err = fmt.Errorf("pod %q can not be migrated by ReservationFirst mode because pod.schedulerName is not support reservation", klog.KObj(pod))
return reconcile.Result{}, err
}

markPodPrepareMigrating(pod)
if !evictionsutil.HaveEvictAnnotation(job) {
if aborted, err := r.abortJobIfNonRetryablePodFilterFailed(ctx, pod, job); aborted || err != nil {
Expand Down Expand Up @@ -846,11 +852,6 @@ func (r *Reconciler) createReservation(ctx context.Context, job *sev1alpha1.PodM
return err
}

if !r.reservationFilter(pod) {
err = fmt.Errorf("pod %q can not be migrated by ReservationFirst mode because pod.schedulerName is not support reservation", klog.KObj(pod))
return err
}

reservationOptions := reservation.CreateOrUpdateReservationOptions(job, pod)
job.Spec.ReservationOptions = reservationOptions

Expand Down
9 changes: 9 additions & 0 deletions pkg/descheduler/controllers/migration/controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1545,6 +1545,9 @@ func TestRequeueJobIfRetryablePodFilterFailed(t *testing.T) {
},
},
},
Spec: corev1.PodSpec{
SchedulerName: "koord-scheduler",
},
Status: corev1.PodStatus{
Phase: corev1.PodRunning,
},
Expand Down Expand Up @@ -1596,6 +1599,9 @@ func TestAbortJobIfNonRetryablePodFilterFailed(t *testing.T) {
},
},
},
Spec: corev1.PodSpec{
SchedulerName: "koord-scheduler",
},
Status: corev1.PodStatus{
Phase: corev1.PodRunning,
},
Expand Down Expand Up @@ -2701,6 +2707,9 @@ func TestAllowAnnotatedPodMigrationJobPassFilter(t *testing.T) {
},
},
},
Spec: corev1.PodSpec{
SchedulerName: "koord-scheduler",
},
Status: corev1.PodStatus{
Phase: corev1.PodRunning,
},
Expand Down

0 comments on commit be610cd

Please sign in to comment.