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

Helm渲染KeyDB模板报can't evaluate field Values in type int错误求助

报错信息

/templates/_helpers.tpl:15:14: executing "keydb.fullname" at <.Values.keyDB.fullnameOverride>: can't evaluate field Values in type int

错误根因

这个报错的核心是keydb.fullname模板执行到第15行时,当前作用域上下文不是预期的包含.Values的对象,而是一个int类型数值,因此无法读取.Values字段。常见触发场景有三类:

  • 调用keydb.fullname模板时传入了错误的参数,比如传入了数值类型的变量(如副本数、端口号等),而非根上下文.或者包含.Values的上下文对象
  • keydb.fullname模板内部使用了with、range等会修改当前作用域的语句,没有保留根上下文引用,导致后续读取.Values时作用域已经变成了int类型的变量
  • values.yaml中keyDB字段被误配置为数值类型,而非字典类型,导致读取.Values.keyDB时拿到的是int值,无法读取下级的fullnameOverride字段(该场景报错提示会略有差异,优先级低于前两类)
解决方案

按优先级依次检查修改:

  1. 检查_helpers.tpl中keydb.fullname模板的第15行附近逻辑
    如果模板内使用了with、range语句,涉及.Values的引用统一加$前缀指向根上下文,示例正确写法如下:
    {{- define "keydb.fullname" -}}
    {{- if $.Values.keyDB.fullnameOverride -}}
    {{- $.Values.keyDB.fullnameOverride | trunc 63 | trimSuffix "-" -}}
    {{- else -}}
    {{- $name := default $.Chart.Name $.Values.nameOverride -}}
    {{- printf "%s-%s" $.Release.Name $name | trunc 63 | trimSuffix "-" -}}
    {{- end -}}
    {{- end -}}
    
  2. 检查所有调用keydb.fullname模板的位置(Pod模板、secret-util.yaml等)
    确保调用时传入的参数是根上下文.或者包含完整层级的上下文对象,不要传入数值类型参数。错误写法示例:{{ include "keydb.fullname" .Values.replicaCount }},正确写法:{{ include "keydb.fullname" . }}
  3. 校验values.yaml配置格式
    确保keyDB是字典类型,没有被误设为数值,示例正确配置:
    keyDB:
      fullnameOverride: ""
      # 其他keyDB配置项
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 13:30:01