我正在通过Helm和分er在Kubernetes Cluster中部署多个Helm子图。在开始安装其他图表及其容器之前,如何确保特定图表完全安装了其容器?
我查看了requirements.yaml和钩子,它们看起来都不是我想要的解决方案。
while
我有多个子图,并希望在头盔安装其他图表及其容器之前确保App1的容器已准备就绪。
答案 0 :(得分:0)
我认为舵图方面没有任何东西,但您可以使用init容器解决。
如果您的图表中有数据库并且被应用程序使用,并且崩溃了,则可以使用init容器检查以完成pod的生命周期。
有关更多信息,请参见:https://github.com/helm/helm/issues/1713
答案 1 :(得分:0)
最近偶然发现了同一问题。我有一个RabbitMQ作为Helm软件包,还有两个我在本地构建的Helm软件包。
我想将这三个文件收集在一个Helm软件包中,但是找不到订购Helm图表安装的方法,因为例如其他两个软件包都需要RabbitMQ凭证。
我发现使用挂钩给解决方案带来了不必要的复杂性,我更喜欢按照自己想要的顺序简单地单独安装它们,而我可以在步骤之间进行任何手动更改。
这里是一个article,讨论了这个主题,您可能会感兴趣。
现在,如果您愿意尝试Helmsman,可能有一种适当地排序依赖关系的方法。因为我刚刚发现了它,所以我无法做出任何判断,但是可以从“功能”下的自述文件中找到它:
定义发布的管理顺序:您可以定义由helmsman管理发布的优先级(对依赖项有用)。
Here是相关文档。
答案 2 :(得分:0)
您应该查看helmfile并将每个应用程序的堆栈拆分为一个helmfile。由于文件夹内的helmfile以字母顺序应用,因此您可以通过文件命名约定来确保顺序。
文件结构:
helmfile.d/
00-app-1.yaml
01-app-2.yaml
02-app-n.yaml
使用以下命令执行它:helmfile -f path/to/directory