4.5. 自定义参数扩展


您可以使用 params 字段使用 Pipelines as Code 在 PipelineRun 资源中扩展自定义参数。您可以为 Repository 自定义资源 (CR) 模板中的 custom 参数指定一个值。指定的值替换管道运行中的 custom 参数。

在以下情况下可以使用自定义参数:

  • 定义 URL 参数,如因推送或拉取请求而异的 registry URL。
  • 要定义一个参数,如管理员可在不需要 Git 仓库中执行 PipelineRun 的更改的情况下管理的帐户 UUID。
注意

只有在无法使用 Tekton PipelineRun 参数时,才使用自定义参数扩展功能,因为 Tekton 参数在 Pipeline 资源中定义,并在 Git 仓库内自定义它。但是,自定义参数会被定义和自定义 Repository CR 所在的位置。因此,您无法从单一点管理 CI/CD 管道。

以下示例显示了 Repository CR 中名为 company 的自定义参数:

...
spec:
  params:
    - name: company
      value: "ABC Company"
...
Copy to Clipboard Toggle word wrap

ABC Company 取代了您的管道运行和远程获取任务中的参数名称 company

您还可以从 Kubernetes secret 检索自定义参数的值,如下例所示:

...
spec:
  params:
    - name: company
      secret_ref:
        name: my-secret
        key: companyname
...
Copy to Clipboard Toggle word wrap

Pipelines as Code 解析并使用以下自定义参数:

  • 如果您定义了 和一个 secret_ref,Pipelines as Code 将使用
  • 如果您在 params 部分中没有 name,Pipelines as Code 不会解析参数。
  • 如果您有多个带有相同名称参数,Pipelines as Code 将使用最后一个参数。

您还可以定义自定义参数,仅在指定条件与 CEL 过滤器匹配时才使用其扩展。以下示例显示了当触发拉取请求事件时,适用于名为 company 的自定义参数的 CEL 过滤器:

...
spec:
  params:
    - name: company
      value: "ABC Company"
      filter: pac.event_type == "pull_request"
...
Copy to Clipboard Toggle word wrap
注意

当您有多个具有相同名称和不同过滤器的参数时,Pipelines as Code 会使用与过滤器匹配的第一个参数。因此,Pipelines as Code 允许您根据不同的事件类型扩展参数。例如,您可以组合一个推送和拉取请求事件。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat