tkn pac 命令参考
tkn pac 是 Pipelines-as-Code 的官方 CLI 插件。它可以自动完成一些一次性设置(创建 Repository 资源、注册 webhook、生成起始 .tekton/pipelinerun.yaml),这些操作通常需要通过 kubectl apply 和 Git 提供方的 Web UI 手动完成。
本页面是面向偏好 CLI 工作流的用户的命令参考。有关使用普通 manifest 的推荐端到端操作步骤,请参见 配置 GitHub 仓库 和 配置 GitLab 仓库。
目录
前置条件安装 tkn pac 插件验证安装Repository 命令tkn pac create repositorytkn pac listtkn pac repo describe生成命令tkn pac generateResolve 命令tkn pac resolve全局选项最佳实践1. Repository 管理2. Pipeline 生成故障排除命令未找到连接问题下一步前置条件
- 已安装
tknCLI - 已安装
tkn pac插件 - 已配置
kubectl以访问你的集群 - 已部署 PAC 组件
安装 tkn pac 插件
从 Tekton CLI Releases 下载 tkn,然后从 tkn pac Releases 安装 pac 插件。
请使用官方 tkn pac 项目发布指南中的任一方法安装 tkn pac,并确保可执行文件位于你的 PATH 中。
验证安装
示例输出:
示例输出:
Repository 命令
tkn pac create repository
根据 pipeline run 模板创建一个新的 Pipelines as Code repository 和 namespace。
基本语法:
交互模式:
该命令会提示你输入以下信息:
- Git 仓库 URL(从当前目录自动检测)
- pipelines 的 namespace(默认:
project-pipelines) - Git 提供方特定信息(例如 GitLab 的 project ID)
- PAC controller URL(自动检测)
- webhook secret(自动生成)
- Git 提供方访问令牌
- Git 提供方 API URL(因提供方而异)
它的作用:
- 在你的 Kubernetes 集群中创建一个 Repository CR
- 自动配置 Git 提供方 webhook
- 使用 Git 提供方凭据创建 Kubernetes Secret
- 在你的仓库中生成
.tekton/pipelinerun.yaml模板
示例:
示例输出(交互式提示):
有关特定提供方的端到端操作步骤,请参见 指南。
tkn pac list
列出所有 Pipelines as Code 仓库,并显示关联运行的最近状态。
基本语法:
列出特定 namespace 中的内容:
输出格式:
选项:
-n, --namespace <namespace>:指定要列出仓库的 namespace(默认:当前 kubectl 上下文 namespace)-A, --all-namespaces:列出所有 namespace 中的仓库-o, --output <format>:输出格式(default、json、yaml、wide)
示例:
tkn pac repo describe
描述一个 Pipelines as Code 仓库及其关联运行。
基本语法:
选项:
-n, --namespace <namespace>:指定仓库所在的 namespace(默认:当前 kubectl 上下文 namespace)-o, --output <format>:输出格式(default、json、yaml)
输出包括:
- Repository CR 详细信息
- Git 提供方配置
- webhook 配置
- 最近的 PipelineRun 状态
- 最近一次运行信息
示例:
示例输出:
生成命令
tkn pac generate
生成一个简单的 PipelineRun 模板。
基本语法:
功能:
- 自动从目录中检测当前 Git 信息
- 使用基础语言检测能力
- 根据检测到的语言添加额外任务
- 创建
.tekton/pipelinerun.yaml模板
语言检测:
该命令会检测项目语言并添加相应任务:
- Python:检测
setup.py或requirements.txt,添加pylint任务 - Go:检测
go.mod,添加golangci-lint任务 - Node.js:检测
package.json,添加npm任务 - Java:检测
pom.xml,添加maven任务
示例:
示例输出:
生成的模板示例:
Resolve 命令
tkn pac resolve
执行一个 pipeline run,仿佛它由 Pipelines as Code 服务拥有。此命令适用于在不创建新 commit 的情况下在本地测试 pipeline 定义。
resolve 命令会处理你的 PipelineRun 定义,并执行以下操作:
- 将 PAC 变量(如
{{repo_url}}、{{revision}})替换为实际值 - 解析 task 注解(必要时从 Tekton Hub 获取 task)
- 验证 pipeline 结构
- 展示最终的 PipelineRun 外观
重要:此命令不会在你的集群中创建 PipelineRun。它只会在本地处理并验证 pipeline 定义。
基本语法:
选项:
-f, --file:pipeline 文件或目录路径(必需)-p, --param:覆盖参数值(格式:key=value)-o, --output:输出格式(yaml、json 或 default)
从文件解析:
从目录解析:
该命令会处理目录中的所有 .yaml 和 .yml 文件。
覆盖参数:
你可以覆盖从 Git 仓库派生的默认参数值:
多个文件:
你可以多次使用 -f 标志:
自动检测:
当从源代码仓库中运行时,该命令会尝试:
- 检测当前 Git 信息
- 自动解析以下参数:
- 当前 revision(commit SHA)
- 分支名称
- 仓库 URL
- 仓库名称
示例:
示例输出:
输出格式:
该命令会将解析后的 PipelineRun YAML 输出到 stdout。你可以:
-
保存到文件:
tkn pac resolve -f .tekton/pipelinerun.yaml > resolved.yaml -
直接查看:
tkn pac resolve -f .tekton/pipelinerun.yaml -
用于验证:在提交前检查变量是否已正确解析
示例输出:
使用场景:
- 在本地测试 pipeline 定义
- 在不创建 commit 的情况下调试 pipeline 问题
- 在提交前验证 pipeline 语法
- 测试参数解析
全局选项
所有 tkn pac 命令都支持以下全局选项:
-h, --help:显示该命令的帮助信息-v, --version:显示版本信息--kubeconfig:kubeconfig 文件路径--context:要使用的 Kubernetes context
最佳实践
1. Repository 管理
- 使用描述性名称:选择清晰的 repository 名称
- 按 namespace 组织:将相关 repository 分组到不同 namespace 中
- 定期监控:使用
tkn pac list监控 repository 状态
2. Pipeline 生成
- 审查生成的模板:始终审查并自定义生成的 pipeline
- 本地测试:使用
tkn pac resolve在提交前测试 pipeline - 版本控制:将 pipeline 定义提交到 Git
故障排除
命令未找到
如果找不到 tkn pac 命令:
-
验证安装:
示例输出:
-
检查 PATH:确保
tkn-pac位于你的 PATH 中 -
重新安装:如有需要,重新安装该插件
连接问题
如果命令无法连接到集群:
- 验证 kubectl:测试 kubectl 连接
- 检查 context:验证 Kubernetes context
- 查看权限:确保你具有所需权限
下一步
- 指南 - 仓库设置操作步骤
- Incoming Webhooks - 通过 webhook 触发 pipeline
- 管理 PAC 组件 - PAC 组件管理
- 常见问题 - 故障排除指南