1.2. Pipelines as Code 概念
Pipelines as Code 会与您的 Git 存储库供应商交互。要使用 Pipelines as Code,您必须首先配置此集成。
您可以将 Pipelines as Code 与 Git 仓库供应商中的任意数量的存储库一起使用。对于每个存储库,您必须在您控制的 OpenShift Container Platform 命名空间中创建 Repository
自定义资源(CR)。此 CR 包含 Pipelines as Code 可以用来访问此存储库的信息。
Pipelines as Code 会启动在此存储库的 Repository
CR 所在的命名空间中存储库运行的管道。
在 Git 存储库中,您必须创建一个 .tekton
目录,并将管道作为 YAML 文件存储在此目录中。您定义的每个管道运行都必须包含注解,用于决定必须触发此管道运行的事件。
定义可以引用同一目录中的其他 YAML 文件。例如,您可以在单独的 YAML 文件中定义一个管道,并在管道运行文件中引用此管道。您还可以使用管道运行定义中的注解来引用 Tekton Hub 中的任务和管道资源,从 HTTP 位置以及目录中的其他路径引用。您可以使用定义中的特殊变量来引用执行上下文,如分支的名称。
当发生匹配的事件时,Pipelines as Code 根据您在存储库中提供的定义创建一个 PipelineRun
CR。创建 PipelineRun
CR 会触发管道运行中定义的管道的执行。
Pipelines as Code 使用 Pipelines as Code 解析器 根据您的定义创建 PipelineRun
CR。Pipelines as Code 解析器会检索您使用注解引用的所有资源,并将它们添加到 PipelineRun
CR 中。如果 Pipelines as Code 解析器无法检索任何引用的资源,Pipelines as Code 会记录错误,且不会创建管道运行。
Pipelines as Code 还将管道运行定义中的动态变量替换为其值。
默认情况下,当为拉取请求或推送事件创建 PipelineRun
CR 时,Pipelines as Code 使用拉取请求或推送事件的源分支中的定义。
如果拉取请求或推送事件修改 .tekton
目录,Pipelines as Code 将使用修改的版本。
您可以在 Repository
CR 中定义 pipelinerun_provenance: "default_branch"
设置以更改此行为。如果您指定此设置,Pipelines as Code 始终使用 Git 存储库提供程序上配置的默认分支的 .tekton
目录中的定义,如 主
、master
或 trunk
。