Helm - Подграфик, зависящий от другого подграфа

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

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

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

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


person Coding Ninja    schedule 24.08.2018    source источник


Ответы (1)


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

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

person Jay Rajput    schedule 26.08.2018
comment
как уведомить subchart1 о завершении работы? - person Coding Ninja; 26.08.2018
comment
Я предлагаю не использовать концепции штурвала для решения этой проблемы. Предлагается использовать концепции k8s. Я обновил ответ, чтобы прояснить то же самое. - person Jay Rajput; 27.08.2018
comment
но у нас есть строгие правила использования руля для этого, есть ли способ сделать это с помощью руля, меня в основном интересует how to notify deployments in the subchart1 that the subchart1 job is finished i.e., necessary tables are created, you can start Pod creation, service creation etc - person Coding Ninja; 27.08.2018