1
votes

I've written down a workflow for Argo below which consists of a (container-based) template and a DAG. The DAG should pass a variable amount of values into the template's input parameters.

Is this possible?

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: dag-
spec:
  entrypoint: do-something
  templates:
    - name: something
      inputs:
        parameters:
          - name: values
      container:
        image: some-image
        args: ["{{inputs.parameters.values}}"]  # This field must be converted to ["1", "3", "6", "9"]

    - name: do-something
      dag:
        tasks:
          - name: do-it
            template: something
            arguments:
              parameters:
                - name: values
                  value: [1, 3, 6, 9]

1

1 Answers

0
votes

I raised an issue, and it's not possible this way. The suggested workaround is to create a layer which parses a string into a list:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: dag-
spec:
  entrypoint: do-something
  templates:
    - name: something
      inputs:
        parameters:
          - name: values
      container:
        image: alpine:latest
        command: [sh, -c]
        args: ["parselist {{inputs.parameters.values}}"]

    - name: do-something
      dag:
        tasks:
          - name: do-it
            template: something
            arguments:
              parameters:
                - name: values
                  value: '["1", "3", "6", "9"]'