发行注记


Red Hat OpenShift Pipelines 1.17

OpenShift Pipelines 发行版本的主要新功能及变化信息

Red Hat OpenShift Documentation Team

摘要

此发行注记介绍了 OpenShift Pipelines 的新功能、功能增强、重要的技术变化、以及对以前版本中的错误作出的主要修正。另外,还包括在此版本正式发行(GA)时存在的已知问题的信息。

第 1 章 Red Hat OpenShift Pipelines 发行注记

注意

如需有关 OpenShift Pipelines 生命周期和支持的平台的更多信息,请参阅 OpenShift Operator 生命周期和 Red Hat OpenShift Container Platform 生命周期政策

发行注记包含有关新的和已弃用的功能、破坏更改以及已知问题的信息。以下发行注记适用于 OpenShift Container Platform 的最新 OpenShift Pipelines 版本。

Red Hat OpenShift Pipelines 是基于 Tekton 项目的一个云原生 CI/CD 环境,它提供:

  • 标准 Kubernetes 原生管道定义 (CRD)。
  • 无需 CI 服务器管理开销的无服务器管道。
  • 使用任何 Kubernetes 工具(如 S2I、Buildah、JIB 和 Kaniko)构建镜像。
  • 不同 Kubernetes 发布系统间的可移植性。
  • 用于与管道交互的强大 CLI。
  • 使用 OpenShift Container Platform Web 控制台的 Developer 视角集成用户体验。

如需了解 Red Hat OpenShift Pipelines 的概述,请参阅了解 OpenShift Pipelines

1.1. 兼容性和支持列表

这个版本中的一些功能当前还只是一个技术预览。它们并不适用于在生产环境中使用。

在下表中,被标记为以下状态的功能:

TP

技术预览

GA

公开发行

表 1.1. 兼容性和支持列表
Red Hat OpenShift Pipelines 版本组件版本OpenShift 版本支持状态

Operator

Pipelines

触发器

CLI

Hub

Pipelines 作为代码(Pipelines as Code)

结果

Manual Approval Gate

  

1.17

0.65.x

0.30.x

0.39.x

0.23.x (GA)

1.19.x (TP)

0.29.x (GA)

0.13.x (TP)

0.4.x (TP)

4.15, 4.16, 4.17, 4.18

GA

1.16

0.62.x

0.29.x

0.38.x

0.22.x (GA)

1.18.x (TP)

0.28.x (GA)

0.12.x (TP)

0.3.x (TP)

4.15, 4.16, 4.17, 4.18

GA

1.15

0.59.x

0.27.x

0.37.x

0.20.x (GA)

1.17.x (TP)

0.27.x (GA)

0.10.x (TP)

0.2.x (TP)

4.14, 4.15, 4.16

GA

1.14

0.56.x

0.26.x

0.35.x

0.20.x (GA)

1.16.x (TP)

0.24.x (GA)

0.9.x (TP)

不适用

4.12, 4.13, 4.14, 4.15, 4.16

GA

如果您有疑问或希望提供反馈信息,请向产品团队发送邮件 pipelines-interest@redhat.com

1.2. Red Hat OpenShift Pipelines 1.17 发行注记

在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA) 1.17 包括在 OpenShift Container Platform 4.15 及更新的版本中。

注意

要使用 OpenShift Pipelines,必须至少使用以下 OpenShift Container Platform 版本:

  • 对于 OpenShift Container Platform 版本 4.15: 4.15.42 或更高版本
  • 对于 OpenShift Container Platform 版本 4.16: 4.16.26 或更高版本
  • 对于 OpenShift Container Platform 版本 4.17: 4.17.7 或更高版本

1.2.1. 新功能

除了包括修复和稳定性改进的信息外,以下小节突出介绍了 Red Hat OpenShift Pipelines 1.17 中的新内容:

