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"
...

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

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

...
spec:
  params:
    - name: company
      secretRef:
        name: my-secret
        key: companyname
...

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

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

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

...
spec:
  params:
    - name: company
      value: "ABC Company"
      filter:
        - name: event
          value: |
      pac.event_type == "pull_request"
...
注意

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.