使用 Helm 管理我的"app",但使用 kubectl 管理版本



所以,我试图做的是使用 helm 将应用程序安装到我的 kubernetes 集群中。假设图表中的图像标记为 1.0.0。

然后,作为 CI/CD 构建管道的一部分,我想使用 kubectl 更新图像标记,即kubectl set image deployment/myapp...

问题是,如果我随后对 helm 图表进行任何更改(例如副本数量(,并且我helm upgrade myapp这会将图像标签恢复为 1.0.0。

我尝试将 --reuse-values 标志传递给 helm 升级命令,但这没有帮助。

有人有什么想法吗?我需要使用 helm 来更新图像标记吗?我试图避免这种情况,因为图表在管道的这个阶段不可用。

使用CI/CD 进行构建和部署时,应使用单一事实来源,这意味着在 Git 等文件中版本控制的文件,并在该文件中进行所有更改。因此,如果您使用 Helm 图表,它们应该存储在例如 Git 中,所有更改(例如新映像(都应在您的 Git 存储库中完成。

你可以有一个构建管道,最终将新映像提交到 Kubernetes 配置存储库。然后触发一个部署管道,该管道使用 Helm 或 Kustomize 应用更改并可能执行测试。

最新更新