介绍
Pipelines-as-Code (PAC) 让你可以将 Tekton pipeline 定义与应用代码放在一起,存放在同一个 Git repository 中,并在 Git 事件匹配时自动执行。你无需在 cluster 中编辑 PipelineRuns,而是将它们提交到 .tekton/ 目录下;PAC 会在正确的 branch 上读取对应的 manifest,并为你创建 PipelineRun。
本文档适用对象
- Cluster administrators 负责部署和维护 PAC component,将其暴露给 Git providers,并配置集群级设置。
- Project users 创建
Repositoryresources,设置按 repository 或按 organization 的 Git 集成,并编写提交到.tekton/下的 PipelineRuns。
Install 章节面向 administrator。Guides 和 How To 章节面向用户。
核心能力
- 按 repository 集成:通过单个
RepositoryKubernetes resource 关联 Git URL,以及(在 Webhook 模式下)包含 access token 的 Secret。 - Git 事件匹配:push、pull request / merge request、tag push、commit comment、issue comment。
- PipelineRun 选择:通过 PipelineRun manifest 上的 annotations(
on-event、on-target-branch、on-cel-expression、on-path-change等)进行选择。 - 状态报告:回传给 Git provider,并以 GitHub Checks 或 commit statuses 的形式展示,同时提供返回 cluster 的链接。
- 基于评论的操作:
/retest、/cancel,以及在 PipelineRun 上定义的自定义命令。 - GitHub 和 GitLab 集成:本文档涵盖 GitHub App、GitHub Webhook 和 GitLab Webhook 工作流。
- Resolver 集成:可从 Tekton Hub、远程 Git URLs 或其他 resolvers 拉取 tasks,而无需将它们打包到 repository 中。
工作原理
PAC 由三个 controller 侧组件和一个 Kubernetes resource 组成:
- Repository resource — 一个命名空间级的
pipelinesascode.tekton.dev/v1alpha1resource,用于将 Git repository URL 绑定到其凭据(Webhook 模式)或完全不绑定任何凭据(GitHub App 模式,此时凭据为集群级)。 - PAC Webhook — Git provider 向其发送事件的 HTTP receiver。它使用与 provider 共享的
webhook.secret值验证签名。 - PAC Controller — 查找匹配的
Repository,从相关 ref 上的.tekton/获取 PipelineRun manifests,通过 annotation 语法进行过滤,并在Repository的 namespace 中创建PipelineRun。 - PAC Watcher — 观察
PipelineRun,并将完成状态(以及 provider 支持时的中间步骤)回传给 Git provider。
完整流程请参见 Core Concepts。
使用 PAC 的前提条件
基础设施:
- 已安装 Tekton Operator 的 Kubernetes cluster。
- PAC component 已部署并暴露给 Internet,或暴露给承载 Git provider 的网络;请参见 Manage PAC Component。
- 对计划运行 pipeline 的 namespace 具有
kubectl访问权限。
知识要求:
- Tekton 基础知识 —
Pipeline、PipelineRun、Task、TaskRun。 - Kubernetes 基础知识 — namespaces、Secrets、custom resources。
- 熟悉你将集成的 Git provider,例如 GitHub 或 GitLab。
接下来去哪里
- 首次使用 — 从 Quick Start 开始,查看端到端的最小示例。
- 设置真实 repository — 在 Guides 下选择对应的 guide。
- 了解资源 — 阅读 Core Concepts。
- 组件部署 — 参见 Manage PAC Component。
- 故障排查 — 参见 Common Issues。
相关文档
- Define PipelineRuns in Git — 在
.tekton/下定义并对 PipelineRuns 进行版本管理。 - Trigger Pipelines — Git 操作如何映射为事件。