Во-первых, вам нужно правильно установить веса крюка . Например:
annotations:
"helm.sh/hook-weight": "5"
Веса крючка могут быть положительными или отрицательными числами, но должны быть представлены в виде строк. Когда Tiller запускает цикл выполнения крючков определенного вида (например, pre-install
hooks или post-install
hooks и т. Д.), Он сортирует эти крючки в порядке возрастания.
В соответствии с Перехватывает и освобождает жизненный цикл , по умолчанию Tiller ждет, пока перехватчик не станет «Готовым», прежде чем выполнять следующие. Подвох заключается в следующем: при работе со скриптами, управляемыми хуками, вам нужно создать ресурс как Job
:
Что означает ожидание готовности хука? Это зависит от ресурса, объявленного в хуке. Если ресурсы относятся к типу задания, Tiller будет ждать, пока задание не будет успешно завершено. И если работа не удалась, релиз не удастся. Это операция блокировки , поэтому клиент Helm приостановит работу во время выполнения задания.
Если вы хотите запускать задания, зависящие от базы данныхили приложение для готовности, лучше использовать крючки как post-install
в сочетании с флагом --wait
. Когда этот флаг установлен, Tiller будет ждать, пока все ресурсы релиза будут развернуты и находятся в состоянии готовности, и не будет запускать ловушку post-install
, пока они не будут готовы.