首页 > 解决方案 > 使用 Github Actions、Helm 和 Argo CD 构建 CI/CD 管道

问题描述

我有一个 Git 存储库,我的应用程序代码和 Helm 清单位于其中。在提交到我的应用程序代码所在的目录时,我会触发一个 docker build 并将新图像推送到我的私有存储库。

另一方面,Argo 正在观察 Helm Manifests 的变化,并部署到我的 Kubernetes 集群,但前提是我更改了 Helm 值文件中的图像标签。

任何想法我如何避免这个手动步骤来拥有一个完全自动化的管道?

标签: continuous-integrationkubernetes-helmgithub-actionscontinuous-deploymentargocd

解决方案


编写一个脚本,该脚本将克隆 helm repo 并使用yq.

像下面

git clone giturl
yq w -i chart_name/values.yaml image.tag $image_tag.
git config user.email "test@test.com"
git config user.name "test"
git add .
git commit -m "changed"
git push

现在将图像标签作为变量 $image_tag 并在推送 docker 图像后运行上述脚本。请在此处查看yq。当然,运行此脚本将取决于您如何创建 docker 映像。如果您使用 docker autobuild,则考虑 post_build 钩子。如果它在 github 操作中,则添加另一个阶段。


推荐阅读