Helmfile 入门
在上一篇文章中,我对 Helm Chart 做了基本的介绍。每个Helm Chart可以管理一个应用的安装。在实际的开发中,我们遇到的情况通常是需要管理多个应用,及其依赖的支撑服务。最典型的例子就是一个应用依赖一个数据库。应用和数据库分别使用各自的 Helm Chart 来安装。很明显的,安装数据库时提供的用户名、密码和数据库名称,必须与应用在连接数据库时使用的信息保持一致。
对于这样的情况,Helm 提供了子 Chart 的机制,也就是上一篇文章中提到的 charts
子目录。我们可以把数据库的 Chart 放到应用的 Chart 的 charts
子目录下,并通过 global
作用域来在父子 Chart 之间传递配置值。
父子 Chart 可以解决一部分问题。如果有两个应用都依赖同一个数据库,那么父子 Chart 就没办法有效工作了,因为把数据库的 Chart 作为任何一个应用的子 Chart 都不合适。Helm Chart 对于配置项的传递方式比较单一。
为了解决 Helm Chart 的这些问题,就需要用到本文中介绍的 Helmfile 。Helmfile 的安装很简单,直接从 GitHub 下载可执行文件即可,或者使用平台相关的软件管理工具来安装,比如 macOS 上的 Homebrew。
$ brew intall helmfile
除了 Helmfile 之外,还需要安装 Helm 的 diff 插件。
$ helm plugin install https://github.com/databus23/helm-diff
示例应用的 GitHub 链接:VividcodeIO/java-microservice-helm-example