介绍
Pipelines-as-Code (PAC) 可让你将 Tekton pipeline 定义与应用程序代码放在一起,位于同一个 Git 仓库中,并在匹配到 Git 事件时自动执行。你无需在集群中编辑 PipelineRun,而是将它们提交到 .tekton/ 目录下;PAC 会读取相应分支上的正确清单,并为你创建 PipelineRun。
本文档适用对象
- 集群管理员 部署并维护 PAC 组件,将其暴露给 Git 提供商,并配置集群级设置。
- 项目用户 创建
Repository资源,设置按仓库或按组织的 Git 集成,并编写提交到.tekton/下的 PipelineRun。
核心功能
- 按仓库集成,通过单个
RepositoryKubernetes 资源实现,该资源引用 Git URL 以及(在 Webhook 模式下)包含访问令牌的 Secret。 - Git 事件匹配 — push、pull request / merge request、tag push、commit comment、issue comment。
- PipelineRun 选择,通过 PipelineRun 清单上的注解(
on-event、on-target-branch、on-cel-expression、on-path-change等)实现。 - 状态报告 回传给 Git 提供商,并以 GitHub Checks 或 commit statuses 的形式展示,同时附带返回集群的链接。
- 基于评论的操作 —
/retest、/cancel,以及在 PipelineRun 上定义的自定义命令。 - GitHub 和 GitLab 集成 — 本文档涵盖 GitHub App、GitHub Webhook 和 GitLab Webhook 工作流。
- Resolver 集成 — 可从由
artifacthub-shim提供的 DevOps Hub catalog、远程 Git URL 或其他 resolver 拉取 task,而无需将它们打包到仓库中。
工作原理
PAC 由三个控制器侧组件和一个 Kubernetes 资源组成:
- Repository resource — 命名空间级别的
pipelinesascode.tekton.dev/v1alpha1资源,它将 Git 仓库 URL 绑定到其凭据(Webhook 模式)或完全不绑定凭据(GitHub App 模式,其中凭据为集群级)。 - PAC Webhook — Git 提供商向其发送事件的 HTTP 接收端。它使用与提供商共享的
webhook.secret值验证签名。 - PAC Controller — 查找匹配的
Repository,从相关 ref 的.tekton/中获取 PipelineRun 清单,通过注解语法对其进行过滤,并在Repository的命名空间中创建PipelineRun。 - PAC Watcher — 监视
PipelineRun,并将完成状态(以及提供商支持时的中间步骤状态)回报给 Git 提供商。
完整流程请参阅 核心概念。
使用 PAC 的前提条件
基础设施:
- 已安装 Tekton Operator 的 Kubernetes 集群。
- PAC 组件已部署并暴露到 Internet 或托管 Git 提供商的网络中;请参阅 管理 PAC 组件。
- 对你计划运行 pipeline 的命名空间具有
kubectl访问权限。
知识:
- Tekton 基础知识 —
Pipeline、PipelineRun、Task、TaskRun。 - Kubernetes 基础知识 — 命名空间、Secrets、自定义资源。
- 熟悉你将集成的 Git 提供商,例如 GitHub 或 GitLab。
下一步去哪里
- 首次使用 — 从 快速开始 入手,获取一个端到端的最小示例。
- 设置真实仓库 — 在 指南 下选择对应的指南。
- 理解这些资源 — 阅读 核心概念。
- 组件部署 — 参阅 管理 PAC 组件。
- 故障排查 — 参阅 常见问题。
相关文档
- 在 Git 中定义 PipelineRuns — 在
.tekton/下定义并版本化 PipelineRun。 - 触发 PAC Pipelines — 自动事件和评论命令。