我有2个应按顺序运行的预安装脚本。 他们的权重明显不同 第二个脚本必须具有第一个脚本才能完成运行。 无论如何,有没有让头盔支持这种行为?
还有一个好处是,您可以制作一个预安装钩来阻塞直到对象准备就绪吗?
情况如下:
您有一个数据库和一个应用程序。
设置为:
答案 0 :(得分:0)
首先,您需要正确设置hook weights。例如:
annotations:
"helm.sh/hook-weight": "5"
挂钩重量可以为正数或负数,但必须为 表示为字符串。当蒂勒开始执行 特定种类的钩子(例如
pre-install
钩子或post-install
钩子等),它将按升序对这些钩子进行排序。
根据Hooks and release lifecycle,默认情况下,分耕机在执行下一个钩子之前一直等到钩子变为“就绪”为止。问题是:处理由挂钩管理的脚本时,您需要将资源创建为Job
:
等待钩子准备好意味着什么?这取决于 在挂钩中声明的资源。如果资源是Job类型,请使用Tiller 将等待,直到作业成功运行完成。如果 作业失败,发布将失败。 这是阻止操作 ,因此 作业运行时,Helm客户端将暂停。
如果您要运行依赖于数据库或应用程序的“就绪”作业,最好将钩子用作post-install
,并与--wait
标志结合使用。设置此标志后,Tiller将等待直到所有发布资源都已部署并处于就绪状态,直到它们准备就绪,才会运行post-install
挂钩。