Создание helm charts и настройка CI/CD для обновления его в кластере
Get started
Оф. сайт разработчика https://helm.sh/docs/intro/install/
Создание чарта
Чарт с дефолт конфигурацией создается командой:
$ helm create [NAME]
Команда получения списка репозиториев с ссылками из AcrtifactHUB
$ helm search hub wordpress
Чтобы добавить необходимую библиотеку с чартами:
$ helm repo add brigade https://brigadecore.github.io/charts
Команда получения списка библиотеки с чартами:
$ helm search repo brigade
Установить чарт:
$ helm install my-chart-name [REPO/NAME]
Удалить чарт:
$ helm uninstall my-chart
Список развёрнутых чартов:
$ helm list
Обновление чарта
Команда обновления чарта:
- В папке с чартом :
$ helm repo upgrade -f values.yml .
- Вне папки:
$ helm repo upgrade -f values.yml chart-name [REPO/NAME]
CI/CD
Для автоматичемкого обновления чарта нам понадобиться:
Репозиторий с сервисом и файлом CI/CD
Раннер, созданный с помощью чарта
Корректно выданные права для раннера
Создание раннера
Для начала необходимо развернуть отдельный чарт с раннером. Команда для развертки:
$ helm repo add gitlab http://charts.gitlab.io/
$ helm install my-gitlab-runner gitlab/gitlab-runner
Дефолтный файл с конфигами можно взять здесь
Настройка аналогичка настройке обычного раннера в гите, подставляем токен, ссылку репы, всё берем из сетинга репозитория.
ServiceAccount
Чтобы бегун смог совершать действия в нашем кластере, ему необходимо выдать права. Сервис аккаунт у него уже создан; в файле находим строчку rbac, ставим true, далее выдем всё необходимое.
WARNING
Созданный вами раннер работает как тунель между кластером и репозиторием. В процессе выполнения пайплайнов, он запускает разовых бегунов, которые выполняют работу, их настройка есть в конце файла с пометкой runners. В их настройке зададим им priveleged=true. Далее в кластере заходим в раздел Role Bindings и подтягиваем в наши настройке роли ServiceAccound default, чтобы разовые бегуны, которые поумолчанию имеют аккаунт default, смогли корректно выполнять задачи.