Overriding parameters#

The with_overrides method allows you to specify parameter overrides on tasks, subworkflows, and sub-launch plans at execution time. This is useful when you want to change the behavior of a task, subworkflow, or sub-launch plan without modifying the original definition.

Task parameters#

When calling a task, you can specify the following parameters in with_overrides:

For example, if you have a task that does not have caching enabled, you can use with_overrides to enable caching at execution time as follows:

my_task(a=1, b=2, c=3).with_overrides(cache=True)

Using with_overrides with name and node_name#

Using with_overrides with name on a task is a particularly useful feature. For example, you can use with_overrides(name="my_task") to give a specific name to a task execution, which will appear in the UI. The name specified can be chosen or generated at invocation time without modifying the task definition.

@workflow
def wf() -> int:
    my_task(a=1, b=1, c=1).with_overrides(name="my_task_1")
    my_task(a=2, b=2, c=2).with_overrides(name="my_task_2", node_name="my_node_2")
    return my_task(a=1, b=1, c=1)

The above code would produce the following workflow display in the UI:

Overriding name

There is also a related parameter called node_name that can be used to give a specific name to the DAG node for this task. The DAG node name is usually autogenerated as n0, n1, n2, etc. It appears in the node column of the workflow table. Overriding node_name results in the autogenerated name being replaced by the specified name:

Overriding node name

Note that the node_name was specified as my_node_2 in the code but appears as my_node_2 in the UI. This is to the fact that Kubernetes node names cannot contain underscores. Union automatically alters the name to be Kubernetes-compliant.

Subworkflow and sub-launch plan parameters#

When calling a workflow or launch plan from within a high-level workflow (in other words, when invoking a subworkflow or sub-launch plan), you can specify the following parameters in with_overrides: