Репозиторий для деплоя микросервисов через helm в k8s, здесь содержатся:
- директории и файлы для статических приложений, не зависящих от разработки
- конфигурационные файлы следующего назначения:
- k8s-helm-deploy.yml - подключаемый для деплоя файл
- k8s-helm-deploy-example.yml - пример файла для подключения helm деплоя
- values-example.yml - пример файла values.yaml, который заполняется для каждого микросервиса отдельно
- k8s-configuration.yml - для установки параметров ноды, на которой все запущено
Для подключения helm деплоя необходимо:
- подключить файл k8s-helm-deploy.yml по инструкции из файла k8s-helm-deploy-example.yml
- в проекте с микросервисом создать папку deploy/, в ней в свою очередь создать 2 файла:
- values.yml - основной файл конфигурации, описывающий приложение, аналог docker-compose
- configmap.yml - файл вида ключ: значение, просто значения, которые с помощью kubectl при деплое преобразуются в configmap
- убедиться, что есть доступ в данный проект - path/to/your/project/in/gitlab/ci
Деплой подключен - успешное завершение пайплайна означает установленный helm релиз
- успешное выполнение означает установленный helm релиз, но не означает, что приложение не упало и работает корректно, желательно проверять состояние после деплоя через kubectl describe, либо обзорно через kubectl get pods
- на данный момент поддерживается 3 вида ресурсов: deployment, statefulset, service, ресурсы статичного типа: ingress, pvc, pv etc настраиваются вручную инженерами перед деплоем (pv, pvc) или после (ingress). Ресурс configmap обслуживается отдельно - через деплой
- на данный момент не поддерживается собственная версионность - чарты обновляются через helm upgrade повышая версию в неустановленном порядке (может возникнуть путаница в helm history), если нужно - можно настроить