我正在尝试ARGO工作流程,并想了解如何冻结步骤。假设我有3个步骤的工作流程,并且在步骤2上失败了工作流程。因此,我想使用成功的步骤1的工件从步骤2重新提交工作流程。我该如何实现?我找不到文档中任何地方的指导。
我认为您应该考虑使用条件和伪像通过您的步骤。
条件提供了一种影响A的控制流的方法运行时工作流,具体取决于参数。在此示例中"打印赫洛"模板可能会或可能不会执行在输入参数上,"应该打印"。提交
$ argo submit examples/conditionals.yaml
该步骤将被跳过,因为"应该打印"会评估错误。提交时:
$ argo submit examples/conditionals.yaml -p should-print=true
将执行该步骤,因为"应该打印"将评估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:Kubernetes的工作流引擎,如作者在Coinflip示例上的使用所用。您可以在其GitHub页面上看到许多示例。