tkn pac 命令参考
本指南涵盖用于仓库管理、Pipeline 生成和解析的 tkn pac CLI 命令。
本指南提供 tkn pac CLI 插件命令的完整参考,包括仓库管理、Pipeline 生成和解析。
目录
前提条件安装 tkn pac 插件验证安装仓库命令tkn pac create repositorytkn pac listtkn pac repo describeGenerate 命令tkn pac generateResolve 命令tkn pac resolve全局选项最佳实践1. 仓库管理2. Pipeline 生成故障排查找不到命令连接问题后续步骤前提条件
- 已安装
tknCLI - 已安装
tkn pac插件 - 已配置 kubectl 以访问你的集群
- 已部署 PAC 组件
安装 tkn pac 插件
请参阅 tkn pac Releases 了解最新版本。
请使用官方 tkn pac 项目发布指南中的任一方法安装 tkn pac,并确保可执行文件在你的 PATH 中可用。
验证安装
示例输出:
示例输出:
仓库命令
tkn pac create repository
根据 PipelineRun 模板创建一个新的 Pipelines as Code 仓库和 namespace。
基本语法:
交互模式:
该命令会提示你输入以下内容:
- Git 仓库 URL(可从当前目录自动检测)
- Pipeline 所在的 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模板
示例:
示例输出(交互式提示):
有关详细用法,请参阅 Configure Repository。
tkn pac list
列出所有 Pipelines as Code 仓库,并显示关联运行的最新状态。
基本语法:
列出特定 namespace:
输出格式:
选项:
-n, --namespace <namespace>:指定要列出仓库的 namespace(默认:当前 kubectl context 的 namespace)-A, --all-namespaces:列出所有 namespace 中的仓库-o, --output <format>:输出格式(default、json、yaml、wide)
示例:
tkn pac repo describe
描述一个 Pipelines as Code 仓库及其关联运行。
基本语法:
选项:
-n, --namespace <namespace>:指定仓库所在的 namespace(默认:当前 kubectl context 的 namespace)-o, --output <format>:输出格式(default、json、yaml)
输出包括:
- Repository CR 详细信息
- Git 提供商配置
- Webhook 配置
- 最近的 PipelineRun 状态
- 上次运行信息
示例:
示例输出:
Generate 命令
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 运行,仿佛它由 Pipelines as Code 服务拥有。这对于在本地测试 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 定义
- 在不创建提交的情况下调试 pipeline 问题
- 在提交前验证 pipeline 语法
- 测试参数解析
全局选项
所有 tkn pac 命令都支持以下全局选项:
-h, --help:显示命令帮助-v, --version:显示版本信息--kubeconfig:kubeconfig 文件路径--context:要使用的 Kubernetes context
最佳实践
1. 仓库管理
- 使用描述性名称:选择清晰的仓库名称
- 按 namespace 组织:将相关仓库分组到各自的 namespace 中
- 定期监控:使用
tkn pac list监控仓库状态
2. Pipeline 生成
- 审查生成的模板:始终检查并自定义生成的 pipeline
- 本地测试:使用
tkn pac resolve在提交前测试 pipeline - 版本控制:将 pipeline 定义提交到 Git
故障排查
找不到命令
如果找不到 tkn pac 命令:
-
验证安装:
示例输出:
-
检查 PATH:确保
tkn-pac位于你的PATH中 -
重新安装:如有需要,重新安装插件
连接问题
如果命令无法连接到集群:
- 验证 kubectl:测试 kubectl 连接
- 检查 context:验证 Kubernetes context
- 检查权限:确保你拥有所需权限
后续步骤
- Configure Repository - 仓库设置指南
- Incoming Webhooks - 通过 webhook 触发 pipeline
- Manage PAC Component - PAC 组件管理
- Common Issues - 故障排查指南