Как пропустить шаг в рабочем процессе Арго

Я пробую рабочий процесс Argo и хотел бы понять, как заморозить шаг. Допустим, у меня трехэтапный рабочий процесс, и рабочий процесс завершился неудачно на шаге 2. Поэтому я хотел бы повторно отправить рабочий процесс из шага 2, используя артефакт успешного шага 1. Как я могу этого добиться? Я не мог найти указаний в документе.


person user3368526    schedule 02.07.2019    source источник


Ответы (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.

person Crou    schedule 02.07.2019
comment
Спасибо за комментарий :) Я знаю условные выражения, но можно ли использовать артефакты, созданные в другом прогоне (например, артефакт из ранее неудачного)? - person user3368526; 03.07.2019
comment
Вы имеете в виду использование ошибочного артефакта рабочего процесса в новом рабочем процессе? - person Crou; 03.07.2019
comment
Он хотел бы использовать неудачный рабочий процесс и использовать другой образ для перезапуска с определенного этапа, на котором произошел сбой. Чтобы мне не приходилось повторять предыдущие шаги, которые были успешными, снова и снова. - person user3368526; 03.07.2019
comment
Я не знаю, но не думаю, что это должно быть возможно. Произошел сбой рабочего процесса, и не должно быть возможности использовать артефакты из этого рабочего процесса в новом рабочем процессе, особенно при изменении изображения. - person Crou; 03.07.2019