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


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

1.5.1. 新功能

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

注意

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

1.5.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 设置为 true,将 pipeline.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.5.1.2. Operator

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

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

1.5.1.3. 触发器

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

1.5.1.4. CLI

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

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

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

    重要

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

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

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

    重要

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

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

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

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

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

1.5.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,当因为默认超时而取消任务运行时,或者您在管道规格中设置了计时,OpenShift Pipelines 会删除 pod。

1.5.4. 修复的问题

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

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

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

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