Настройка GitLab Repository
В этом руководстве описано подключение репозитория GitLab к PAC: подготовка учетных данных, создание ресурса Repository, регистрация webhook и запуск PipelineRun.
GitLab использует режим Webhook. Для каждого репозитория настраиваются токен доступа GitLab и project webhook.
На этой странице используются манифесты и веб-интерфейс GitLab. Для сценария с CLI см. Справочник по командам tkn pac.
Содержание
Предварительные требованияШаг 1. Создание токена доступа GitLabШаг 2. Создание Secret KubernetesШаг 3. Создание ресурсаRepositoryШаг 4. Регистрация webhook в GitLabШаг 5. Добавление PipelineRun и его запускПроверкаУстранение неполадокСледующие шагиПредварительные требования
- Компонент PAC развернут и доступен GitLab; см. Управление компонентом PAC.
- URL webhook PAC; см. Получение URL webhook PAC.
- Доступ Maintainer к проекту GitLab (требуется для добавления webhook).
- Целевое пространство имен Kubernetes, в котором будут размещаться ресурс
Repositoryи егоPipelineRun. - Доступ
kubectlк этому пространству имен.
Шаг 1. Создание токена доступа GitLab
PAC нужен токен для чтения метаданных проекта, публикации комментариев в merge request и обновления статуса commit. Подходит как Personal Access Token, так и Project Access Token.
- В GitLab откройте проект или Settings → Access Tokens в настройках пользователя.
- Создайте токен со следующими параметрами:
- Name: описательное имя, например
pac-integration. - Scopes:
api.
- Name: описательное имя, например
- Скопируйте токен. GitLab показывает его только один раз.
Шаг 2. Создание Secret Kubernetes
Создайте один Secret, содержащий токен GitLab и секрет webhook. Следуйте инструкции Создание Git Secret для PAC.
В дальнейшем в этом руководстве Secret называется gitlab-webhook-config.
Шаг 3. Создание ресурса Repository
Ресурс Repository ссылается на Secret. Для GitLab.com:
Для self-hosted GitLab задайте spec.url в соответствии с URL проекта и добавьте git_provider.url со значением базового URL экземпляра GitLab:
Для self-hosted GitLab git_provider.url должен содержать базовый URL экземпляра GitLab, а не URL проекта.
Примените манифест:
Проверьте результат:
Пример вывода:
Шаг 4. Регистрация webhook в GitLab
- Откройте проект GitLab, затем выберите Settings → Webhooks.
- Нажмите Add new webhook.
- Заполните форму:
- URL: URL webhook PAC из предварительных требований.
- Secret token: то же значение
webhook.secret, которое хранится в Secret Kubernetes. - SSL verification: включено (рекомендуется; отключайте только в непроизводственных средах с самоподписанными сертификатами).
- В разделе Trigger выберите:
- Push events (с All branches, если не требуется ограничение)
- Tag push events
- Comments
- Merge request events
- Нажмите Add webhook.
GitLab предоставляет действие Test → Push events для записи webhook. Ответ 200 подтверждает, что контроллер получил и принял событие.
Шаг 5. Добавление PipelineRun и его запуск
Добавьте манифест PipelineRun в каталог .tekton/ в репозитории и отправьте изменения. PAC считывает файл из ветки, для которой было сгенерировано событие, сопоставляет аннотации с событием и создает PipelineRun в пространстве имен.
См. Определение PipelineRun в Git для ознакомления со структурой файла и грамматикой аннотаций, а также Запуск Pipeline для операций Git, на которые реагирует PAC.
Проверка
После поступления Git-события PAC создает PipelineRun в пространстве имен Repository. Подтвердите это:
В журналах контроллера PAC видно, что событие обрабатывается:
GitLab отображает статус commit, установленный PAC, на соответствующей странице pipeline / merge request.
Устранение неполадок
Полную матрицу устранения неполадок см. в разделе Распространенные проблемы.
Следующие шаги
- Определение PipelineRun в Git — определяйте и развивайте pipeline в
.tekton/. - Запуск Pipeline — триггеры на основе push, merge request и комментариев.
- Дополнительная настройка Repository — параллелизм, параметры, пользовательские настройки.
- Настройка пользовательских сертификатов — для self-hosted GitLab с частным CA.