Я пробую рабочий процесс Argo и хотел бы понять, как заморозить шаг. Допустим, у меня трехэтапный рабочий процесс, и рабочий процесс завершился неудачно на шаге 2. Поэтому я хотел бы повторно отправить рабочий процесс из шага 2, используя артефакт успешного шага 1. Как я могу этого добиться? Я не мог найти указаний в документе.
Как пропустить шаг в рабочем процессе Арго
Ответы (1)
Я думаю, вам следует рассмотреть возможность использования условий и Прохождение артефакта в ваших шагах.
Условные выражения позволяют влиять на поток управления рабочего процесса во время выполнения в зависимости от параметров. В этом примере шаблон print-hello может выполняться или не выполняться в зависимости от входного параметра «should-print». При отправке с
$ argo submit examples/conditionals.yaml
шаг будет пропущен, так как 'should-print' вернет false. При отправке с:
$ argo submit examples/conditionals.yaml -p should-print=true
шаг будет выполнен, так как 'should-print' вернет истину.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: conditional-
spec:
entrypoint: conditional-example
arguments:
parameters:
- name: should-print
value: "false"
templates:
- name: conditional-example
inputs:
parameters:
- name: should-print
steps:
- - name: print-hello
template: whalesay
when: "{{inputs.parameters.should-print}} == true"
- name: whalesay
container:
image: docker/whalesay:latest
command: [sh, -c]
args: ["cowsay hello"]
Если вы используете условия на каждом шаге, вы сможете начать с нужного шага с соответствующими условиями.
Также есть добыча в этой статье Argo: Workflow Engine for Kubernetes как Автор объясняет использование условий в примере coinflip. Вы можете увидеть множество примеров на их странице GitHub.