1.3. Red Hat OpenShift Pipelines 正式发布 1.13 发行注记


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

1.3.1. 新功能

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

注意

在升级到 Red Hat OpenShift Pipelines Operator 1.13 之前,请确保至少在集群中安装 OpenShift Container Platform 4.12.19 或 4.13.1 版本。

1.3.1.1. Pipelines

  • 在此次更新之前,Source-to-Image (S2I)集群任务使用了一个技术预览中的基本 S2I 容器镜像。在这个版本中,S2I 集群任务使用了发布并完全支持的基本 S2I 容器镜像。
  • 在这个版本中,您可以启用设置,以便在取消任务运行时,OpenShift Pipelines 会停止任务运行的 pod,但不会删除 pod。要启用此设置,在 TektonConfig 自定义资源(CR)中将 pipeline.options.configMaps.feature-flags.data.keep-pod-on-cancel spec 设置为 truepipeline.enable-api-fields spec 设置为 alpha
  • 在此次更新之前,您必须启用 alpha 功能,以便对任务级别设置计算资源限制。在这个版本中,您可以使用 TaskRun CR 的 computeResources spec 为任务设置资源限值。
  • 在这个版本中,当指定任务和使用 displayName 参数时,您可以使用包含显示名称中的参数、结果或上下文变量的参数,如 $(params.application), $(tasks.scan.results.report), $(context.pipeline.name)
  • 在这个版本中,当使用 hub 解析器指定远程管道或任务时,您可以在 version 参数中使用 inequation 约束,如 > =0.2.0,< 1.0.0
  • 在这个版本中,当指定任务时,您可以在 when 表达式中使用通用表达式语言(CEL)表达式。要使用这个功能,您必须在 TektonConfig CR 中将 pipeline.options.configMaps.feature-flags.data.enable-cel-in-whenexpression spec 设置为 true
  • 在这个版本中,当在 PipelineRun CR spec 中指定管道时,您可以在后续内联任务中引用由内联任务生成的结果。

    用法示例

      apiVersion: tekton.dev/v1
      kind: Task
      metadata:
        name: uid-task
      spec:
        results:
          - name: uid
        steps:
          - name: uid
            image: alpine
            command: ["/bin/sh", "-c"]
            args:
              - echo "1001" | tee $(results.uid.path)
      ---
      apiVersion: tekton.dev/v1
      kind: PipelineRun
      metadata:
        name: uid-pipeline-run
      spec:
        pipelineSpec:
          tasks:
          - name: add-uid
            taskRef:
              name: uid-task
          - name: show-uid
            taskSpec:
              steps:
                - name: show-uid
                  image: alpine
                  command: ["/bin/sh", "-c"]
                  args:
                    - echo $(tasks.add-uid.results.uid)
    Copy to Clipboard Toggle word wrap

  • 在这个版本中,在配置集群解析器时,您可以将 blocked-namespaces 参数的值设置为 *。使用这个设置时,只允许在 allowed-namespaces 参数中列出的命名空间,所有其他命名空间都被阻断。

1.3.1.2. Operator

  • 在这个版本中,disable-affinity-assistant 功能标记已弃用,并可能在以后的发行版本中删除。相反,在 TektonConfig CR 中,您可以将 pipeline.options.configMaps.feature-flags.data.coschedule spec 设置为以下值之一:

    • 工作区 :如果工作区分配持久性卷声明,则 OpenShift Pipelines 会调度所有任务运行,它们与同一节点共享。这是默认设置。
    • PipelineRuns: OpenShift Pipelines 将管道运行中的所有任务调度到同一节点。
    • isolate-pipelinerun :OpenShift Pipelines 将管道运行中的所有任务调度到同一节点,并只允许一个管道运行同时在节点上运行。如果所有节点都用于其他管道运行,此设置可能会延迟管道运行。
    • disabled :OpenShift Pipelines 不会将任何特定策略应用到节点。

1.3.1.3. 触发器

  • 在此次更新之前,内核拦截器总是在启动时创建 TLS secret。在这个版本中,如果集群中不存在 TLS secret,或者现有 secret 中的证书已过期,则核心拦截器会创建 TLS secret。

1.3.1.4. CLI

  • 在这个版本中,当使用 tkn bundle push 命令时,捆绑包会创建,并将创建时间设置为 1970-01-01T00:00:00Z (Unix epoch 时间)。此更改可确保从同一源创建的捆绑包镜像始终相同。您可以使用 --ctime 参数以 RFC3339 格式设置创建时间。您还可以使用 SOURCE_DATE_EPOCH 环境变量来设置创建时间。

