根据步骤自身的输出将 Argo 工作流步骤标记为已跳过

Mark Argo workflow step as skipped based on the step's own output

我知道我可以参考前面步骤的输出来跳过另一个步骤。是否可以在 argo 中根据其输出将步骤标记为已跳过?

我正在寻找这样的东西。这行不通,但有什么替代方案?

steps:
- - name: hello1
    template: echo
    when: "{{steps.hello1.outputs.result}} != hello1"
    arguments:
      parameters:
      - name: message
        value: hello1

无法根据自己的输出将步骤标记为已跳过。

当一个步骤被“标记为已跳过”时(在 UI,在其在 Kubernetes 中的内部表示中,等等)它不仅仅是被标记。该标记表示该步骤实际上已被跳过。

为了读取 hello1 的输出,您必须首先 运行 hello1 - 此时它不是,在事实上,跳过。

如果您要多次执行 hello1 (递归),那么未来的迭代可能会以过去迭代的输出为条件。这就是 Argo's coinflip-recursive example 的基础,即“掷硬币”直到出现正面。