Как проверить, успешно ли выполнено задание kubernetes, с помощью библиотеки go клиента - PullRequest
0 голосов
/ 12 октября 2018

В библиотеке есть много полей, но в основном это говорит о том, завершена работа или нет, но как проверить, завершена ли работа и выполнена ли она успешно или нет,

if con.Type == v1.JobComplete && con.Status == corev1.ConditionTrue && job.Status.Succeeded > 0 {
    fmt.Printf("Job: %v Completed Successfully: %v\n", name, con)
    break
} else if con.Type == v1.JobFailed && con.Status == corev1.ConditionTrue {
    if job.Status.Active == 0 && job.Status.Succeeded == 0 {
        fmt.Printf("Job: %v Failed: %v\n", name, con)
        break
    }
}

Этовот как я проверяю сейчас, я не совсем уверен, что это правильно

1 Ответ

0 голосов
/ 24 октября 2018

Вы можете использовать только переменные Active, Succeeded и Failed, чтобы узнать состояние задания.

Пример:

    batchClient := kubernetesapi.BatchV1()
    jobClient := batchClient.Jobs(NameSpace)


    job, _ := jobClient.Get(jobName, metav1.GetOptions{})

    if job.Status.Active > 0 {
    return "Job is still running"

    } else {
      if job.Status.Succeeded > 0 {
       return "Job Successful"
       } 
       return "Job failed"
    }

Это должно учитывать любое количество попытокзадание, если вы используете backOffLimit как более 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...