Как вы можете сделать предустановленные крючки, чтобы дождаться окончания предыдущего? - PullRequest
1 голос
/ 27 октября 2019

У меня есть 2 предустановленных скрипта, которые должны запускаться последовательно. У них явно разные веса. Второй сценарий должен иметь первый, чтобы закончить работу. Есть ли способ заставить Хелма поддерживать это поведение?

А также для бонуса вы можете сделать предустановочный хук, чтобы блокировать, пока объект не будет готов?

Сценарий такойследует:

У вас есть база данных и приложение.

Настройка:

  1. создание базы данных (развертывание),
  2. создание базы данных (службы),
  3. запуск сценария, который создаетвсе пользователи базы данных в этой базе данных (задание)
  4. запускают сервер приложений (развертывание).

1 Ответ

0 голосов
/ 28 октября 2019

Во-первых, вам нужно правильно установить веса крюка . Например:

  annotations:
    "helm.sh/hook-weight": "5"

Веса крючка могут быть положительными или отрицательными числами, но должны быть представлены в виде строк. Когда Tiller запускает цикл выполнения крючков определенного вида (например, pre-install hooks или post-install hooks и т. Д.), Он сортирует эти крючки в порядке возрастания.

В соответствии с Перехватывает и освобождает жизненный цикл , по умолчанию Tiller ждет, пока перехватчик не станет «Готовым», прежде чем выполнять следующие. Подвох заключается в следующем: при работе со скриптами, управляемыми хуками, вам нужно создать ресурс как Job:

Что означает ожидание готовности хука? Это зависит от ресурса, объявленного в хуке. Если ресурсы относятся к типу задания, Tiller будет ждать, пока задание не будет успешно завершено. И если работа не удалась, релиз не удастся. Это операция блокировки , поэтому клиент Helm приостановит работу во время выполнения задания.

Если вы хотите запускать задания, зависящие от базы данныхили приложение для готовности, лучше использовать крючки как post-install в сочетании с флагом --wait. Когда этот флаг установлен, Tiller будет ждать, пока все ресурсы релиза будут развернуты и находятся в состоянии готовности, и не будет запускать ловушку post-install, пока они не будут готовы.

...