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

GitOps场景下如何将Git日志标签同步至另一仓库的values.yaml

自动更新Chart镜像标签实现ArgoCD自动部署方案

核心思路

在仓库A的GitHub Action镜像构建、推送至ECR成功后,新增流水线步骤直接拉取仓库B代码,修改values.yaml中的镜像标签字段后提交推送,触发ArgoCD自动同步新镜像到EKS集群。

前置准备

  • 生成具备仓库B读写权限的GitHub Personal Access Token(PAT),将该token存入仓库A的Secrets中,命名为GH_PAT_FOR_REPO_B
  • 确认仓库B中values.yaml的镜像标签字段路径,通用场景下为image.tag,可根据你的实际配置调整
  • 提前确认你构建镜像时生成的标签已存储为GitHub Action环境变量,例如命名为IMAGE_TAG

流水线修改步骤

在仓库A现有的镜像构建、推送ECR的步骤之后,新增如下配置:

- name: 拉取仓库B代码
  uses: actions/checkout@v4
  with:
    repository: 你的GitHub用户名/仓库B名称
    token: ${{ secrets.GH_PAT_FOR_REPO_B }}
    path: repo-b

- name: 更新values.yaml镜像标签
  run: |
    # 若运行环境未预装yq可提前执行安装命令配置
    cd repo-b
    # 按实际字段路径调整,此处以image.tag为例
    yq eval ".image.tag = \"${{ env.IMAGE_TAG }}\"" -i values.yaml

- name: 提交修改到仓库B
  run: |
    cd repo-b
    git config user.name "github-actions[bot]"
    git config user.email "github-actions[bot]@users.noreply.github.com"
    git add values.yaml
    git commit -m "更新镜像标签为 ${{ env.IMAGE_TAG }}"
    git push

注意事项

  • 若仓库B开启了分支保护规则,需要给PAT配置对应分支的提交权限,或者允许GitHub Action机器人绕过分支保护
  • 如果你有多环境的values配置文件(如values-prod.yaml、values-test.yaml),对应修改操作的文件名即可
  • 提交信息可根据你的团队规范自定义调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:09:03