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

未知属性名时如何检查values.yaml中secrets字段是否存在有效条目?

你可以通过Helm内置的len函数判断.Values.secrets的元素数量,不需要预知具体属性名,同时增加非空校验避免未定义报错,仅当存在有效条目时才渲染该段volume配置即可。

调整后模板示例

如果你的volumes列表还有其他固定配置,可以只给secrets相关的volume段加判断:

volumes:
  # 其他固定的volume配置写在这里,不受影响
  {{- if and .Values.secrets (gt (len .Values.secrets) 0) }}
  - name: secrets
    projected:
      sources:
      {{- range $secretKey := .Values.secrets }}            
        - secret: 
            name: {{ $secretKey | kebabcase }}-secret
      {{- end }}
  {{- end }}

如果volumes列表仅包含这一个secrets相关配置,可以直接把整个volumes字段包在判断里,避免生成无效的空volumes字段:

{{- if and .Values.secrets (gt (len .Values.secrets) 0) }}
volumes:
  - name: secrets
    projected:
      sources:
      {{- range $secretKey := .Values.secrets }}            
        - secret: 
            name: {{ $secretKey | kebabcase }}-secret
      {{- end }}
{{- end }}

逻辑说明

  • and .Values.secrets 先校验.Values.secrets字段存在且不为空值,避免取值报错
  • gt (len .Values.secrets) 0 校验.Values.secrets的元素数量大于0,不管它是数组类型还是字典类型,len函数都可以正确返回元素个数
  • 只有两个条件同时满足时,才会渲染secrets对应的配置段,自然就不会出现sources为空的校验错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:24:02