Helm - Подчарт, зависящий от другой подхартии - PullRequest
0 голосов
/ 24 августа 2018

У меня есть родительская диаграмма с двумя вложенными диаграммами subchart1 и postgres, и в subchart1 есть работа pre-install, которая создает необходимые таблицы / схемы для службы subchart1, где работа находится в очереди зависит от того, будет ли сначала устанавливаться вложенная диаграмма postgres, поэтому при установке родительской диаграммы с обработчиком заданий pre-install происходит сбой, поскольку вложенная диаграмма postgres еще не установлена.

Чтобы преодолеть эту проблему, я изменил задание с pre-install на post-install or install, использовал initContainer, чтобы подождать, пока подтаблица postgres не будет установлена ​​перед началом задания,

проблема, с которой я сейчас сталкиваюсь, заключается в том, чтобы убедиться, что задание запускается перед установкой subchart1 при выполнении subchart1 обновления

Один из способов, который я могу придумать, - это initContainer в subchart1, чтобы дождаться окончания работы, как уведомить subchart1, что работа завершена

1 Ответ

0 голосов
/ 26 августа 2018

Вместо использования концепций руля, вы можете использовать концепции k8s для решения этой проблемы.Вы можете добавить задание k8s к вашему subchart1, которое запускается до конца и создает необходимые таблицы.initContainer в других модулях можно использовать для ожидания завершения задания k8s.Задание k8s может завершиться ошибкой, если не установлена ​​необходимая зависимость postgres.В случае неудачи, k8s обязательно перезапустит задание.Задание выполнено до конца.

Вместо того, чтобы использовать init-контейнеры для ожидания, вы также можете выбрать использование активности и проверки готовности.Проверка готовности обычно выполняется с использованием / ready API.Если проверка готовности завершается неудачей, tarffic не отправляется в POD.Если датчик живучести не работает, POD перезапускается.См. k8s документы по настройке датчика живучести и готовности

...