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

如何在Helm Chart中使用GitHub提交SHA作为镜像标签?

实现方案

你直接在values.yaml文件中写GitHub Actions变量不会被解析,只有工作流配置文件内的变量才会被系统自动替换,可通过以下两种常用方法实现需求:

方法1:通过Helm部署命令动态传入标签

在GitHub Actions工作流的部署步骤中,使用helm upgrade --install的--set参数直接覆盖image.tag的值,无需修改静态的values.yaml文件,示例工作流配置如下:

# 前置步骤:构建镜像、推送到ECR(已完成镜像打标签推送逻辑)
- name: 配置EKS访问权限
  run: aws eks update-kubeconfig --name <替换为你的EKS集群名称> --region eu-west-1

- name: 部署Helm Chart
  run: |
    helm upgrade --install <替换为你的Release名称> <替换为你的Chart本地路径/仓库地址> \
      --namespace <替换为部署命名空间> \
      --create-namespace \
      --set image.tag=develop-${{ github.sha }}

工作流触发运行时${{ github.sha }}会自动替换为当前提交的SHA值,完全满足标签拼接需求。

方法2:动态修改values.yaml文件

如果你不希望通过--set传参,可使用yq工具在工作流运行阶段直接修改values.yaml的标签字段,示例配置如下:

# 安装yq解析工具
- name: 安装yq
  run: sudo apt update && sudo apt install -y yq

# 替换values.yaml中的镜像标签
- name: 更新镜像标签
  run: yq -i '.image.tag = "develop-${{ github.sha }}"' <替换为你的values.yaml文件路径>

# 配置EKS权限+部署
- name: 配置EKS访问权限
  run: aws eks update-kubeconfig --name <替换为你的EKS集群名称> --region eu-west-1

- name: 部署Helm Chart
  run: helm upgrade --install <替换为你的Release名称> <替换为你的Chart路径> --namespace <替换为部署命名空间> --create-namespace

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:36:05