Быстрый старт
Это руководство охватывает задачи как для администраторов, так и для пользователей:
- Администраторы: Шаги 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 на имя вашего кластера (если не уверены, спросите администратора кластера). Для подробного руководства по настройке, пошаговых инструкций и устранения неполадок смотрите Настройка ссылок пользовательской консоли.
Примените конфигурацию:
Пример вывода:
Проверка развертывания
Проверьте статус компонента PAC:
Пример вывода:
Проверьте pods PAC (замените tekton-pipelines на ваше пространство имён, если оно другое):
Пример вывода:
Примечание: В этом руководстве в качестве примера используется пространство имён tekton-pipelines. Если вы развернули PAC в другом пространстве имён, замените tekton-pipelines на имя вашего пространства имён.
Вы должны увидеть три pod в состоянии Running:
pipelines-as-code-controller-*pipelines-as-code-watcher-*pipelines-as-code-webhook-*
Настройка доступа
Этот раздел предназначен для администраторов кластера. Обычные пользователи могут пропустить этот шаг и перейти к Шагу 2.
Откройте доступ к контроллеру PAC, чтобы GitLab webhook мог к нему обращаться. Можно использовать Ingress или NodePort. Подробности по настройке смотрите в Управление компонентом PAC.
Важно: 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: пространство, где развернуты компоненты PAC (controller, watcher, webhook). По умолчанию
tekton-pipelines, но может быть изменено черезtargetNamespaceв CROpenShiftPipelinesAsCode. - Пространство имён pipeline: пространство, где создаются PipelineRun. Указывается при создании CR Repository и может быть любым пространством имён в вашем кластере.
Параметр --pac-namespace в команде tkn pac create repo указывает пространство имён PAC (где развернут PAC), а не пространство имён pipeline (где будут запускаться pipeline).
Если PAC уже развернут в вашем кластере, вы можете пропустить Шаг 1 и начать с этого шага. Для проверки работы PAC выполните:
Вы должны увидеть три pod в состоянии Running. Если нет, обратитесь к администратору PAC или смотрите Управление компонентом PAC.
Установка плагина tkn pac
Убедитесь, что у вас установлен плагин tkn pac:
Пример вывода:
Если команда не работает или выдает ошибку, смотрите инструкции по установке в Справочнике команд tkn pac.
Создание персонального токена доступа GitLab
- Перейдите в GitLab → Настройки → 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 (находится в настройках проекта → Общие)
- Введите 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
Просмотрите PipelineRun в пространстве имён:
Пример вывода:
Просмотр логов pipeline:
Пример вывода:
Пример вывода:
Следующие шаги
- Управление компонентом PAC — руководство по развертыванию, обновлению и удалению
- Настройка репозитория — расширенная настройка репозитория
- Поддержка кода pipeline — руководство по определению pipeline
- Запуск pipeline — руководство по запуску по событиям