My configuration DAG of Argo workflow was like this:
{ name: "my-workflow", dag: { tasks: [ { name: "step1", template: "template1", }, { name: "manual-check", template: "template-manual-check", depends: "step1.Failed", }, { name: "step2", template: "template2", depends: "manual-check", }, ], }, }
If “step1” failed, the “manual-check” will suspend the whole pipeline and let users (or customers) decide whether this pipeline could continue. But I met a funny situation when “step1” is successful: the “manual-check” step was omitted by workflow and “step2” would never be executed because it depends on “manual-check”!
The correct solution should let “step2” run when “step1” is successful. Therefore I need to change the configuration to this:
{ ...... { name: "step2", template: "template2", depends: "manual-check || step1.Succeeded", }, ], }, }
Thanks to this reference: “Enhanced Depends Logic“.