Как пропустить шаг для рабочего процесса Argo - PullRequest
0 голосов
/ 02 июля 2019

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

1 Ответ

0 голосов
/ 02 июля 2019

Я думаю, вам стоит подумать об использовании условий и прохождения артефакта в ваших шагах.

Условные обозначения позволяют влиять на поток управления рабочий процесс во время выполнения, в зависимости от параметров. В этом примере шаблон print-hello может выполняться или не выполняться в зависимости от на входном параметре 'should-print'. Когда отправлено с

$ argo submit examples/conditionals.yaml

шаг будет пропущен, так как 'should-print' оценивает false. Когда представлено с:

$ argo submit examples/conditionals.yaml -p should-print=true

шаг будет выполнен, поскольку 'should-print' будет иметь значение true.

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 для Kubernetes , поскольку автор объясняет использование условий на примере coinflip . Вы можете увидеть много примеров на их странице GitHub .

...