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:
- Declare workflow-global parameters under
spec.arguments.parameters. - Inside a template, declare the same parameter name under
inputs.parametersand 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.cowsay node for this run:

cowsay container:
- UI: Click Resubmit in the web UI and edit parameter values before resubmitting.
- CLI: Pass parameters inline with
-p(or--parameter).
message via CLI:
Example parameter file (params.yaml):
- 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.parametersand passing values viaspec.arguments.parametersto keep intent explicit. - See the official Argo Workflows documentation for more parameter patterns and expression usage: Argo Workflows — Parameters and Artifacts.