1.2.1.1. Pipelines
  • 在这个版本中,您可以使用 Git 解析器配置多个 Git 供应商,或者在 TektonConfig 自定义资源(CR)中为同一 Git 供应商添加多个配置。然后,您可以使用 configKey 参数指定在不同的任务运行和管道运行中使用的 Git 配置。

    多个 Git 供应商配置示例

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
    # ...
      pipeline:
        git-resolver-config:
          # configuration 1
          fetch-timeout: "1m"
          default-url: "https://github.com/tektoncd/catalog.git"
          default-revision: "main"
          scm-type: "github"
          server-url: ""
          api-token-secret-name: ""
          api-token-secret-key: ""
          api-token-secret-namespace: "default"
          default-org: ""
          # configuration 2
          test1.fetch-timeout: "5m"
          test1.default-url: ""
          test1.default-revision: "stable"
          test1.scm-type: "github"
          test1.server-url: "api.internal-github.com"
          test1.api-token-secret-name: "test1-secret"
          test1.api-token-secret-key: "token"
          test1.api-token-secret-namespace: "test1"
          test1.default-org: "tektoncd"
          # configuration 3
          test2.fetch-timeout: "10m"
          test2.default-url: ""
          test2.default-revision: "stable"
          test2.scm-type: "gitlab"
          test2.server-url: "api.internal-gitlab.com"
          test2.api-token-secret-name: "test2-secret"
          test2.api-token-secret-key: "pat"
          test2.api-token-secret-namespace: "test2"
          test2.default-org: "tektoncd-infra"
    # ...

    在管道运行中使用 test1 配置示例

    apiVersion: tekton.dev/v1
    kind: PipelineRun
    metadata:
      name: example
    spec:
      pipelineRef:
        resolver: git
        params:
        # ...
        - name: configKey
          value: test1
    # ...

  • 在这个版本中,除了集群级别外,您还可以监控命名空间、管道和管道运行级别的正在运行的 PipelineRun 资源。您可以通过将 metrics.running-pipelinerun.level 参数设置为 命名空间,pipeline, 或 pipelinerun,通过 TektonConfig 自定义资源配置级别。默认值为空,它在集群级别设置监控。

    监控在命名空间级别运行的管道运行示例

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        # ...
        metrics.running-pipelinerun.level: namespace
    # ...

  • 在这个版本中,在执行管道运行或任务运行后,资源的 YAML 清单包含一个标签,显示执行它的用户 ID。对于 PipelineRun 资源,标签是 tekton.dev/PipelineRunUID。对于 TaskRun 资源,标签是 tekton.dev/TaskRunUID
  • 在这个版本中,当您使用 TektonConfig CR 中的 spec.pipeline.performance spec 来指定性能调优值,如 threads-per-controllerkube-api-qpskube-api-burst 和 kube-api-burst,OpenShift Pipelines 会将这些值应用到解析器控制器和其他控制器。
1.2.1.2. Operator
  • 在这个版本中,您可以使用附加参数运行 skopeo-copy 命令,如-- all--preserve-digests。您可以将这些参数作为空格分隔的字符串传递,如下例所示:

    示例命令

    $ tkn task start skopeo-copy -p ARGS="--all --preserve-digests"

  • 在这个版本中,OpenShift Pipelines 应用应用到管道或任务的任何安全性上下文约束(SCC)的临时卷设置。
1.2.1.3. Pipelines 作为代码(Pipelines as Code)
  • 在这个版本中,添加了 pipelines_as_code_running_pipelineruns_count 指标,以显示 Pipelines as Code 中运行 PipelineRun 资源的数量。指标可以按存储库或命名空间过滤。
  • 在这个版本中,添加了 pipelines_as_code_pipelinerun_duration_seconds_sum 指标,以显示 Pipelines as Code 中的所有 PipelineRun 资源的总持续时间(以秒为单位)。指标可以按存储库、命名空间、 PipelineRun 状态更改原因进行过滤。
1.2.1.4. Tekton Results
  • 在这个版本中,您可以将 Tekton 结果配置为从管道的 YAML 清单中包含某些标签和注解,并在结果表的 summary 字段 列中包含特定的标签和注解。默认情况下使用 tekton.dev/pipeline 标签的值。要进行此更改,请修改 TektonResult CR,如下例所示:

    TektonResult CR 中配置概述标签和注解示例

    apiVersion: operator.tekton.dev/v1
    kind: TektonResult
    metadata:
      name: result
    spec:
      options:
        deployments:
          tekton-results-watcher:
            spec:
              template:
                spec:
                  containers:
                  - name: watcher
                    args:
                    - "--summary_labels=org.tekton.sample_label,tekton.dev/pipeline"
                    - "--summary_annotations=org.tekton.sample_annotation"

