第 4 章 使用 Repository 自定义资源
Repository
自定义资源 (CR) 有以下主要功能:
- 告知 Pipelines as Code 关于处理来自一个 URL 事件的信息。
- 告知 Pipelines as Code 关于管道运行的命名空间信息。
- 使用 webhook 方法时,对于 Git 供应商平台需要需要引用 API secret、用户名或 API URL。
- 为存储库提供最后的管道运行状态。
4.1. 创建 Repository 自定义资源
您可以使用 tkn pac
CLI 或其他替代方法在目标命名空间中创建 Repository
自定义资源 (CR)。例如:
cat <<EOF|kubectl create -n my-pipeline-ci -f- 1
apiVersion: "pipelinesascode.tekton.dev/v1alpha1"
kind: Repository
metadata:
name: project-repository
spec:
url: "https://github.com/<repository>/<project>"
EOF
- 1
my-pipeline-ci
是目标命名空间。
当有来自 URL (如 https://github.com/<repository>/<project>
的事件时,Pipelines as Code 会匹配它,然后为管道运行签出 <repository>/<project>
存储库的内容,以匹配 .tekton/
目录中的内容。
注意
-
您必须在与要执行的源代码存储库关联的管道所在的同一命名空间中创建
Repository
CR,它不能针对不同的命名空间。 -
如果多个
Repository
CR 与同一事件匹配,Pipelines as Code 只处理最旧的事件。如果您需要与特定命名空间匹配,请添加pipelinesascode.tekton.dev/target-namespace: "<mynamespace>"
注解。通过这种显式目标,可防止恶意攻击者在其无法访问的命名空间中执行一个管道运行。