From d0cf331423aa3dda103dbce0544c2502d143d357 Mon Sep 17 00:00:00 2001 From: aCLr Date: Thu, 4 Mar 2021 10:43:39 +0300 Subject: [PATCH] wait for failed jobs Signed-off-by: aCLr --- pkg/kube/wait.go | 4 ++-- pkg/kube/wait_test.go | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/pkg/kube/wait.go b/pkg/kube/wait.go index 40f7b7a6e..a325cddb1 100644 --- a/pkg/kube/wait.go +++ b/pkg/kube/wait.go @@ -190,9 +190,9 @@ func (w *waiter) isPodReady(pod *corev1.Pod) bool { } func (w *waiter) jobReady(job *batchv1.Job) bool { - if job.Status.Failed >= *job.Spec.BackoffLimit { + if job.Status.Failed > *job.Spec.BackoffLimit { w.log("Job is failed: %s/%s", job.GetNamespace(), job.GetName()) - return false + return true } if job.Status.Succeeded < *job.Spec.Completions { w.log("Job is not completed: %s/%s", job.GetNamespace(), job.GetName()) diff --git a/pkg/kube/wait_test.go b/pkg/kube/wait_test.go index 3f7b86710..adde3b217 100644 --- a/pkg/kube/wait_test.go +++ b/pkg/kube/wait_test.go @@ -266,6 +266,16 @@ func Test_waiter_jobReady(t *testing.T) { args: args{job: newJob("foo", 1, 1, 0, 1)}, want: false, }, + { + name: "job is completed with backoffLimit=0", + args: args{job: newJob("foo", 0, 1, 1, 0)}, + want: true, + }, + { + name: "job is failed and it is ok", + args: args{job: newJob("foo", 0, 1, 0, 1)}, + want: true, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {