Введение
Pipelines-as-Code (PAC) позволяет хранить определения Tekton pipeline рядом с кодом приложения, в том же Git-репозитории, и автоматически запускать их, когда происходит событие Git, соответствующее условию. Вместо редактирования PipelineRun в кластере вы фиксируете их в каталоге .tekton/; PAC считывает нужный manifest в нужной ветке и создает PipelineRun за вас.
Содержание
Для кого предназначена эта документацияОсновные возможностиКак это работаетПредварительные требования для использования PACЧто дальшеСвязанная документацияДля кого предназначена эта документация
- Администраторы кластера разворачивают и сопровождают компонент 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с помощью аннотаций в manifestPipelineRun(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:
- Ресурс Repository — namespaced-ресурс
pipelinesascode.tekton.dev/v1alpha1, который связывает URL Git-репозитория либо с его учетными данными (режим Webhook), либо ни с чем (режим GitHub App, где учетные данные являются общими для всего кластера). - PAC Webhook — HTTP-приемник, на который Git provider отправляет события. Он проверяет signature, используя значение
webhook.secret, совместно используемое с provider. - PAC Controller — находит соответствующий
Repository, получает manifestPipelineRunиз.tekton/в нужном ref, фильтрует их по грамматике аннотаций и создаетPipelineRunв namespaceRepository. - 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.
Связанная документация
- Определение
PipelineRunв Git — определяйте и версионируйтеPipelineRunв.tekton/. - Запуск pipeline — как операции Git сопоставляются с событиями.