Как мы освоили helm 🤓
Мы решили запилить единый и кастомизируемый helm-шаблон через values-файлы с гордым именем youla-service-template.
Как это работает?
➡️ При любых правках с сорс-репозитории этого шаблона он собирается в пакетик и пушится в общий helm-registry.
➡️ Затем команды разработки создают в своем репозитории только values.yaml файл для чарта, где кратко описывают свой сервис и перечисляют необходимые ему кубовые сущности. Например, deployment, service, secret, … etc.
➡️ При запуске пайплана в gitlab, джоба берет себе helm-пакет шаблона из общего registry и через простую команду
helm upgrade –install Charts/youla-service-template -f values.yaml
рендерит через шаблон свой персональный чарт.
Бонус подхода в том, что для деплоя в Kubernetes командам необязательно погружаться в дебри helm-а и go-шаблонизатора, достаточно создать по готовому примеру values.yaml с нужными переменными.
Чтобы начать использовать шаблон, нужно:
1️⃣ Создать у себя в репозитории values.yaml с необходимыми переменными;
2️⃣ Добавить в gitlab-ci команды подключения helm-registry и установки чарта:
helm repo add Charts https://nexus/repository/helm-charts/
helm upgrade --install ${RELEASE_NAME} Charts/youla-service-template -f values.yaml
✅ Done! Один коммит и ваш сервис в Kubernetes.
Можно это всё ещё и украсить:
1️⃣ Смотрим успешность выкатки новой версии деплоя
kubectl rollout status deployment ${RELEASE_NAME}
2️⃣ Удаляем helm-чарт с сервисом при закрытии ветки в gitlab
helm uninstall ${RELEASE_NAME}
Будем наблюдать за развитием событий.
Плюсаните пост, если вам полезны DevOps посты в канале 😉
Post #142
958