如何在多个存储库中使用Helm模板?

问题描述

我有几种微服务,它们在YAML中的设置几乎相同,有些值会发生变化(例如,图像,版本,特定的环境变量...),它们位于不同的存储库中,每个存储库具有不同的管道。如何在它们之间使用相同的模板而又不会得到重复的代码?

解决方法

这就是我们在目前工作的地方所做的事情。

我们有自己的通用Helm图表,由版本控制并托管在Artifactory中,该图表中可能需要更改的每个参数都在values.yaml中公开。

Artifactory作为存储库添加到掌舵中,因此,当图表集中来源时,您只需要为要部署的每个微服务分别设置一个values.yaml。

helm install -f values.yaml microservice01 artifcatory/global-helm-chart

最重要的是,我们使用helmfile,但这对于实现您的目标不是必需的。

关键点是:

  • 使图表通用
  • 集中托管
  • 将存储库添加到掌舵中。
,

您还可以从管道中更新values.yaml,然后打包图表并将其部署。这样,您仍然可以拥有相同的yaml文件,但是值将与部署它们的管道不同。

另一种简单的方法是在头盔图表本身中针对不同的环境维护不同的value.yaml,并在从管道进行头盔安装/升级期间传递它们。

,

我们为大约 90 个微服务做这件事。我们有共同的图表,我们通过一种改变我们需要的 sed 脚本运行值文件。然后整个包被部署

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...