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

如何在ArgoCD管理的Helm Chart中获取Git提交SHA?

在ArgoCD管理的Helm Chart中获取Git提交SHA值的方法

方案一:用ArgoCD自动注入的内置参数(优先推荐)

ArgoCD会自动给从Git仓库拉取的Helm Chart注入一组内置参数,其中就包含当前拉取版本对应的Git完整提交SHA,直接在Helm模板里引用即可:

  • 完整SHA:{{ .Values.argocd.rev }}
  • 短SHA(截取前7位,符合镜像标签常见格式):{{ .Values.argocd.rev | trunc 7 }}

比如在Deployment的镜像配置里这么用:

apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      containers:
      - name: app
        image: my-registry.com/my/great-project:{{ .Values.argocd.rev | trunc 7 }}

这个参数不需要你手动在Application里配置,只要你的Application是通过Git repo拉取Helm Chart的,ArgoCD就会自动帮你注入。

方案二:手动在Application中传递SHA参数(适合特殊场景)

如果需要完全手动控制,可以在ArgoCD的Application配置里通过Helm参数传递SHA,但需要你提前获取当前HEAD的提交SHA,每次代码更新后都要同步修改这个配置,比较繁琐:
修改后的Application示例:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: foo-app
  namespace: argocd
spec:
  destination:
    name: some-cluster
    namespace: foo-namespace
  project: default
  source:
    path: kubernetes/helm
    repoURL: https://github.com/my/great-project.git
    targetRevision: HEAD
    helm:
      parameters:
      - name: image.tag
        value: a1b2c3d  # 替换成实际的Git提交SHA

然后在Helm模板里用{{ .Values.image.tag }}引用这个值。

方案三:从Application的状态字段获取(适合脚本或外部工具)

ArgoCD的Application资源的status.source.revision字段会记录实际拉取的Git提交SHA,你可以用kubectl直接查询:

kubectl get application foo-app -n argocd -o jsonpath='{.status.source.revision}'

不过这个方法没法直接在Helm模板里使用,适合脚本自动化或者外部系统获取的场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 18:33:15