kubernetes 配置项管道中的Helm值yaml文件

kfgdxczn  于 4个月前  发布在  Kubernetes
关注(0)|答案(1)|浏览(71)

我有两个项目:
项目A -包含微服务应用程序的源代码
项目B -包含使用Helm的项目A的Kubernetes资源
这两个项目都位于各自独立的git仓库中。
项目A使用完整的CI管道构建,该管道构建带有标记版本的Docker镜像并将其推送到Docker hub,然后通过CI服务器的git push将Docker镜像的版本号写入项目B。它通过提交一个简单的txt文件来完成,该文件带有它刚刚构建的Docker版本。
到目前为止一切顺利!我现在有了项目B,它包含了微服务项目A的Docker版本,我现在想把这个值传递/注入到Values.yaml中,这样当我通过Helm打包项目B时,我就有了最新的版本。
任何想法我如何才能实现这一点?

oprakyz7

oprakyz71#

通过CI服务器的git push。它通过提交一个简单的txt文件来完成,该文件包含它刚刚构建的Docker版本。
我通常在这里做的是,我直接将值写入yaml中的正确字段。要在命令行上使用yaml,我推荐使用yq工具。
我通常使用完整的Kubernetes Deployment manifest yaml,我通常使用这个yq命令更新image字段:

yq write --inplace deployment.yaml 'spec.template.spec.containers(name==myapp).image' <my-registry>/<my-image-repo>/<image-name>:<tag-name>

字符串
然后将YAML文件提交给具有YAML清单的存储库。
现在,你使用Helm,但它仍然是Yaml,所以你应该能够以类似的方式解决这个问题。也许是这样的:

yq write --inplace values.yaml 'app.image' <my-image>

相关问题