首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从argo工作流传递参数列表并在argo工作流模板中使用

如何从argo工作流传递参数列表并在argo工作流模板中使用
EN

Stack Overflow用户
提问于 2022-04-20 15:39:16
回答 1查看 1.7K关注 0票数 3
代码语言:javascript
复制
apiVersion: argoproj.io/v1alpha1
kind: Workflow
.
.
  - name: mytemplate
    steps:
    - - name: mytask
        templateRef:
          name: ABCDworkflowtemplate
          template: taskA
        arguments:
          parameters:
            - name: mylist
              value: [10,"some",false]  
....................
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: ABCDworkflowtemplate
 
spec:
  templates:
    - name: taskA
      inputs:
        parameters:
          - name: mylist
.

我的问题是如何使用这个列表{{input.parameters.?}}的每个元素?帮我找些推荐信。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-24 12:51:23

您并没有真正指定要对这些值做什么,所以我将解释使用此输入的两种方法。

  1. 数组更常见的用法是使用"withParam“对数组进行迭代,使用这种语法,将为每个项创建一个新任务(pod)。

代码语言:javascript
复制
  templates:
    - name: taskA
      inputs:
        parameters:
          - name: mylist
      steps:
        - - name: doSomeWithItem
            template: doSomeWithItem
            arguments:
              parameters:
                - name: item
                  value: "{{item}}"
            withParam: "{{inputs.parameters.mylist}}"

    - name: doSomeWithItem
      inputs:
        parameters:
          - name: item
      container:
        image: python:alpine3.6
        command: [ python ]
        source: |
          print("{{inputs.parameters.item}}")

另一个选项是将整个数组作为变量传递给pod,并根据需要使用自定义逻辑:

代码语言:javascript
复制
  templates:
    - name: taskA
      inputs:
        parameters:
          - name: mylist
      steps:
        - - name: doSomethingWithList
            template: doSomethingWithList
            arguments:
              parameters:
                - name: list
                  value: "{{inputs.parameters.mylist}}"

    - name: doSomethingWithList
      inputs:
        parameters:
          - name: list
      container:
        image: python:alpine3.6
        command: [ python ]
        source: |
          if (list[2] == 'some'):
            // do somehting
          else if (list[0] == 10]:
            // do something
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71942509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档