Есть helm-chart, состоящий из пары веб-приложений (деплоймент), сервиса, ингреса. А ещё там Secret и ConfigMap, которые тянутся в
envFor
подов и содержат конфигурирующие переменные окружения.
Прикручиваю к этим волшебным веб-приложениям схема-миграции базы данных, использую helm hook: pre-install,pre-upgrade + Job. Т.к. миграциям тоже нужны конфиги — им тоже нужны configmap и secret. Конфигмапы создаются уже после
pre-install,pre-upgrade
, поэтому нужно немного магии
Добавил в конфиг-мап тоже запуск по хуку с отрицательным весом, мол, загрузись перед миграцией, а убейся перед следующей миграцией:
annotations:
"helm.sh/hook": pre-install,pre-upgrade
"helm.sh/hook-weight": "-10"
"helm.sh/hook-delete-policy": before-hook-creation
Всё бы хорошо, да с такими настройками helm прибивает созданный конфигмап и поды самого приложения не разворачиваются с ошибкой
CreateContainerConfigError