我最近问了一个关于如何构建多个应该捆绑在一起的应用程序的问题,并且正在考虑让每个单独的应用程序都有自己的 Helm 图表和自己的入口控制器。这将允许 CI/CD 轻松更新每个组件,而不会影响其余组件。
我还在考虑使用"伞形"图表来指定实际版本时其他图表的版本,并将其保留在另一个存储库中。
但是,当使用多个 Helm 图表和每个图表的入口控制器时,我将如何处理它们之间共享的某些对象?例如机密、TLS 颁发者和它们之间共享的卷?我可以将它们放在伞形图中,但这样我就会失去能够在 CI/CD 中使用它的好处。我可以在每个单独的图表中复制它们,但这对我来说似乎是错误的。我想我需要另一个 Helm 图表来单独管理这些资源。
是否有建议的标准来执行此操作,或者您会推荐哪种方式?
您可以创建一个 helm 图表,并在其中创建应用程序 A、应用程序 B 和共享图表的子图表,并且可以为共享对象定义全局值,并在应用程序 A 和 B 的主子图表模板中使用此名称。
有关子图表和全局值的更多信息,请查看此