如何在Argo中有条件地添加列表项?

问题描述 投票:0回答:1

我有一个工作流程模板,其中有一个新的

spec.arguments.parameters
条目,它是一个字符串
enum
,其中
'true'
'false'
作为可能的值。我想用它来有条件地添加一个条目到
spec.templates.[some-index].container.args
。我该怎么做呢? (我不想向数组添加空字符串;这会导致问题。)

工作流程模板YAML的相关部分:

# yaml-language-server: $schema=https://raw.githubusercontent.com/argoproj/argo-workflows/v3.5.5/api/jsonschema/schema.json
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
spec:
  arguments:
    parameters:
      - name: create_foo
        value: 'true'
        enum:
          - 'false'
          - 'true'
  templates:
    - name: …
      container:
        args:
          # Somehow add `--foo` if workflow.parameters.create_foo == 'true'
          - '--bar'
argoproj
1个回答
0
投票

要根据

args
参数的值有条件地将项目添加到 Argo WorkflowTemplate 中的
create_foo
列表中,您可以将
when
条件与
{{workflow.parameters.create_foo}}
变量结合使用

apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
spec:
  arguments:
    parameters:
      - name: create_foo
        value: 'true'
        enum:
          - 'false'
          - 'true'
  templates:
    - name: conditional-step
      steps:
        - - name: conditionally-add-foo
            when: "{{workflow.parameters.create_foo == 'true'}}"
            template: add-foo
    - name: add-foo
      container:
        args:
          - "--foo"
© www.soinside.com 2019 - 2024. All rights reserved.