Быстрый старт
Это руководство охватывает задачи как для администраторов, так и для пользователей:
- Администраторы: Шаги 1-2 (Развертывание компонента PAC, Настройка доступа)
- Обычные пользователи: Шаги 2-4 (Настройка репозитория, Создание pipeline, Тестирование)
Это руководство поможет вам быстро развернуть компонент PAC и настроить интеграцию с вашим первым Git-репозиторием.
Содержание
ВведениеОценочное время чтенияТребованияШаг 1: Развертывание компонента PACСоздание CROpenShiftPipelinesAsCodeПроверка развертыванияНастройка доступаПолучение URL контроллера PACЗапрос Ingress (если настроен)Запрос NodePort сервиса (если настроен)Если не удаётся найти URLШаг 2: Настройка репозиторияУстановка плагина tkn pacСоздание персонального токена доступа GitLabНастройка репозитория с помощью tkn pacШаг 3: Создание вашего первого pipelineШаг 4: Тестирование pipelineЗапуск через pushЗапуск через Merge RequestПроверка статуса pipelineСледующие шагиВведение
В этом быстром старте рассматриваются:
- Развертывание компонента PAC на Kubernetes
- Настройка Git-репозитория с помощью CLI
tkn pac - Создание вашего первого pipeline в коде
Оценочное время чтения
20-30 минут
Требования
- Kubernetes кластер (версия 1.24 и выше)
- Установлен Tekton Operator
- Права администратора кластера
- Установлен и настроен kubectl
- Установлен CLI tkn с плагином pac
- Git-репозиторий с правами администратора
Шаг 1: Развертывание компонента PAC
Этот раздел предназначен для администраторов кластера. Если PAC уже развернут в вашем кластере, перейдите к Шагу 2: Настройка репозитория.
Создание CR OpenShiftPipelinesAsCode
Несмотря на то, что в названии ресурса содержится "OpenShift", PAC можно развернуть на Kubernetes-платформах через Tekton Operator.
Создайте файл с именем pac.yaml:
Примечание: Поле targetNamespace указывает, в каком пространстве имён будут развернуты компоненты PAC. По умолчанию это tekton-pipelines, но вы можете использовать любое имя пространства имён. Убедитесь, что пространство имён существует перед применением конфигурации.
Интеграция с кастомной консолью: Закомментированные настройки позволяют интегрировать PAC с вашей собственной консолью. При настройке ссылки на статус pipeline в Git-провайдерах будут вести на вашу консоль. Важно: Замените my-cluster в URL на имя вашего кластера (если не уверены, спросите администратора кластера). Для подробного руководства по настройке, пошаговых инструкций и устранения неполадок смотрите Configure Custom Console Links.
Примените конфигурацию:
Пример вывода:
Проверка развертывания
Проверьте статус компонента PAC:
Пример вывода:
Проверьте поды PAC (замените tekton-pipelines на ваше пространство имён, если оно другое):
Пример вывода:
Примечание: В этом руководстве в качестве примера используется пространство имён tekton-pipelines. Если вы развернули PAC в другом пространстве имён, замените tekton-pipelines на ваше имя.
Вы должны увидеть три пода в состоянии Running:
pipelines-as-code-controller-*pipelines-as-code-watcher-*pipelines-as-code-webhook-*
Настройка доступа
Этот раздел предназначен для администраторов кластера. Обычные пользователи могут пропустить его и перейти к Шагу 2.
Откройте доступ к контроллеру PAC, чтобы GitLab webhook мог к нему обращаться. Можно использовать Ingress или NodePort. Подробности смотрите в Manage PAC Component.
Важно: URL контроллера PAC должен быть доступен с сервера GitLab. Убедитесь, что при настройке репозитория указан правильный URL.
Получение URL контроллера PAC
После открытия доступа к контроллеру PAC вы можете получить URL следующими способами. Обычные пользователи могут использовать эти команды для запроса URL при необходимости:
Запрос Ingress (если настроен)
Проверьте, открыт ли контроллер PAC через Ingress (замените <pac-namespace> на пространство имён PAC, по умолчанию tekton-pipelines):
Пример вывода (если Ingress настроен):
Если найден, получите хост Ingress:
Пример вывода:
Запрос NodePort сервиса (если настроен)
Проверьте, открыт ли контроллер PAC через NodePort (замените <pac-namespace> на пространство имён PAC, по умолчанию tekton-pipelines):
Пример вывода (если NodePort настроен):
Если найден, получите NodePort и IP ноды:
Пример вывода:
Если не удаётся найти URL
Если ни один из способов не сработал или у вас нет прав для запроса ресурсов кластера, обратитесь к вашему администратору PAC для получения URL контроллера PAC.
Шаг 2: Настройка репозитория
Этот раздел предназначен для обычных пользователей для настройки их Git-репозиториев. Если вам нужен URL контроллера PAC, смотрите инструкции по запросу в Шаге 1 выше или обратитесь к администратору PAC.
В этом руководстве используются два разных пространства имён:
- PAC namespace: пространство имён, где развернуты компоненты PAC (controller, watcher, webhook). По умолчанию
tekton-pipelines, но может быть изменено черезtargetNamespaceв CROpenShiftPipelinesAsCode. - Pipeline namespace: пространство имён, где создаются PipelineRuns. Указывается при создании CR Repository и может быть любым пространством имён в вашем кластере.
Параметр --pac-namespace в команде tkn pac create repo указывает пространство имён PAC (где развернут PAC), а не пространство имён pipeline (где будут запускаться pipeline).
Если PAC уже развернут в вашем кластере, вы можете пропустить Шаг 1 и начать с этого шага. Чтобы проверить, что PAC работает, проверьте поды:
Вы должны увидеть три пода в состоянии Running. Если нет, обратитесь к администратору PAC или смотрите Manage PAC Component.
Установка плагина tkn pac
Убедитесь, что у вас установлен плагин tkn pac:
Пример вывода:
Если команда не выполняется или возникает ошибка, смотрите инструкции по установке в tkn pac Command Reference.
Создание персонального токена доступа GitLab
- Перейдите в GitLab → Settings → Access Tokens
- Создайте токен с областью
api - Сохраните токен в безопасном месте
Настройка репозитория с помощью tkn pac
Важно: Перейдите в директорию вашего Git-репозитория перед выполнением команды. Директория .tekton будет создана в текущей рабочей директории.
Примечание: Замените tekton-pipelines на ваше фактическое пространство имён PAC, если вы развернули PAC в другом пространстве имён. Параметр --pac-namespace указывает, где развернут контроллер PAC.
Следуйте интерактивным подсказкам:
- Введите URL Git-репозитория (автоматически определяется из текущей директории или введите вручную)
- Введите пространство имён для pipeline (по умолчанию:
default, введитеproject-pipelinesили предпочитаемое пространство имён)- Примечание: Пространство имён должно существовать. Создайте его заранее:
kubectl create namespace project-pipelines
- Примечание: Пространство имён должно существовать. Создайте его заранее:
- На этом этапе будет создан CR Repository
- Введите ID проекта GitLab (находится в настройках проекта → General)
- Введите URL контроллера PAC (автоматически определяется или введите вручную, если определение не удалось)
- Введите секрет webhook (или нажмите Enter для использования автоматически сгенерированного значения)
- Введите токен доступа GitLab (персональный токен доступа, который вы создали)
- Введите URL API GitLab (по умолчанию:
https://gitlab.com, или введите URL вашего self-hosted GitLab)
Команда выполнит:
- Создание CR Repository в кластере
- Автоматическую настройку webhook в GitLab
- Создание Kubernetes Secret с учётными данными
- Генерацию шаблона
.tekton/pipelinerun.yamlв вашем репозитории
Шаг 3: Создание вашего первого pipeline
Команда tkn pac create repo создаёт базовый шаблон в .tekton/pipelinerun.yaml. Отредактируйте его для определения вашего pipeline:
Закоммитьте и отправьте изменения в репозиторий:
Примечание:
- Замените
<your-branch-name>на имя вашей ветки (например,main,masterилиdevelop) - Убедитесь, что аннотация
pipelinesascode.tekton.dev/on-target-branchсоответствует имени вашей ветки. Например, если ваша веткаmain, используйте"[refs/heads/main]"; еслиtest, используйте"[refs/heads/test]" - Для соответствия нескольким веткам используйте значения через запятую:
"[main, develop]"или"[refs/heads/main,refs/heads/develop]" - Для соответствия всем веткам используйте:
"[refs/heads/*]"
Шаг 4: Тестирование pipeline
Запуск через push
Отправьте коммит в ветку, указанную в аннотации pipeline, чтобы запустить pipeline:
Запуск через Merge Request
Создайте Merge Request для запуска pipeline:
Затем создайте Merge Request в GitLab.
Проверка статуса pipeline
Просмотрите PipelineRuns в пространстве имён:
Пример вывода:
Просмотр логов pipeline:
Пример вывода:
Пример вывода:
Следующие шаги
- Manage PAC Component - Руководство по развертыванию, обновлению и удалению
- Configure Repository - Расширенная настройка репозитория
- Maintain Pipeline Code - Руководство по определению pipeline
- Trigger Pipelines - Руководство по запуску событий