Skip to content

Commit b4524b0

Browse files
committed
fix ActiveDeadlineSeconds
Signed-off-by: acejilam <[email protected]>
1 parent 30a660b commit b4524b0

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

Diff for: pkg/controller/broadcastjob/broadcastjob_controller.go

+16-2
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,15 @@ func (r *ReconcileBroadcastJob) Reconcile(_ context.Context, request reconcile.R
245245
failed := int32(len(failedPods))
246246
succeeded := int32(len(succeededPods))
247247

248-
desiredNodes, restNodesToRunPod, podsToDelete := getNodesToRunPod(nodes, job, existingNodeToPodMap)
248+
isDeadLine := func(job *appsv1alpha1.BroadcastJob) bool {
249+
if job.Spec.CompletionPolicy.Type == appsv1alpha1.Always &&
250+
job.Spec.CompletionPolicy.ActiveDeadlineSeconds != nil {
251+
return time.Since(job.CreationTimestamp.Time) >= time.Duration(*job.Spec.CompletionPolicy.ActiveDeadlineSeconds)*time.Second
252+
}
253+
return false
254+
}
255+
256+
desiredNodes, restNodesToRunPod, podsToDelete := getNodesToRunPod(nodes, job, existingNodeToPodMap, isDeadLine)
249257
desired := int32(len(desiredNodes))
250258
klog.Infof("%s/%s has %d/%d nodes remaining to schedule pods", job.Namespace, job.Name, len(restNodesToRunPod), desired)
251259
klog.Infof("Before broadcastjob reconcile %s/%s, desired=%d, active=%d, failed=%d", job.Namespace, job.Name, desired, active, failed)
@@ -514,7 +522,9 @@ func isJobFailed(job *appsv1alpha1.BroadcastJob, pods []*corev1.Pod) (bool, stri
514522
// * restNodesToRunPod: the nodes do not have pods running yet, excluding the nodes not satisfying constraints such as affinity, taints
515523
// * podsToDelete: the pods that do not satisfy the node constraint any more
516524
func getNodesToRunPod(nodes *corev1.NodeList, job *appsv1alpha1.BroadcastJob,
517-
existingNodeToPodMap map[string]*corev1.Pod) (map[string]*corev1.Pod, []*corev1.Node, []*corev1.Pod) {
525+
existingNodeToPodMap map[string]*corev1.Pod,
526+
isDeadline func(job *appsv1alpha1.BroadcastJob) bool,
527+
) (map[string]*corev1.Pod, []*corev1.Node, []*corev1.Pod) {
518528

519529
var podsToDelete []*corev1.Pod
520530
var restNodesToRunPod []*corev1.Node
@@ -530,6 +540,10 @@ func getNodesToRunPod(nodes *corev1.NodeList, job *appsv1alpha1.BroadcastJob,
530540
klog.Infof("Pod %s does not fit on node %s due to %v", pod.Name, node.Name, err)
531541
podsToDelete = append(podsToDelete, pod)
532542
continue
543+
} else if isDeadline(job) {
544+
klog.Infof("Pod %s need to delete due to deadline", pod.Name)
545+
podsToDelete = append(podsToDelete, pod)
546+
continue
533547
}
534548
desiredNodes[node.Name] = pod
535549
} else {

0 commit comments

Comments
 (0)