介绍

Target Audience

本档面向集群管理员普通用户

  • 管理员:管理 PAC 组件的部署、配置和维护
  • 普通用户:配置 Git 仓库并在代码中创建流水线

什么是 Pipelines as Code?

Pipelines-as-Code(PAC)是一个组件,允许您直接在源代码仓库中定义和管理 Tekton Pipeline 工作流。您无需在 Kubernetes 集群中维护流水线,而是可以:

  • 将流水线定义与代码一起存储在 Git 中
  • 对流水线配置进行版本控制
  • 通过合并请求审查流水线更改
  • 从 Git 事件(Pull Request、Merge Request 或 Push)自动触发流水线
  • 将执行状态反馈回您的 Git 提供商

PAC 构建于 Tekton Pipeline 之上,利用其强大的流水线执行引擎,同时增加了 Git 集成功能。

平台支持

PAC 支持在 Kubernetes 平台上部署。尽管资源名称中包含“OpenShift”(出于历史原因),PAC 仍可通过 Tekton Operator 在标准 Kubernetes 集群上部署和使用。

前提条件

使用 PAC 需要:

基础设施要求

  • Kubernetes 集群(1.24 及以上)
  • 已安装 Tekton Operator
  • 具有管理员权限的 Git 仓库(用于配置 webhook)
  • 已安装并配置 kubectl
  • 带有 pac 插件的 tkn CLI(用于仓库配置)

知识要求

  • 基本的 Kubernetes 概念(Pods、Services、Namespaces、自定义资源)
  • 基本的 Tekton 概念(Pipeline、PipelineRun、Task)
  • 熟悉 Git 及 Git 提供商(GitHub、GitLab、Bitbucket)

详细前提条件请参见 快速开始

核心功能

PAC 提供丰富的开箱即用功能,包括:

  • 流水线状态跟踪:在处理 Pull Request 或 Merge Request 时跟踪并控制 Git 提供商中的流水线状态
  • 事件支持:支持 Pull Request、Merge Request 和 Push 事件
  • 评论命令:支持在 Pull Request 或 Merge Request 评论中使用命令,如 /retest 重新运行测试
  • 事件过滤:支持 Git 事件过滤,并为不同事件配置独立流水线
  • 任务解析:自动解析流水线中的任务(包括本地任务、Tekton Hub 和远程 URL)
  • CLI 工具:提供 tkn pac CLI 插件,用于管理 PAC Repository 资源和注册 webhook。安装和使用请参见 tkn pac 命令参考
  • Git 提供商集成:全面支持多种 Git 提供商(GitHub、GitLab、Bitbucket Cloud、Bitbucket Data Center)、webhook 和状态报告

工作原理

PAC 通过以下核心组件协同工作:

  1. Repository CR(自定义资源):定义 Git 仓库与 PAC 控制器之间连接的 Kubernetes 自定义资源,存储仓库配置、Git 提供商凭据和 webhook 设置。
  2. PAC Webhook:接收来自 Git 提供商的 HTTP 请求(webhook)并验证 webhook 签名
  3. PAC Controller:处理来自 Git 提供商的 webhook 事件,从 Git 仓库获取流水线定义,并在 Kubernetes 中创建 PipelineRun 资源
  4. PAC Watcher:监控 PipelineRun 执行状态,并将结果反馈给 Git 提供商

组件流程

当发生 Git 事件(push、pull request、merge request)时:

  1. Git 提供商发送 webhook → PAC Webhook 接收并验证事件
  2. PAC Webhook 转发事件 → PAC Controller 处理事件
  3. PAC Controller 从 Git 获取流水线定义 → 在 Kubernetes 中创建 PipelineRun
  4. Tekton Pipeline 执行 PipelineRun
  5. PAC Watcher 监控执行 → 将状态反馈给 Git 提供商

更多详情请参见 核心概念

使用场景

PAC 适用于以下场景:

  1. 基于代码的流水线管理

    • 在源代码仓库中维护流水线定义
    • 对流水线配置进行版本控制
    • 通过合并请求审查流水线更改
  2. CI/CD 自动化

    • 在代码推送时自动触发流水线
    • 在合并请求时运行测试
    • 合并后部署应用
  3. 多仓库工作流

    • 管理多个仓库的流水线
    • 跨项目共享流水线模板
    • 集中式流水线管理

主要优势

  1. 版本控制:流水线定义存储在 Git 中,实现版本控制和审查
  2. 开发人员友好:开发人员无需集群访问权限即可修改流水线
  3. 透明性:流水线更改在合并请求中可见
  4. 一致性:跨项目标准化流水线定义
  5. 灵活性:支持多种 Git 提供商(GitHub、GitLab、Bitbucket Cloud、Bitbucket Data Center)及多种事件类型

快速入门

如果您是 PAC 新手,请按照以下学习路径:

  1. 核心概念 - 了解 PAC 架构和核心概念
  2. 快速开始 - 部署 PAC 并配置第一个仓库
  3. 管理 PAC 组件 - 学习如何部署、更新和维护 PAC
  4. 配置仓库 - 设置 Git 仓库集成

相关文档