You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ArgoCD YAML配置中引用布尔与数组类型变量

问题根因

你现有配置存在两个核心问题:

  1. values.automated 定义为数组结构,无法直接通过 .values.automated.prune 取到对应布尔值
  2. 直接用 {{ values.files }} 渲染数组会被转成字符串格式,不符合YAML数组要求

修复方案

可选优化:调整values结构(优先推荐)

如果你可以修改values定义,建议把automated从数组改成对象结构,取值逻辑会更简洁:

values:
  files: 
    - 'values.yaml'
    - 'values-stage.yaml'
  automated:
    prune: true # 直接定义为布尔属性,去掉多余的数组包装

变量渲染正确写法

数组类型(valueFiles字段)

用toYaml过滤器直接把数组转成原生YAML格式,注意根据上层缩进调整nindent后的数值:

valueFiles: {{ toYaml .Values.files | nindent 2 }}

如果需要更灵活的控制,也可以用range遍历渲染:

valueFiles:
  {{- range .Values.files }}
  - {{ . }}
  {{- end }}

布尔类型(prune字段)

如果已经按上面把automated改成了对象结构,直接取值即可,模板会自动输出原生布尔值而非字符串:

prune: {{ .Values.automated.prune }}

如果你不能修改原有automated的数组结构,需要遍历匹配name=prune的项取值:

prune: {{- range .Values.automated }}
  {{- if eq .name "prune" }}
  {{ .value }}
  {{- end }}
{{- end }}

注意事项

  • 变量渲染时不要手动加引号包裹,否则布尔值和数组会被转成字符串导致配置失效
  • 用toYaml输出数组/对象时,nindent后面的数字要和上层字段的缩进层级匹配,避免YAML格式错误

内容的提问来源于stack exchange,提问作者Ash Poblete

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:24:04