#заметка #k8s
🖼️ Установка gitlab-runner в k8s
0️⃣Для начала проверяем, что установлен
Helm 3. Если нет, то выполняем
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
1️⃣Добавляем helm chart gitlab'а
helm repo add gitlab https://charts.gitlab.io
2️⃣Обновляем данные репозитория
helm repo update gitlab
3️⃣Смотрим, какие есть доступные версии
helm search repo -l gitlab/gitlab-runner
Получаем примерно такой вывод:
NAME CHART VERSION APP VERSION DESCRIPTION
gitlab/gitlab-runner 0.76.0 17.11.0 GitLab Runner
gitlab/gitlab-runner 0.75.1 17.10.1 GitLab Runner
gitlab/gitlab-runner 0.75.0 17.10.0 GitLab Runner
gitlab/gitlab-runner 0.74.3 17.9.3 GitLab Runner
gitlab/gitlab-runner 0.74.2 17.9.2 GitLab Runner
gitlab/gitlab-runner 0.74.1 17.9.1 GitLab Runner
gitlab/gitlab-runner 0.74.0 17.9.0 GitLab Runner
gitlab/gitlab-runner 0.73.5 17.8.5 GitLab Runner
gitlab/gitlab-runner 0.73.4 17.8.4 GitLab Runner
gitlab/gitlab-runner 0.73.3 17.8.3 GitLab Runner
gitlab/gitlab-runner 0.73.2 17.8.2 GitLab Runner
Выбираем последнюю совместимую версию с вашим Gitlab instance. Я попробовал поставить на версию выше, чем мой интанс гитлаб, вроде заработало, но лучше всё таки метчить со своей версией гитлаба.
4️⃣Сохраняем шаблон конфигурации в values.yaml
helm show values gitlab/gitlab-runner --version 0.76.0 > values.yaml
5️⃣Идём в нужный репозиторий (советую привязывать раннеры к конкретным репам). Settings > CI/CD > Runners > New project runner. Задаем нужные настройки и получаем 2 нужные нам переменные дальше: gitlabUrl & runnerToken
6️⃣Возвращаемся на сервер с кубером. Мы скачали values.yaml, но это только шаблон, нам нужно будет его отредактировать. Нам нужны поля gitlabUrl — сюда вставляем url нашего gitlab, runnerToken — в кавычки копипастим токен, который мы получили на предыдущем шаге, ищем пункт rbac и свойство create ставим true. Сохраняемся и выходим из файла.
7️⃣Создаем namespace для раннера/ов
kubectl create namespace gitlab-runner
8️⃣Применияем helm chart
helm install --namespace gitlab-runner gitlab-runner -f values.yaml gitlab/gitlab-runner --version 0.76.0
Если вы хотите добавить несколько gitlab runner'ов, то делайте примерно так:
helm install --namespace gitlab-runner gitlab-runner-service1 -f values-service1.yaml gitlab/gitlab-runner --version 0.76.0
helm install --namespace gitlab-runner gitlab-runner-service2 -f values-service2.yaml gitlab/gitlab-runner --version 0.76.0
Зачем может быть нужно более одного раннера в кубере? Я для себя ответил, что для паралльного деплоя из разных репозиторияев.
9️⃣Проверяем состояние наших раннеров
kubectl get pods -n gitlab-runner
❓Если какая-то ошибка, то вам помогут команды describe & logs
# смотрим конфиг и состояние пода (может несколько сразу показать, если они в одном namespace)
kubectl describe pods -n gitlab-runner
# смотрим логи пода
kubectl logs -n gitlab-runner gitlab-runner-
Неплохая такая заметка получилась))
Следующую напишу про gitlab agent
🌚 @poxek | 🌚 blog.poxek.cc | 📺 YT | 📺 RT | 📺 VK | 🌚 Мерч