3.6. 使用经过身份验证的 API 指定远程管道或任务
您可以使用 Git 解析器从 Git 存储库指定远程管道或任务。存储库必须包含定义管道或任务的 YAML 文件。您可以使用经过身份验证的 API 安全地访问存储库,它支持用户身份验证。
3.6.1. 为经过身份验证的 API 配置 Git 解析器 复制链接链接已复制到粘贴板!
对于经过身份验证的 Source Control Management (SCM) API,您必须为经过身份验证的 Git 连接设置配置。
您可以使用 go-scm 库支持的 Git 存储库供应商。并非所有 go-scm 实现都已使用 Git 解析器测试,但以下供应商已知可以正常工作:
-
github.com和 GitHub Enterprise -
gitlab.com和自托管的 Gitlab - Gitea
- Bitbucket 服务器
- Bitbucket 云
- 您可以使用经过身份验证的 SCM API 配置 Git 连接。您可以提供一个安全令牌,使集群中的所有用户能够访问一个存储库。另外,您可以为特定管道或任务指定不同的 SCM 供应商和令牌。
- 如果将 Git 解析器配置为使用经过身份验证的 SCM API,您还可以使用匿名 Git 克隆引用来检索管道和任务。
流程
要编辑
TektonConfig自定义资源,请输入以下命令:oc edit TektonConfig config
$ oc edit TektonConfig configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
TektonConfig自定义资源中,编辑pipeline.git-resolver-configspec:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果未指定,使用默认 Git 修订。
- 2
- 单个 Git 克隆解析可能需要的最大时间,如
1m、2s、700ms。Red Hat OpenShift Pipelines 还在所有解析请求中强制实施全局最大超时时间为 1 分钟。 - 3
- SCM 提供程序类型。
- 4
- 用于经过身份验证的 SCM API 的基本 URL。如果您使用
github.com、gitlab.com或 BitBucket Cloud,则不需要此设置。 - 5
- 包含 SCM 提供程序 API 令牌的 secret 名称。
- 6
- 包含令牌的令牌 secret 中的密钥。
- 7
- 包含令牌 secret 的命名空间(如果不是
default)。 - 8
- 可选:使用经过身份验证的 API 时存储库的默认机构。如果您没有在解析器参数中指定机构,则使用此机构。
使用经过身份验证的 SCM API 需要 scm-type,api-token-secret-name, 和 api-token-secret-key 设置。
3.6.2. 使用带有经过身份验证的 SCM API 的 Git 解析器指定远程管道或任务 复制链接链接已复制到粘贴板!
在创建管道运行时,您可以使用经过身份验证的 SCM API 从 Git 存储库指定远程管道。在创建管道或任务运行时,您可以从 Git 仓库指定远程任务。
先决条件
- 如果要使用经过身份验证的 SCM API,您必须为 Git 解析器配置经过身份验证的 Git 连接。
流程
要从 Git 仓库指定远程管道或任务,请在
pipelineRef或taskRefspec 中使用以下引用格式:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表 3.49. Git 解析器支持的参数 参数 描述 示例值 org使用经过身份验证的 SCM API 时存储库的机构。
tektoncdrepo使用经过身份验证的 SCM API 时的存储库名称。
test-infrarevision存储库中的 Git 修订。您可以指定分支名称、标签名称或提交 SHA 哈希。
aeb957601cf41c012be462827053a21a420befcamainv0.38.2pathInRepo存储库中的 YAML 文件的路径名称。
task/golang-build/0.3/golang-build.yaml注意要匿名克隆和获取存储库,请使用
url参数。要使用经过身份验证的 SCM API,请使用repo参数。不要同时指定url参数和repo参数。如果管道或任务需要额外的参数,在管道、管道运行或任务运行规格的
params部分中指定这些参数的值。pipelineRef或taskRef规格的params部分必须包含解析器支持的参数。
以下示例管道运行引用 Git 存储库中的远程管道:
以下示例管道引用 Git 存储库中的远程任务:
以下示例任务运行引用 Git 存储库中的远程任务:
在创建管道运行时,您可以使用经过身份验证的 SCM API 从 Git 存储库指定远程管道。在创建管道或任务运行时,您可以从 Git 仓库指定远程任务。您可以覆盖特定管道运行或任务中的初始配置设置,以根据不同的用例自定义行为。
以下示例任务运行引用 Git 存储库中的远程任务来覆盖之前的解析器配置:
| 参数 | 描述 | 示例值 |
|---|---|---|
|
| 仓库的组织。 |
|
| repo | 存储库名称。 | catalog |
| revision | 存储库中的 Git 修订。您可以指定分支名称、标签名称或提交 SHA 哈希。 | main |
| pathInRepo | 存储库中的 YAML 文件的路径名称。 | task/git-clone/0.6/git-clone.yaml |
| token | 用于身份验证的 secret 名称。 | my-secret-token |
| tokenKey | 令牌的密钥名称。 | token |
| scmType | SCM (源控制管理)系统的类型。 | github |
| serverURL | 托管存储库的服务器的 URL。 |
|