Skip to main content
In this lesson you’ll learn how to define and use workflow-level (global) parameters in Argo Workflows. Parameters declared under spec.arguments.parameters are available to the entire workflow and can be consumed by one or more templates. This pattern enables reusing a single workflow manifest while supplying different inputs at submit time. Example: a minimal workflow that declares a global message parameter and passes it into a template to be used as the container argument:
Key points
  • Declare workflow-global parameters under spec.arguments.parameters.
  • Inside a template, declare the same parameter name under inputs.parameters and reference it with {{inputs.parameters.<name>}}.
  • Some fields also support direct workflow-level references using {{workflow.parameters.<name>}}.
A common way to reference a workflow parameter inside a template is to declare the parameter under the template’s inputs.parameters and then use the expression {{inputs.parameters.<name>}} in container args or other fields that accept template expressions. You can also reference workflow-level parameters directly using {{workflow.parameters.<name>}} in fields that accept template expressions.
Submit the workflow and watch the run (example using a public manifest URL):
Sample CLI output while the workflow is running:
You can also inspect and interact with the run in the Argo Workflows web UI. The workflow graph shows the single cowsay node for this run:
A browser screenshot of the Argo Workflows web interface showing a workflow graph with a single node labeled "cowsay-tptgl." Top action buttons (RESUBMIT, SUSPEND, STOP, TERMINATE, DELETE, LOGS, SHARE, WORKFLOW LINK) and a left-hand icon toolbar are visible.
When the run finishes successfully, the workflow parameters are shown in the completed status and the container logs include the parameter value:
Logs from the cowsay container:
Overriding the global parameter at submit time
  • UI: Click Resubmit in the web UI and edit parameter values before resubmitting.
  • CLI: Pass parameters inline with -p (or --parameter).
Example — override message via CLI:
Submitting with an overridden parameter produces a run using the new message. Example running status after overriding via CLI:
Logs showing the overridden text:
Parameter passing options at a glance Example parameter file (params.yaml):
CLI using parameter file:
Tips and references
  • Reuse the same manifest by changing inputs and entrypoints at submit time—no need to edit the YAML file.
  • For nested workflows or complex templates, prefer declaring template inputs.parameters and passing values via spec.arguments.parameters to keep intent explicit.
  • See the official Argo Workflows documentation for more parameter patterns and expression usage: Argo Workflows — Parameters and Artifacts.
Further reading

Watch Video