我正在尝试 Argo 工作流程,并想了解如何冻结步骤。假设我有 3 步工作流,而工作流在第 2 步失败。所以我想使用成功的第 1 步的工件从第 2 步重新提交工作流。我怎样才能做到这一点?我在文档的任何地方都找不到指导。
问问题
4296 次
1 回答
3
条件提供了一种在运行时影响工作流控制流的方法,具体取决于参数。在本例中,“print-hello”模板可能会或可能不会执行,具体取决于输入参数“should-print”。提交时
$ argo submit examples/conditionals.yaml
该步骤将被跳过,因为“应该打印”将评估为假。提交时:
$ argo submit examples/conditionals.yaml -p 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:Kubernetes的工作流引擎中也有一个战利品,作者解释了coinflip 示例中条件的使用。您可以在他们的GitHub 页面上看到许多示例。
于 2019-07-02T09:19:09.323 回答