我有一个 Git 存储库,我的应用程序代码和 Helm 清单位于其中。在提交到我的应用程序代码所在的目录时,我会触发一个 docker build 并将新图像推送到我的私有存储库。
另一方面,Argo 正在观察 Helm Manifests 的变化,并部署到我的 Kubernetes 集群,但前提是我更改了 Helm 值文件中的图像标签。
任何想法我如何避免这个手动步骤来拥有一个完全自动化的管道?
我有一个 Git 存储库,我的应用程序代码和 Helm 清单位于其中。在提交到我的应用程序代码所在的目录时,我会触发一个 docker build 并将新图像推送到我的私有存储库。
另一方面,Argo 正在观察 Helm Manifests 的变化,并部署到我的 Kubernetes 集群,但前提是我更改了 Helm 值文件中的图像标签。
任何想法我如何避免这个手动步骤来拥有一个完全自动化的管道?
编写一个脚本,该脚本将克隆 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 操作中,则添加另一个阶段。