ArgoCD中Helm覆盖基础Chart值失效问题求助
问题排查与解决步骤
1. 先修正Chart依赖的低级错误
你贴的Chart.yml里依赖的是Keycloak的Chart,但你实际要部署的是Vault,这完全不匹配,先把依赖改对:
apiVersion: v2 name: vault type: application version: 1.0.0 dependencies: - name: vault version: "x.x.x" # 换成你要用的HashiCorp Vault Chart版本号 repository: "https://helm.releases.hashicorp.com"
2. 搞清楚Vault Chart的参数路径
HashiCorp官方的Vault Chart里,控制Server组件Service创建的参数是server.service.enabled,如果是Sidecar Injector的Service,参数是injector.service.enabled,PVC的控制参数是server.persistence.enabled。你之前可能写错了参数层级,导致覆盖失效。
3. 在ArgoCD里正确传递覆盖值
有两种靠谱的方式:
方式一:直接在Application配置里写values
修改你的Argocd.yml,加上helm的values配置:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: vault namespace: vault spec: project: default source: chart: vault repoURL: https://github.com/myrepo.git targetRevision: HEAD helm: values: | server: service: enabled: false persistence: enabled: false # 关闭PVC injector: service: enabled: false # 不需要injector的话也关掉 destination: server: "https://kubernetes.default.svc" namespace: kubeseal
方式二:在自定义Chart里放values.yml
在你自己的vault Chart根目录创建values.yml,写入要覆盖的配置:
server: service: enabled: false persistence: enabled: false injector: service: enabled: false
4. 本地先验证模板渲染
先在本地跑一遍helm模板渲染,确认Service确实被去掉了:
helm template . --values values.yml --namespace kubeseal
如果输出里找不到Service相关的YAML,说明配置没问题,再提交代码到仓库。
5. 强制ArgoCD同步刷新
有时候ArgoCD会缓存旧的渲染结果,手动触发硬同步:
argocd app sync vault --hard-refresh
内容的提问来源于stack exchange,提问作者Param Jeet
相关产品推荐
相关产品推荐