1.2.1.5. Tekton Chains
  • 在这个版本中,您可以将 TektonConfig 自定义资源(CR)配置为生成 ecdsa 类型的 x509 密钥对,并使用Tekton Chains 为工件签名。您可以通过将 TektonConfig 自定义资源(CR)中的 generateSigningSecret 字段设置为 true 来生成密钥对:

    创建 ecdsa 密钥对示例

    apiVersion: operator.tekton.dev/v1
    kind: TektonConfig
    metadata:
      name: config
    spec:
    # ...
      chain:
        disabled: false
        generateSigningSecret: true
    # ...

  • 在此次更新之前,如果您没有在 TektonConfig CR 中配置 Tekton 链,Operator 不会传递任何默认链配置。在这个版本中,如果您没有在 TektonConfig CR 中配置 Tekton 链,Operator 会使用这些默认属性设置 Tekton Chains 配置:

    apiVersion: operator.tekton.dev/v1
    kind: TektonConfig
    metadata:
      name: config
    spec:
    # ...
      chain:
        artifacts.taskrun.format: in-toto
        artifacts.taskrun.storage: oci
        artifacts.oci.storage: oci
        artifacts.oci.format: simplesigning
        artifacts.pipelinerun.format: in-toto
        artifacts.pipelinerun.storage: oci
    # ...
  • 在这个版本中,Tekton Chains 现在支持从可以具有任何名称的指定文件中提取 mongo-server-url URL。现在,您可以使用 storage.docdb.mongo-server-url-path 参数指向容器中的有效文件路径。

1.2.2. 可能会造成问题的更改

  • 在这个版本中,已弃用的 ClusterTask 资源已从 Operator 中删除。另外,您可以使用集群解析器访问 OpenShift Pipelines 在 openshift-pipelines 命名空间中安装的任务。

    重要

    在升级到 OpenShift Pipelines 1.17 之前,如果您配置了任何使用 ClusterTask 资源的管道,您必须编辑它们以使用 openshift-pipelines 命名空间中的任务。否则,升级后管道将失败。

    有关使用 openshift-pipelines 命名空间中的任务的更多信息,请参阅 OpenShift Pipelines 命名空间 中提供的任务

  • 在这个版本中,社区集群任务从 Operator 中删除。另外,您可以从 Tekton 目录 (GitHub 资源)下载它们。社区集群任务计划在以后的版本中作为任务添加。以下列表显示了已删除的社区集群任务:

    • argocd-task-sync-and-wait
    • git-cli
    • helm-upgrade-from-repo
    • helm-upgrade-from-source
    • jib-maven
    • kubeconfig-creator
    • pull-request
    • trigger-jenkins-job

