将多个模板输入传递到Argo Workflow值

问题描述

我已经写下了Argo的工作流程,该工作流程由一个(基于容器的)模板和一个DAG组成。 DAG应该将可变数量的值传递到模板的输入参数中。

这可能吗?

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]

解决方法

我举起了an issue,这种方式是不可能的。建议的解决方法是创建一个将字符串解析为列表的层:

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"]'