Я думаю, вам стоит подумать об использовании условий и прохождения артефакта в ваших шагах.
Условные обозначения позволяют влиять на поток управления
рабочий процесс во время выполнения, в зависимости от параметров. В этом примере
шаблон 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 .