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

如何在Deployment升级时保留ConfigMap的配置值?

解决Helm升级时ConfigMap配置被重置的问题

问题根源很明确:Helm升级时会根据Chart模板重新渲染所有资源,你手动修改的ConfigMap内容会被模板里的默认值覆盖。下面是几个实用的解决办法:

方案1:用Helm Values管理配置,别直接改ConfigMap

把需要自定义的配置放到Chart的values.yaml里,让Helm用Values渲染ConfigMap,这样升级时就能保留你的配置:

  1. 在values.yaml里添加配置项:
contentConfig:
  Enabled: false
  ApiEndpoint: "..."
  1. 修改ConfigMap模板,引用Values的值:
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Chart.Name }}-content-config
data:
  content.properties: |
    {{- toJson .Values.contentConfig }}
  1. 以后改配置直接用helm upgrade带--set参数,比如:
helm upgrade your-release your-chart --set contentConfig.Enabled=true

这样不管怎么升级,Helm都会用你设置的Values值,不会回到默认。

方案2:升级时重用原有Values

如果之前已经通过helm upgrade --set改过配置,升级时加--reuse-values参数就能直接复用上次的配置:

helm upgrade your-release your-chart --reuse-values

注意:如果新版本Chart加了新的配置项,这些新项会用默认值,需要手动用--set补充设置。

方案3:把ConfigMap从Helm管理里踢出去

直接删除Chart模板里的这个ConfigMap定义,自己手动创建它:

kubectl create cm your-chart-content-config --from-file=content.properties

然后确保Deployment模板里引用的ConfigMap名称不变就行。这样Helm升级时根本碰不到这个ConfigMap,你手动改的内容肯定不会被覆盖。
缺点是以后要改ConfigMap结构(比如加新字段),得自己手动更新,没法通过Helm统一管理。

方案4:用Helm lookup函数合并新旧配置(进阶)

如果想兼顾Helm管理和保留手动修改的配置,可以用Helm的lookup函数查询现有ConfigMap,把现有配置和默认值合并:
修改ConfigMap模板:

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Chart.Name }}-content-config
data:
  content.properties: |
    {{- // 查询集群中已存在的ConfigMap }}
    {{- $existingCM := lookup "v1" "ConfigMap" .Release.Namespace (printf "%s-content-config" .Chart.Name) }}
    {{- if $existingCM }}
      {{- // 解析现有配置的JSON内容 }}
      {{- $existingContent := fromJson (index $existingCM.data "content.properties") }}
      {{- // 合并现有配置和Values中的默认值,现有配置优先级更高 }}
      {{- $merged := merge .Values.contentConfig $existingContent }}
      {{- toJson $merged }}
    {{- else }}
      {{- // 第一次部署用Values默认值 }}
      {{- toJson .Values.contentConfig }}
    {{- end }}

这个方法会优先保留你手动改的配置,同时能合并新版本Chart里的新配置项,前提是Helm版本是3+,且Values结构和ConfigMap的JSON结构一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 22:52:32