continuous-integration - 使用 Github Actions、Helm 和 Argo CD 构建 CI/CD 管道
问题描述
我有一个 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 操作中,则添加另一个阶段。
推荐阅读
- jquery - 提交表单时如何禁用必需的属性
- javascript - 在 puppeteer 中等待 page.waitFor inside page.evaluate?
- php - 检查是否使用 mysql 变量设置了 $_POST 变量
- excel - 如果多个单元格值为 True,则显示文本
- javascript - How do I add css class names to text blocks in Squarespace?
- firebase - 子集合是创建玩家“好友列表”的最佳方式吗?
- java - 从 Apache Camel 中的 /home/username 以外的位置进行 SFTP
- python-3.x - 希望在数据结构中存储两个不同的 Web url
- php - 未知的“表单”函数 php symfony/form twig
- c++ - 为什么VScode在.h文件中显示“'iostream'文件未找到”?