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)

  • 在这个版本中,在配置集群解析器时,您可以将 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 控制器日志中处理并记录。

1.3.5. Red Hat OpenShift Pipelines 正式发布 1.13.1 发行注记

在这个版本中,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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

© 2024 Red Hat, Inc.