|
|
@ -42,10 +42,10 @@ import (
|
|
|
|
// ReadyCheckerOption is a function that configures a ReadyChecker.
|
|
|
|
// ReadyCheckerOption is a function that configures a ReadyChecker.
|
|
|
|
type ReadyCheckerOption func(*ReadyChecker)
|
|
|
|
type ReadyCheckerOption func(*ReadyChecker)
|
|
|
|
|
|
|
|
|
|
|
|
var ErrJobFailed = errors.New("job is failed")
|
|
|
|
var errJobFailed = errors.New("job is failed")
|
|
|
|
|
|
|
|
|
|
|
|
var TerminalErrors = []error{
|
|
|
|
var terminalErrors = []error{
|
|
|
|
ErrJobFailed,
|
|
|
|
errJobFailed,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// PausedAsReady returns a ReadyCheckerOption that configures a ReadyChecker
|
|
|
|
// PausedAsReady returns a ReadyCheckerOption that configures a ReadyChecker
|
|
|
@ -248,7 +248,7 @@ func (c *ReadyChecker) jobReady(job *batchv1.Job) (bool, error) {
|
|
|
|
if job.Status.Failed > *job.Spec.BackoffLimit {
|
|
|
|
if job.Status.Failed > *job.Spec.BackoffLimit {
|
|
|
|
c.log("Job is failed: %s/%s", job.GetNamespace(), job.GetName())
|
|
|
|
c.log("Job is failed: %s/%s", job.GetNamespace(), job.GetName())
|
|
|
|
// If a job is failed, it can't recover, so throw an error
|
|
|
|
// If a job is failed, it can't recover, so throw an error
|
|
|
|
return false, fmt.Errorf("%w: %s/%s", ErrJobFailed, job.GetNamespace(), job.GetName())
|
|
|
|
return false, fmt.Errorf("%w: %s/%s", errJobFailed, job.GetNamespace(), job.GetName())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if job.Spec.Completions != nil && job.Status.Succeeded < *job.Spec.Completions {
|
|
|
|
if job.Spec.Completions != nil && job.Status.Succeeded < *job.Spec.Completions {
|
|
|
|
c.log("Job is not completed: %s/%s", job.GetNamespace(), job.GetName())
|
|
|
|
c.log("Job is not completed: %s/%s", job.GetNamespace(), job.GetName())
|
|
|
|