<p>I'm following the examples on the Argo GitHub but I am unable to change the parameter of message when I move the template into steps.</p>

<pre><code>apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: hello-world-parameters-
spec:
 # invoke the whalesay template with
 # "hello world" as the argument
 # to the message parameter
 entrypoint: entry-point

  templates:
  - name: entry-point
  steps:
    - - name: print-message
        template: whalesay
        arguments:
          parameters:
          - name: message
            value: hello world



 - name: whalesay
   inputs:
     parameters:
     - name: message       # parameter declaration
    container:
    # run cowsay with that message input parameter as args
    image: docker/whalesay
    command: [cowsay]
    args: ["{{inputs.parameters.message}}"]
</code></pre>

<p>If I submit the workflow using the following command:</p>

<pre><code>argo submit .\workflow.yml -p message="goodbye world"
</code></pre>

<p>It still prints out hello world and not goodbye world. Not sure why</p>

Softey
<p>The <code>-p</code> argument sets the global workflow parameters defined in the <code>arguments</code> field of workflow spec. More information is available <a href="https://github.com/argoproj/argo-workflows/tree/master/examples#parameters" rel="nofollow noreferrer">here</a> . To use global parameters your workflow should be changed are the following:</p>
<pre><code>apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: hello-world-parameters-
spec:
  # invoke the whalesay template with
  # &quot;hello world&quot; as the argument
  # to the message parameter
  entrypoint: entry-point
  arguments:
    parameters:
    - name: message
      value: hello world

  templates:
  - name: entry-point
    steps:
    - - name: print-message
        template: whalesay
        arguments:
          parameters:
          - name: message
            value: &quot;{{workflow.parameters.message}}&quot;
  - name: whalesay
    inputs:
      parameters:
       - name: message       # parameter declaration
    container:
      # run cowsay with that message input parameter as args
      image: docker/whalesay
      command: [cowsay]
      args: [&quot;{{inputs.parameters.message}}&quot;]

</code></pre>
