• Русский
  • Введение

    Pipelines-as-Code (PAC) позволяет хранить определения Tekton pipeline рядом с кодом приложения, в том же Git-репозитории, и автоматически запускать их, когда происходит событие Git, соответствующее условию. Вместо редактирования PipelineRun в кластере вы фиксируете их в каталоге .tekton/; PAC считывает нужный manifest в нужной ветке и создает PipelineRun за вас.

    Для кого предназначена эта документация

    • Администраторы кластера разворачивают и сопровождают компонент PAC, предоставляют к нему доступ из Git provider и настраивают параметры на уровне кластера.
    • Пользователи проекта создают ресурсы Repository, настраивают интеграцию Git на уровне репозитория или организации и пишут PipelineRun, зафиксированные в .tekton/.

    Глава Install ориентирована на администраторов. Главы Guides и How To ориентированы на пользователей.

    Основные возможности

    • Интеграция на уровне репозитория через один ресурс Kubernetes Repository, который ссылается на URL Git и, в режиме Webhook, на Secret с access token.
    • Сопоставление событий Git — push, pull request / merge request, push tag, comment к коммиту, comment к issue.
    • Выбор PipelineRun с помощью аннотаций в manifest PipelineRun (on-event, on-target-branch, on-cel-expression, on-path-change и другие).
    • Отправка статуса обратно в Git provider, отображаемого как GitHub Checks или commit statuses, со ссылкой обратно в кластер.
    • Действия, инициируемые комментариями/retest, /cancel, пользовательские команды, определенные в PipelineRun.
    • Интеграция с GitHub и GitLab — в этой документации рассматриваются рабочие процессы GitHub App, GitHub Webhook и GitLab Webhook.
    • Интеграция с resolver — получение Task из Tekton Hub, удаленных URL Git или других resolver без включения их в репозиторий.

    Как это работает

    PAC состоит из трех компонентов на стороне controller и одного ресурса Kubernetes:

    1. Ресурс Repository — namespaced-ресурс pipelinesascode.tekton.dev/v1alpha1, который связывает URL Git-репозитория либо с его учетными данными (режим Webhook), либо ни с чем (режим GitHub App, где учетные данные являются общими для всего кластера).
    2. PAC Webhook — HTTP-приемник, на который Git provider отправляет события. Он проверяет signature, используя значение webhook.secret, совместно используемое с provider.
    3. PAC Controller — находит соответствующий Repository, получает manifest PipelineRun из .tekton/ в нужном ref, фильтрует их по грамматике аннотаций и создает PipelineRun в namespace Repository.
    4. PAC Watcher — отслеживает PipelineRun и сообщает о завершении (а также о промежуточных этапах, если provider это поддерживает) обратно в Git provider.

    Полная последовательность описана в разделе Core Concepts.

    Предварительные требования для использования PAC

    Инфраструктура:

    • Кластер Kubernetes с установленным Tekton Operator.
    • Компонент PAC развернут и доступен из Интернета или из сети, в которой размещен ваш Git provider; см. Manage PAC Component.
    • Доступ kubectl к namespace, в котором вы планируете запускать pipeline.

    Знания:

    • Основы Tekton — Pipeline, PipelineRun, Task, TaskRun.
    • Основы Kubernetes — namespace, Secret, custom resources.
    • Знакомство с Git provider, который вы будете интегрировать, например GitHub или GitLab.

    Что дальше

    • Если вы знакомитесь впервые — начните с Quick Start, чтобы увидеть минимальный end-to-end пример.
    • Если вы настраиваете реальный репозиторий — выберите соответствующее руководство в Guides.
    • Если вы хотите разобраться в ресурсах — прочитайте Core Concepts.
    • Развертывание компонентаManage PAC Component.
    • Поиск и устранение неполадокCommon Issues.