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

在Helm ConfigMap中复用UUID遇问题:每次生成新值求助

解决Helm Chart中ConfigMap UUID每次升级重复生成的问题

问题根源

你的lookup函数调用存在语法错误:第三个参数写为"{{ .Release.Name }}-testcase",这会把模板语法作为字面量字符串传递给lookup,导致它去查找名字为{{ .Release.Name }}-testcase的ConfigMap,而非实际渲染后的mytest-testcase这类真实名称,所以每次都找不到已有资源,进而重新生成UUID。

修正后的ConfigMap模板

把lookup的第三个参数改为直接使用模板变量拼接,不需要额外的模板语法包裹:

---
{{- $cmName := printf "%s-testcase" .Release.Name -}}
{{- $config := (lookup "v1" "ConfigMap" .Release.Namespace $cmName) -}}
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ $cmName }}
  namespace: "{{ .Release.Namespace }}"
  labels:
    app.kubernetes.io/managed-by: "{{ .Release.Service }}"
    app.kubernetes.io/instance: "{{ .Release.Name }}"
    app.kubernetes.io/version: "{{ .Chart.AppVersion }}"
    helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
data:
{{- if $config }}
  TEST_VALUE: {{ $config.data.TEST_VALUE | quote }}
{{- else }}
  TEST_VALUE: {{ uuidv4 | quote }}
{{ end }}

额外注意事项

  • 确保Helm客户端使用的ServiceAccount拥有目标Namespace下ConfigMap资源的get权限,否则lookup会返回空值
  • 使用helm template命令时,lookup函数无法连接Kubernetes API服务器,会直接返回空值,这种场景下无法复用已有UUID

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 08:36:18