I am new to using Argo Workflows. I have written down a sample workflow for demo purposes. Below is the attached workflow YAML in which I am facing this issue in the last step. The last step sayHello is erroring out with exit status 2 and the logs show up the error to be :
'/bin/sh: arithmetic syntax error'
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
name: program-1-prints
spec:
entrypoint: main
templates:
- name: main
steps:
- - name: addTwoNos
template: addTwoNosTemplate
arguments:
parameters:
- name: a
value: '2'
- name: b
value: '4'
- - name: addTenToResult
template: addTwoNosTemplate
arguments:
parameters:
- name: a
value: '{{steps.addTwoNos.outputs.result}}'
- name: b
value: '10'
- - name: sayHello
template: sayHello
when: '{{steps.addTenToResult.outputs.result}} > 10'
- name: addTwoNosTemplate
inputs:
parameters:
- name: a
- name: b
container:
image: 'alpine:latest'
command:
- sh
- '-c'
args:
- 'echo $(( {{inputs.parameters.a}} + {{inputs.parameters.b}} ))'
- name: sayHello
inputs:
parameters:
- name: result
value: '{{steps.addTenToResult.outputs.result}}'
container:
image: 'alpine:latest'
command:
- sh
- '-c'
args:
- 'echo $(( {{inputs.parameters.result}} ))'
The result
input to the sayHello
template must be passed explicitly from the third step of the main
template.
steps.addTenToResult.outputs.result
has no meaning in the sayHello
template definition. Variables starting with steps.
only have meaning in steps templates (i.e. templates with the steps
field populated, like in main
).
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
name: program-1-prints
spec:
entrypoint: main
templates:
- name: main
steps:
- - name: addTwoNos
template: addTwoNosTemplate
arguments:
parameters:
- name: a
value: '2'
- name: b
value: '4'
- - name: addTenToResult
template: addTwoNosTemplate
arguments:
parameters:
- name: a
value: '{{steps.addTwoNos.outputs.result}}'
- name: b
value: '10'
- - name: sayHello
template: sayHello
when: '{{steps.addTenToResult.outputs.result}} > 10'
arguments:
parameters:
- name: result
value: '{{steps.addTenToResult.outputs.result}}'
- name: addTwoNosTemplate
inputs:
parameters:
- name: a
- name: b
container:
image: 'alpine:latest'
command:
- sh
- '-c'
args:
- 'echo $(( {{inputs.parameters.a}} + {{inputs.parameters.b}} ))'
- name: sayHello
inputs:
parameters:
- name: result
container:
image: 'alpine:latest'
command:
- sh
- '-c'
args:
- 'echo $(( {{inputs.parameters.result}} ))'