Argoworkflow pass argo step parameter as null if the step is skipped

72 Views Asked by At

I want to argo set the output parameter generated by previous steps to null when the step is skipped.When the step runs i am getting the correct output hello world but when the step is getting skipped iam getting the placeholder value itself as below when skip is false : Hello world when skip is true : {{steps.generate-parameter.outputs.parameters.result}}

i tried using expression but steps.generate-parameter.outputs.parameters.result is not getting resolved in expression and treating as a string

kind: Workflow
metadata:
  generateName: output-parameter-
spec:
  entrypoint: output-parameter
  arguments:
    parameters:
      - name: skip
        value: false
  templates:
    - name: output-parameter
      steps:
        - - name: generate-parameter
            template: whalesay
            when: "{{workflow.parameters.skip}} == false"
        - - name: consume-parameter
            template: print-message
            arguments:
              parameters:
                - name: message
                  value: '{{ steps.generate-parameter.outputs.parameters.result }}'

    - name: whalesay
      container:
        image: docker/whalesay:latest
        command: [sh, -c]
        args: ["sleep 1; echo -n hello world > /tmp/hello_world.txt"]
      outputs:
        parameters:
          - name: result
            default: ""
            valueFrom:
              default: "Foobar"   # Default value to use if retrieving valueFrom fails. If not provided workflow will fail instead
              path: /tmp/hello_world.txt

    - name: print-message
      inputs:
        parameters:
          - name: message
      container:
        image: docker/whalesay:latest
        command: [cowsay]
        args: ["{{inputs.parameters.message}}"]```
0

There are 0 best solutions below