快速开始
本指南涵盖管理员和用户的任务:
- 管理员:步骤 1-2(部署 PAC 组件,配置访问)
- 普通用户:步骤 2-4(配置仓库,创建流水线,测试)
本指南帮助您快速部署 PAC 组件并配置第一个 Git 仓库集成。
目录
介绍预计阅读时间前提条件步骤 1:部署 PAC 组件创建OpenShiftPipelinesAsCode CR验证部署配置访问获取 PAC Controller URL查询 Ingress(如果配置)查询 NodePort 服务(如果配置)如果找不到 URL步骤 2:配置仓库安装 tkn pac 插件创建 GitLab 个人访问令牌使用 tkn pac 配置仓库步骤 3:创建您的第一个流水线步骤 4:测试流水线通过 Push 触发通过合并请求触发查看流水线状态后续步骤介绍
本快速开始指南涵盖:
- 在 Kubernetes 上部署 PAC 组件
- 使用
tkn pacCLI 配置 Git 仓库 - 以代码方式创建您的第一个流水线
预计阅读时间
20-30 分钟
前提条件
- Kubernetes 集群(1.24+)
- 已安装 Tekton Operator
- 集群管理员权限
- 已安装并配置 kubectl
- 已安装带 pac 插件的 tkn CLI
- 拥有 Git 仓库的管理员访问权限
步骤 1:部署 PAC 组件
本节面向集群管理员。如果您的集群已部署 PAC,请跳至步骤 2:配置仓库。
创建 OpenShiftPipelinesAsCode CR
尽管资源名称包含 “OpenShift”,PAC 仍可通过 Tekton Operator 部署在 Kubernetes 平台上。
创建名为 pac.yaml 的文件:
注意:targetNamespace 字段指定 PAC 组件部署的命名空间。默认是 tekton-pipelines,但您可以使用任意命名空间名称。确保在应用配置前该命名空间已存在。
自定义 Console 集成:注释中的自定义 Console 设置允许您将 PAC 与自定义监控面板集成。配置后,Git 提供商中的流水线状态链接将指向您的 Console。重要:请将 URL 中的 my-cluster 替换为您的实际集群名称(如不确定,请咨询集群管理员)。详细配置指南、分步说明及故障排查,请参见配置自定义 Console 链接。
应用配置:
示例输出:
验证部署
检查 PAC 组件状态:
示例输出:
检查 PAC pods(如果您使用的命名空间不是 tekton-pipelines,请替换为实际命名空间):
示例输出:
注意:本指南中默认使用 tekton-pipelines 作为示例命名空间。如果您在其他命名空间部署了 PAC,请将 tekton-pipelines 替换为实际命名空间名称。
您应看到三个处于 Running 状态的 pod:
pipelines-as-code-controller-*pipelines-as-code-watcher-*pipelines-as-code-webhook-*
配置访问
本节面向集群管理员。普通用户可跳过此步骤,直接进入步骤 2。
暴露 PAC controller 以便 GitLab webhook 能访问。您可以使用 Ingress 或 NodePort。详细配置选项请参见管理 PAC 组件。
重要:PAC controller URL 必须能被您的 GitLab 服务器访问。设置仓库时请确保配置正确的 URL。
获取 PAC Controller URL
暴露 PAC controller 后,您可以通过以下方式获取 URL。普通用户如需查询 URL,可使用以下命令,或联系 PAC 管理员。
查询 Ingress(如果配置)
检查 PAC controller 是否通过 Ingress 暴露(将 <pac-namespace> 替换为您的 PAC 命名空间,默认是 tekton-pipelines):
示例输出(如果配置了 Ingress):
如果存在,获取 Ingress host:
示例输出:
查询 NodePort 服务(如果配置)
检查 PAC controller 是否通过 NodePort 暴露(将 <pac-namespace> 替换为您的 PAC 命名空间,默认是 tekton-pipelines):
示例输出(如果配置了 NodePort):
如果存在,获取 NodePort 和节点 IP:
示例输出:
如果找不到 URL
如果以上方法均无效,或您无权限查询集群资源,请联系您的 PAC 管理员获取 PAC controller URL。
步骤 2:配置仓库
本节面向普通用户配置 Git 仓库。如需 PAC controller URL,请参见步骤 1 中的查询说明,或联系 PAC 管理员。
本指南中使用两个不同的命名空间:
- PAC 命名空间:PAC 组件(controller、watcher、webhook)部署所在的命名空间。默认是
tekton-pipelines,可通过OpenShiftPipelinesAsCodeCR 中的targetNamespace自定义。 - 流水线命名空间:PipelineRun 创建所在的命名空间。该命名空间在创建 Repository CR 时指定,可以是集群中的任意命名空间。
tkn pac create repo 命令中的 --pac-namespace 参数指定的是 PAC 部署所在的命名空间,而非流水线运行的命名空间。
安装 tkn pac 插件
确保已安装 tkn pac 插件:
示例输出:
如果命令失败或报错,请参见安装 tkn pac 插件中的安装步骤。
创建 GitLab 个人访问令牌
- 进入 GitLab → 设置 → 访问令牌
- 创建带有
api权限的令牌 - 妥善保存令牌
使用 tkn pac 配置仓库
重要:请先切换到您的 Git 仓库目录再执行命令。.tekton 目录将在当前工作目录下创建。
注意:如果您在其他命名空间部署了 PAC,请将 tekton-pipelines 替换为实际 PAC 命名空间。--pac-namespace 参数指定 PAC controller 部署位置。
按照交互提示操作:
- 输入 Git 仓库 URL(自动检测当前目录,或手动输入)
- 输入流水线命名空间(默认:
default,可输入project-pipelines或您偏好的命名空间)- 注意:该命名空间必须存在。请先创建:
kubectl create namespace project-pipelines
- 注意:该命名空间必须存在。请先创建:
- 此时将创建 Repository CR
- 输入 GitLab 项目 ID(项目设置 → 常规中可查)
- 输入 PAC controller URL(自动检测,检测失败可手动输入)
- 输入 webhook secret(或直接回车使用自动生成的默认值)
- 输入 GitLab 访问令牌(即您创建的个人访问令牌)
- 输入 GitLab API URL(默认:
https://gitlab.com,或输入您的自托管 GitLab URL)
该命令将:
- 在集群中创建 Repository CR
- 自动配置 GitLab webhook
- 创建 Kubernetes Secret 存储凭据
- 在您的仓库中生成
.tekton/pipelinerun.yaml模板
步骤 3:创建您的第一个流水线
tkn pac create repo 命令会在 .tekton/pipelinerun.yaml 创建一个基础模板。编辑该文件定义您的流水线:
提交并推送到您的仓库:
注意:
- 将
<your-branch-name>替换为您的分支名(如main、master或develop) - 确保注解
pipelinesascode.tekton.dev/on-target-branch与您的分支名匹配。例如分支为main,使用"[refs/heads/main]";分支为test,使用"[refs/heads/test]" - 支持匹配多个分支,使用逗号分隔:
"[main, develop]"或"[refs/heads/main,refs/heads/develop]" - 匹配所有分支,使用:
"[refs/heads/*]"
步骤 4:测试流水线
通过 Push 触发
向流水线注解指定的分支推送提交以触发流水线:
通过合并请求触发
创建合并请求触发流水线:
然后在 GitLab 创建合并请求。
查看流水线状态
查看指定命名空间中的 PipelineRuns:
示例输出:
查看流水线日志:
示例输出:
示例输出: