☑️ Ensure Workflow DAG fail-fast on node failure
As an alternative to specifying sequences of steps in Workflow, you can define the workflow as a directed-acyclic graph (DAG) by specifying the dependencies of each task.
The DAG logic has a built-in fail fast feature to stop scheduling new steps, as soon as it detects that one of the DAG nodes is failed. Then it waits until all DAG nodes are completed before failing the DAG itself. The FailFast flag default is true. If set to false, it will allow a DAG to run all branches of the DAG to completion (either success or failure), regardless of the failed outcomes of branches in the DAG.
Targeted objects by this rule (types of kind): Workflow
Complexity: easy (What does this mean?)
Policy as code identifier: ARGO_WORKFLOW_INCORRECT_FAILFAST_VALUE_FALSE
This rule will fail
If failFast
is explicitly set to false:
kind: Workflow
spec:
- dag:
failFast: false
Rule output in the CLI
$ datree test *.yaml
>> File: failExample.yaml
❌ Ensure Workflow DAG fail-fast on node failure [1 occurrence]
💡 Incorrect value for key `failFast` - value should be `true` to prevent DAG from running on all branches, regardless of the failed outcomes of the DAG branches
How to fix this failure
Set the failFast
key to true or omit it:
kind: Workflow
spec:
- dag:
failFast: true