1.2.3. 修复的问题

  • 在这个版本中,如果 push 事件有效负载不包含提交,Pipelines as Code 控制器不再处理 GitLab push 事件。相反,它会正确地显示错误消息警告用户没有附加提交。
  • 在这个版本中,Pipelines as Code 控制器不再处理 GitLab 标签删除事件,这会导致控制器崩溃。相反,它可以正确地显示错误消息警告用户删除标签事件。
  • 在此次更新之前,一些标准变量、标头值和正文字段(如 body.eventKey 字段)没有在 Bitbucket 服务器的 PipelineRun 资源中解析。在这个版本中,这个问题已被解决。
  • 在这个版本中,如果 SOURCE_IMAGE_URLDESTINATION_IMAGE_URL 参数留空,则 skopeo-copy 任务支持使用 url.txt 文件复制多个镜像。
  • 在此次更新之前,在空仓库中运行 tkn pac create repo 命令会导致生成 . period 符号作为模板中运行的管道名称。在这个版本中,这个问题已被解决,REPO_NAME.git 现在被用作管道运行名称。
  • 在这个版本中,管道运行失败处理已被修复,以便在 status.message 字段中准确报告验证失败,并持续触发 finally 任务,即使任务失败。
  • 在此次更新之前,当 pod 因内存不足错误而失败时,任务运行不会立即失败。相反,它在某些情况下没有响应,然后失败。在这个版本中,任务运行会立即失败。
  • 在此次更新之前,如果 CustomRun 资源引用返回数组的管道或任务资源,日志中会报告结果类型不匹配。在这个版本中,数组结果会被正确处理。
  • 在此次更新之前,当任务运行失败时,在某些情况下,任务中的一些步骤的状态没有在 TaskRun YAML 清单中正确记录。在这个版本中,状态会被正确记录。
  • 在此次更新之前,如果任务中的一个步骤失败,则后续步骤有时会在任务运行或管道运行的 YAML 清单中标记为跳过。在这个版本中,步骤被标记为 skipped。c
  • 在此次更新之前,如果管道运行包含验证失败的任务,后续的 finally 任务没有运行,即使它应该在上一个任务失败后运行。在这个版本中,finally 任务运行。
  • 在此次更新之前,当将 Pipelines as Code 与 GitLab 搭配使用时,如果 .tekton 目录包含 20 个文件,则一些管道运行无法启动。在这个版本中,管道会正确启动。
  • 在此次更新之前,当将 Pipelines as Code 与 BitBucket 搭配使用时,BitBucket 事件中的一个不正确的有效负载可能会导致 Pipelines as Code 控制器崩溃。在这个版本中,控制器不会崩溃,在处理有效负载前验证有效负载,并正确报告错误。
  • 在此次更新之前,当使用 Pipelines as Code 时,当删除完管道前运行的管道时,临时 Git 身份验证 secret 会保留在 OpenShift Container Platform 命名空间中。因此,可能会出现 secret 的配额,在这种情况下,新管道运行无法启动。在这个版本中,Pipelines as Code 可以正确地删除临时 secret。
  • 在此次更新之前,当将 Pipelines as Code 与 Bitbucket Cloud 搭配使用时,当为 on-target-branch 配置管道运行时,标签相关的事件与 on- target-branch: [refs/tags输入] 不匹配。这是因为 Bitbucket 与标签相关的 Bitbucket 云事件有效负载不包含 refs/tags 前缀。在这个版本中,Pipelines as Code 可以正确地与标签事件匹配。
  • 在此次更新之前,当任务被取消时,Tekton Chains 不会记录任务的规格。在这个版本中,Tekton Chains 会记录任务的规格。
  • 在此次更新之前,在 Tekton Chains 中,任务规格中的记录步骤(TaskRun.Status.steps)可能会不匹配,即使任务运行正确执行了任务中的所有步骤。在这个版本中,任务规格中的步骤以及任务运行中执行的步骤会被正确记录。
  • 在此次更新之前,当管道运行因为超时而终止时,日志输出有时会包含无效且管道运行的状态未正确报告的错误消息。在这个版本中,此类消息不会出现在日志中,状态会被正确报告。
  • 在此次更新之前,当指定一个工作区被挂载到任务的一个或多个步骤中时,OpenShift Pipelines 会为任务中的所有步骤挂载工作区。在这个版本中,工作区只会挂载到指定它的步骤中。
  • 在此次更新之前,当使用 Pipelines as Code 时,如果 OpenShift Container Platform 集群非常忙碌,一些管道运行无法执行,因为并发队列没有正常恢复。在这个版本中,Pipelines as Code 可以正确地管理并发队列并执行所有管道运行。
  • 在此次更新之前,如果您在 TektonConfig CR 中指定默认容器资源要求,然后将 LimitRange 设置应用到管道或任务,则有时不会应用 LimitRange 设置,因为默认要求会覆盖它。在这个版本中,LimitRange 设置会覆盖默认的容器资源要求。
  • 在此次更新之前,如果管道运行或任务运行因为验证错误而无法执行,OpenShift Pipelines 记录并显示管道运行或任务运行的通用 Failed 状态。在这个版本中,OpenShift Pipelines 记录了 Failed Validation 状态。
  • 在此次更新之前,当使用 tkn bundle 命令来读取大型 Tekton 捆绑包的内容时,命令可能会失败。在这个版本中,tkn 命令行工具可以正确地处理大型 Tekton 捆绑包。
  • 在此次更新之前,当使用 tkn 命令行工具查看已完成的管道运行时,因为您在管道中设置的条件被跳过的任务会显示为 Succeeded (Completed)。在这个版本中,它们不再显示为 completed。

1.2.4. Red Hat OpenShift Pipelines 正式发布 1.17.1 发行注记

在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA) 1.17.1 包括在 OpenShift Container Platform 4.15 及更新的版本中。

1.2.4.1. 修复的问题
  • 在此次更新之前,如果您定义了包含常规参数和列表参数的 matrix 任务,tekton-pipelines-controller 组件会崩溃并记录分段错误消息。如果没有删除该任务,则组件将继续崩溃,且不会运行任何管道。在这个版本中,控制器不会在这样的情形中崩溃。
  • 在此次更新之前,在某些情况下,Tekton Chains 控制器会重复崩溃,使 Tekton Chains 组件不可用。在这个版本中,控制器不再崩溃。
  • 在此次更新之前,openshift-pipelines 命名空间中的 buildah 任务不允许 BUILD_EXTRA_ARGS 参数中的空格。在这个版本中,buildah 任务允许在 BUILD_EXTRA_ARGS 参数中传递空格。

    BUILD_EXTRA_ARGS 参数的示例,其值中带有空格

    # ...
       - name: BUILD_EXTRA_ARGS
         value: '--build-arg EXAMPLE="abc def"'
    # ...

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat, Inc.