tkn pac 命令参考
tkn pac 是 Pipelines-as-Code 的官方 CLI 插件。它可自动完成一次性设置(创建 Repository 资源、注册 webhook、生成起始 .tekton/pipelinerun.yaml),这些操作原本需要通过 kubectl apply 和 Git 提供商的 Web UI 手动完成。
本页是面向偏好 CLI 工作流的用户的命令参考。有关使用普通 manifest 的推荐端到端操作步骤,请参阅 配置 GitHub Repository 和 配置 GitLab Repository。
目录
前提条件安装 tkn pac 插件验证安装Repository 命令tkn pac create repositorytkn pac listtkn pac repo describeGenerate 命令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 repository URL(自动从当前目录检测)
- pipelines 所属的 namespace(默认:
project-pipelines) - Git 提供商特定信息(例如 GitLab 的 project ID)
- PAC controller URL(自动检测)
- Webhook secret(自动生成)
- Git 提供商 access token
- Git 提供商 API URL(因提供商而异)
执行内容:
- 在你的 Kubernetes 集群中创建 Repository CR
- 自动配置 Git 提供商 webhook
- 创建包含 Git 提供商凭据的 Kubernetes Secret
- 在你的 repository 中生成
.tekton/pipelinerun.yaml模板
示例:
示例输出(交互式提示):
有关按提供商分类的端到端操作步骤,请参阅 指南。
tkn pac list
列出所有 Pipelines as Code repositories,并显示关联运行的最近状态。
基本语法:
列出特定 namespace 中的资源:
输出格式:
选项:
-n, --namespace <namespace>:指定要列出 repositories 的 namespace(默认:当前 kubectl context 的 namespace)-A, --all-namespaces:列出所有 namespace 中的 repositories-o, --output <format>:输出格式(default、json、yaml、wide)
示例:
tkn pac repo describe
描述一个 Pipelines as Code repository 及其关联运行。
基本语法:
选项:
-n, --namespace <namespace>:指定 repository 所在的 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
以仿佛由 Pipelines as Code service 拥有的方式执行 pipeline run。这对于在不创建新 commit 的情况下在本地测试 pipeline 定义非常有用。
resolve 命令会处理你的 PipelineRun 定义,并执行以下操作:
- 将 PAC 变量(如
{{repo_url}}、{{revision}})替换为实际值 - 解析 task 注解(如有需要,从已配置的 DevOps Hub catalog 获取 tasks)
- 验证 pipeline 结构
- 展示最终的 PipelineRun 外观
重要:该命令不会在你的集群中创建 PipelineRun。它只会在本地处理并验证 pipeline 定义。
基本语法:
选项:
-f, --file:pipeline 文件或目录的路径(必需)-p, --param:覆盖参数值(格式:key=value)-o, --output:输出格式(yaml、json 或 default)
从文件解析:
从目录解析:
该命令会处理目录中的所有 .yaml 和 .yml 文件。
覆盖参数:
你可以覆盖从 Git repository 派生出的默认参数值:
多个文件:
你可以多次使用 -f 标志:
自动检测:
当从源码 repository 运行时,该命令会尝试:
- 检测当前 Git 信息
- 自动解析以下参数:
- 当前 revision(commit SHA)
- branch name
- repository URL
- repository name
示例:
示例输出:
输出格式:
该命令会将解析后的 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 组织:在 namespace 中对相关 repositories 进行分组
- 定期监控:使用
tkn pac list监控 repository 状态
2. Pipeline 生成
- 审查生成的模板:始终审查并自定义生成的 pipelines
- 本地测试:使用
tkn pac resolve在提交前测试 pipelines - 版本控制:将 pipeline 定义提交到 Git
故障排除
未找到命令
如果找不到 tkn pac 命令:
-
验证安装:
示例输出:
-
检查 PATH:确保
tkn-pac位于你的 PATH 中 -
重新安装:如有需要,重新安装该插件
连接问题
如果命令无法连接到集群:
- 验证 kubectl:测试 kubectl 连接
- 检查 context:验证 Kubernetes context
- 查看权限:确保你拥有所需权限
下一步
- 指南 - Repository 设置演练
- Incoming Webhooks - 通过 webhook 触发 pipelines
- 管理 PAC 组件 - PAC 组件管理
- 常见问题 - 故障排除指南