1.3.1.5. Pipelines 作为代码(Pipelines as Code)

  • 在这个版本中,在 Pipelines as Code 中,当将 CEL 表达式用于高级事件匹配时(pipelinesascode.tekton.dev/on-cel-expression),您可以使用 headerbody 字段访问 Git 存储库供应商正文传递的完整有效负载。您可以使用此功能根据 Git 存储库发送的任何信息过滤事件。

    重要

    在 CEL 表达式中使用 CEL 表达式中有效负载的标头和正文只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

    有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

  • 在这个版本中,当一个推送事件触发 Pipelines as Code 管道运行时,您可以在相应的提交注释中使用 /test branch:<branchname> , /retest,/retest branch:<branchname &gt; , /cancel , 和 /cancel branch:<branchname > 命令来重新运行或取消管道运行。
  • 在这个版本中,当使用 Pipelines 作为代码时,您可以在远程管道中使用远程任务。因此,您可以在多个仓库间重复使用完整的远程管道。您可以通过添加具有相同名称的任务来覆盖远程管道中的任务。

    重要

    在远程管道中使用远程任务并覆盖任务只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

    有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

  • 在这个版本中,当使用 Pipelines 作为代码时,您可以查看 Git 仓库供应商中运行的 CI 管道的信息。此信息包括命名空间和关联的管道运行。

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

  • 在此次更新之前,在 Pipelines as Code 中,当使用策略组时,不是策略组的用户没有被明确允许,但允许运行 CI (通过机构所有权或其他)有时可通过创建事件(如 pull 请求或输入 ok_to_test 等命令)来执行管道运行。在这个版本中,如果配置了策略组,则只有添加到所需策略组的用户才能执行管道运行,以及作为所有者机构一部分的用户,但没有在策略组中配置的用户无法执行管道运行。

1.3.3. 已知问题

  • 要在任务运行被取消时启用保留 pod,在 TektonConfig CR 中将 pipeline.options.configMaps.feature-flags.data.keep-pod-on-cancel spec 设置为 true,您还需要在 TektonConfig CR 中将 pipeline.enable-api-fields spec 设置为 alpha
  • 如果启用了在任务运行取消时保留 pod,当因为默认超时而取消任务运行时,或者因为您在管道规格中设置了 timeput,OpenShift Pipelines 会删除 pod。

1.3.4. 修复的问题

  • 在此次更新之前,管道运行用于 Git 身份验证的 secret 可以在清理过程中从集群中删除。在这个版本中,只有在所有使用它的管道运行都被删除时,才会删除 secret。
  • 在此次更新之前,如果多个 secret 共享了相同的前缀,并使用 git 接口记录,有时使用较短的 secret 启动过程,并且日志中可能会显示较长的机密的一部分。在这个版本中,当日志中使用 secret 时,进程现在从最长 secret 开始,确保日志中没有显示任何 secret 的一部分。
  • 在此次更新之前,如果您为管道指定 results spec,管道运行可能会失败,并显示不匹配的类型错误。在这个版本中,如果您为管道指定 results spec,则管道提供的结果会被正确处理。
  • 在此次更新之前,当使用 KMS 将 Tekton 链配置为 Hashicorp Vault 时,如果连接到 Vault 时 pod 会启动崩溃。这个问题现已解决,这个错误现在记录在 Tekton Chains 控制器日志中。
  • 在此次更新之前,在使用 Tekton Chains 时,如果您配置了 storage.oci.repository 参数,会在 Tekton Chains 控制器日志中报告错误。在这个版本中,storage.oci.repository 参数会被正确处理。
  • 在此次更新之前,当使用 Hashicorp Vault KMS 配置 Tekton 链且连接到 Vault 存在问题时,Tekton Chains 控制器 pod 可能会崩溃。在这个版本中,错误会在 Tekton Chains 控制器日志中处理并记录。

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

1.3.5.1. 修复的问题

  • 在此次更新之前,任务运行有时会失败,并显示 无法停止 sidecar 错误消息。在这个版本中,导致此故障的控制器之间的竞争条件已被修复。
  • 在此次更新之前,要在任务运行时启用保留 pod,并在 TektonConfig CR 中将 pipeline.options.configMaps.feature-flags.data.keep-pod-on-cancel spec 设置为 true,您需要在 TektonConfig CR 中将 pipeline.enable-api-fields spec 设置为 alpha。在这个版本中,在 TektonConfig CR 中将 pipeline.options.configMaps.feature-flags.data.keep-pod-on-cancel spec 设置为 true 时,会在任务运行时保留 pod,且不需要额外的设置。
  • 在此次更新之前,如果您为任务定义了一个 sidecar,OpenShift Pipelines 在创建 TaskTaskRun 自定义资源(CR)时不会在定义中验证容器镜像。在运行时,带有无效容器镜像的 sidecar 会导致任务运行失败。在这个版本中,OpenShift Pipelines 在创建 TaskTaskRun CR 时,在 sidecar 定义中验证容器镜像。
  • 在此次更新之前,OpenShift Pipelines 控制器有时会在任务评估参数时崩溃。在这个版本中,控制器不再崩溃。
  • 在此次更新之前,如果管道运行中的最终任务失败或被跳过,OpenShift Pipelines 有时会报告管道运行的验证错误。在这个版本中,OpenShift Pipelines 可以正确地报告管道运行的状态。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat