Как дождаться tekton pipelinRun conditions
У меня есть следующий код в конвейере gitlab, который приводит к некоторому состоянию гонки:
kubectl apply -f pipelineRun.yaml
tkn pipelinerun logs -f pipeline-run
В
tkn
команда немедленно завершает работу, поскольку объект pipelineRun еще не создан. Есть одно очень хорошее решение этой проблемы:
kubectl apply -f pipelineRun.yaml
kubectl wait --for=condition=Running --timeout=60s pipelinerun/pipeline-run
tkn pipelinerun logs -f pipeline-run
К сожалению, это не работает должным образом, поскольку
Running
кажется недопустимым условием для объекта pipelineRun. Итак, мой вопрос: каковы допустимые условия объекта pipelineRun?
2 ответа
Тектон
TaskRuns
и используйте только условие типа.
Пример:
conditions:
- lastTransitionTime: "2020-05-04T02:19:14Z"
message: "Tasks Completed: 4, Skipped: 0"
reason: Succeeded
status: "True"
type: Succeeded
Различные статусы и сообщения, доступные для
Succeeded
состояние доступны в документации:
-
TaskRun
: https://tekton.dev/docs/pipelines/taskruns/#monitoring-execution-status -
PipelineRun
: https://tekton.dev/docs/pipelines/pipelineruns/#monitoring-execution-status
В качестве примечания, в API доступен тайм-аут активности . Однако этот тайм-аут не отображается в параметрах интерфейса командной строки. Для этого вы можете создать запрос функции tkn .
Я не стал искать слишком далеко, но похоже, что у них есть только два типа условий, импортированных из проекта knative.dev?
https://github.com/tektoncd/pipeline/blob/main/vendor/knative.dev/pkg/apis/condition_types.go#L32