1.11. Red Hat OpenShift Pipelines 正式发行 1.7 发行注记


在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA)1.7 包括在 OpenShift Container Platform 4.9, 4.10, 和 4.11 中。

1.11.1. 新功能

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

1.11.1.1. Pipelines

  • 在这个版本中,pipelines-<version> 是安装 Red Hat OpenShift Pipelines Operator 的默认频道。例如,安装 OpenShift Pipelines Operator 版本 1.7 的默认频道是 pipelines-1.7。集群管理员还可使用 latest 频道来安装 Operator 的最新稳定版本。

    注意

    previewstable 频道将在以后的版本中被弃用并删除。

  • 当您在用户命名空间中运行命令时,您的容器以 root 身份运行(用户 ID 0),但对主机具有用户特权。在这个版本中,要在用户命名空间中运行 pod,您必须传递 CRI-O 期望的注解。

    • 要为所有用户添加这些注解,请运行 oc edit clustertask buildah 命令并编辑 buildah 集群任务。
    • 要将注解添加到特定命名空间,请将集群任务导出为该命名空间的任务。
  • 在此次更新之前,如果没有满足某些条件,则 when 表达式会跳过一个 Task 对象及其依赖的任务。在这个版本中,您可以限制 when 表达式只保护 Task 对象,而不是它的依赖项任务。要启用此更新,请在 TektonConfig CRD 中将 scope-when-expressions-to-task 标志设置为 true

    注意

    scope-when-expressions-to-task 标记已弃用,并将在以后的发行版本中删除。作为 OpenShift Pipelines 的最佳实践,使用 when 表达式会被限制为只保护 任务

  • 在这个版本中,您可以在任务中的工作区的 subPath 字段中使用变量替换。
  • 在这个版本中,您可以使用带单引号或双引号的 bracket 表示法引用参数和结果。在此次更新之前,只能使用点表示法。例如,现在以下内容等同于:

    • $(param.myparam), $(param['myparam']), and $(param["myparam"]).

      您可以使用单引号或双引号括起包含有问题的字符的参数名称,如 "."。例如,$(param['my.param'])$(param["my.param"])

  • 在这个版本中,您可以在任务定义中包含步骤的 onError 参数,而无需启用 enable-api-fields 标志。

1.11.1.2. 触发器

  • 在这个版本中,feature-flag-triggers 配置映射具有一个新的字段 labels-exclusion-pattern。您可以将此字段的值设置为正则表达式(regex)模式。控制器过滤出与事件监听器从事件监听器传播到为事件监听器创建的资源匹配的正则表达式模式的标签。
  • 在这个版本中,TriggerGroups 字段添加到 EventListener 规格中。使用此字段,您可以在选择和运行一组触发器前指定要运行的拦截器。要启用此功能,在 TektonConfig 自定义资源定义的 pipeline 部分,您必须将 enable-api-fields 字段设置为 alpha
  • 在这个版本中,Trigger 资源支持 TriggerTemplate 模板定义的自定义运行。
  • 在这个版本中,Triggers 支持从 EventListener pod 发送 Kubernetes 事件。
  • 在这个版本中,以下对象提供了计数指标: ClusterInteceptorEventListenerTriggerTemplateClusterTriggerBindingTriggerBinding
  • 在这个版本中,ServicePort 规格添加到 Kubernetes 资源。您可以使用此规格来修改公开事件监听器服务的端口。默认端口为 8080
  • 在这个版本中,您可以使用 EventListener 规格中的 targetURI 字段在触发器处理过程中发送云事件。要启用此功能,在 TektonConfig 自定义资源定义的 pipeline 部分,您必须将 enable-api-fields 字段设置为 alpha
  • 在这个版本中,tekton-triggers-eventlistener-roles 对象除了已存在的 create 动词外,现在还添加了一个 patch 动词。
  • 在这个版本中,securityContext.runAsUser 参数会从事件监听器部署中删除。

1.11.1.3. CLI

  • 在这个版本中,tkn [pipeline | pipelinerun] export 命令会导出一个管道或管道作为 YAML 文件运行。例如:

    • openshift-pipelines 命名空间中导出名为 test_pipeline 的管道:

      $ tkn pipeline export test_pipeline -n openshift-pipelines
    • openshift-pipelines 命名空间中导出名为 test_pipeline_run 的管道运行:

      $ tkn pipelinerun export test_pipeline_run -n openshift-pipelines
  • 在这个版本中,--grace 选项添加到 tkn pipelinerun cancel 中。使用 --grace 选项终止管道运行,而不是强制终止。要启用此功能,在 TektonConfig 自定义资源定义的 pipeline 部分,您必须将 enable-api-fields 字段设置为 alpha
  • 在这个版本中,在 tkn version 命令的输出中添加了 Operator 和链版本。

    重要

    Tekton 链是技术预览功能。

  • 在这个版本中,当取消管道运行时,tkn pipelinerun describe 命令显示所有取消的任务运行。在此修复之前,仅显示一个任务运行。
  • 在这个版本中,您可以在运行 tkn [t | p | p | ct] start 命令时跳过使用 --skip-optional-workspace 标记时,为可选工作区提供请求规格。您也可以在以交互模式运行时跳过它。
  • 在这个版本中,您可以使用 tkn chain 命令管理 Tekton 链。您还可以使用 --chains-namespace 选项指定要安装 Tekton 链的命名空间。

    重要

    Tekton 链是技术预览功能。

1.11.1.4. Operator

  • 在这个版本中,您可以使用 Red Hat OpenShift Pipelines Operator 来安装和部署 Tekton Hub 和 Tekton 链。

    重要

    集群中的 Tekton Hub 链和部署是技术预览功能。

  • 在这个版本中,您可以查找并使用 Pipelines 作为代码(PAC)作为附加选项。

    重要

    作为代码,管道是技术预览功能。

  • 在这个版本中,您可以通过将 communityClusterTasks 参数设置为 false 来禁用社区集群任务的安装。例如:

    ...
    spec:
      profile: all
      targetNamespace: openshift-pipelines
      addon:
        params:
        - name: clusterTasks
          value: "true"
        - name: pipelineTemplates
          value: "true"
        - name: communityClusterTasks
          value: "false"
    ...
  • 在这个版本中,您可以通过 Developer 视角禁用 Tekton Hub 集成,方法是将 TektonConfig 自定义资源中的 enable-devconsole-integration 标志设置为 false。例如:

    ...
    hub:
      params:
        - name: enable-devconsole-integration
          value: "true"
    ...
  • 在这个版本中,operator-config.yaml 配置映射启用 tkn version 命令的输出来显示 Operator 版本。
  • 在这个版本中,argocd-task-sync-and-wait 任务的版本被修改为 v0.2
  • 对于这个版本的 TektonConfig CRD ,oc get tektonconfig 命令会显示 OPerator 版本。
  • 在这个版本中,服务监控器添加到 Triggers 指标中。

1.11.1.5. Hub

重要

在集群中部署 Tekton Hub 是一个技术预览功能。

Tekton Hub 可帮助您发现、搜索和共享 CI/CD 工作流可重复使用的任务和管道。Tekton Hub 的一个公共实例位于 hub.tekton.dev 中。

集群管理员可以使用 Red Hat OpenShift Pipelines 1.7 推出,集群管理员也可以在企业集群中安装并部署 Tekton Hub 的自定义实例。您可以使用特定于您的机构的可重复使用的任务和管道来策展目录。

1.11.1.6. 链

重要

Tekton 链是技术预览功能。

Tekton Chains 是一个 Kubernetes 自定义资源定义(CRD)控制器。您可以使用它来管理使用 Red Hat OpenShift Pipelines 创建的任务和管道的供应链安全。

默认情况下,Tekton Chains 会监控 OpenShift Container Platform 集群中运行的任务。链会对完成的任务运行进行快照,将其转换为一个或多个标准有效负载格式,并签署并存储所有工件。

Tekton Chains 支持以下功能:

  • 您可以使用加密密钥类型和服务(如 cosign )为任务运行、任务运行结果和 OCI registry 镜像签名。
  • 您可以使用"测试"格式,如 in-toto
  • 您可以使用 OCI 存储库作为存储后端安全存储签名和签名工件。

1.11.1.7. 管道作为代码(PAC)

重要

作为代码,管道是技术预览功能。

使用 Pipelines 作为 Code,具有所需权限的集群管理员和用户可以将管道模板定义为源代码 Git 存储库的一部分。当由源代码推送或配置的 Git 存储库的拉取请求触发时,该功能将运行管道和报告状态。

作为代码的管道支持以下功能:

  • 拉取请求状态。在迭代拉取请求时,拉取请求的状态和控制会在托管 Git 存储库的平台上进行。
  • GitHub 检查 API 来设置管道运行的状态,包括重新检查。
  • GitHub 拉取请求和提交事件。
  • 在注释中拉取请求操作,如 /retest
  • Git 事件过滤,以及每个事件的独立管道。
  • OpenShift Pipelines 中的自动任务解析用于本地任务、Tekton Hub 和远程 URL。
  • 使用 GitHub blob 和对象 API 来检索配置。
  • 通过 GitHub 机构或使用 Prow 风格的 OWNER 文件访问控制列表(ACL)
  • tkn CLI 工具的 tkn pac 插件,您可以使用它们管理 Pipelines 作为代码软件仓库和 bootstrap。
  • 支持 GitHub 应用程序、GitHub Webhook、Bitbucket 服务器和 Bitbucket 云。

1.11.2. 已弃用的功能

  • 中断更改:此更新从 TektonConfig 自定义资源(CR)中删除 disable-working-directory-overwritedisable-home-env-overwrite 字段。因此,TektonConfig CR 不再自动设置 $HOME 环境变量和 workingDir 参数。您仍然可以使用 Task 自定义资源定义(CRD)中的 envworkingDir 字段来设置 $HOME 环境变量和 workingDir 参数。
  • Conditions 自定义资源定义(CRD)类型已弃用,计划在以后的发行版本中删除。反之,使用推荐的 when 表达式。
  • 有问题的更改: Triggers 资源验证模板,并在没有指定 EventListenerTriggerBinding 值时生成错误。

1.11.3. 已知问题

  • 当您运行 Maven 和 Jib-Maven 集群任务时,默认容器镜像仅支持 Intel(x86)架构。因此,在 ARM、IBM Power Systems(ppc64le)、IBM Z 和 LinuxONE (s390x) 集群上的任务将失败。作为临时解决方案,您可以通过将 MAVEN_IMAGE 参数值设置为 maven:3.6.3-adoptopenjdk-11 来指定自定义镜像。

    提示

    在您使用 tkn hub 在 ARM、IBM Power Systems(ppc64le)、IBM Z 和 LinuxONE(s390x) 上基于 Tekton Catalog 安装任务前,请验证是否可以在这些平台上执行任务。要检查 ppc64les390x 是否列在任务信息的"Platforms"部分,您可以运行以下命令: tkn hub info task <name>

  • 在 IBM Power Systems、IBM Z 和 LinuxONE 中,不支持 s2i-dotnet 集群任务。
  • 您无法使用 nodejs:14-ubi8-minimal 镜像流,因为这样做会生成以下错误:

    STEP 7: RUN /usr/libexec/s2i/assemble
    /bin/sh: /usr/libexec/s2i/assemble: No such file or directory
    subprocess exited with status 127
    subprocess exited with status 127
    error building at STEP "RUN /usr/libexec/s2i/assemble": exit status 127
    time="2021-11-04T13:05:26Z" level=error msg="exit status 127"
  • 隐式参数映射会错误地将参数从顶级 PipelinePipelineRun 定义传递给 taskRef 任务。映射应该只在顶层资源中使用任务进行,并带有非线 taskSpec 规格。这个问题只通过将 TektonConfig 自定义资源定义的 pipeline 部分中的 enable-api-fields 字段设置为 alpha 来影响启用了这个功能的集群。

1.11.4. 修复的问题

  • 在这个版本中,如果 PipelinePipelineRun 对象定义中存在 labelsannotations 的元数据,PipelineRun 类型中的值会具有优先权。您可以观察 TaskTaskRun 对象的类似行为。
  • 在这个版本中,如果 timeout.tasks 字段或 timeout.finally 字段设置为 0,则 timeout.pipeline 也被设置为 0
  • 在这个版本中,-x set 标记已从不使用 shebang 的脚本中删除。在这个版本中,减少了脚本执行的潜在数据泄漏。
  • 在这个版本中,Git 凭证中的用户名中存在的任何反斜杠字符都会被转义,并带有 .gitconfig 文件中的额外反斜杠。
  • 在这个版本中,EventListener 对象的 finalizer 属性不需要清理日志记录和配置映射。
  • 在这个版本中,与事件监听器服务器关联的默认 HTTP 客户端会被删除,并添加自定义 HTTP 客户端。因此,超时有所改进。
  • 在这个版本中,Triggers 集群角色现在可以处理所有者引用。
  • 在这个版本中,当多个拦截器返回扩展时,事件监听器中的竞争条件不会发生。
  • 在这个版本中,tkn pr delete 命令不会删除使用 ignore-running 标记运行的管道。
  • 在这个版本中,当您修改任何附加组件参数时,Operator pod 不会继续重启。
  • 在这个版本中,如果订阅和配置自定义资源中没有配置,tkn serve CLI pod 会被调度到 infra 节点上。
  • 在这个版本中,在升级过程中不会删除指定版本的集群任务。

1.11.5. Red Hat OpenShift Pipelines 正式发行 1.7.1 发行注记

在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA)1.7.1 包括在 OpenShift Container Platform 4.9, 4.10, 和 4.11 中。

1.11.5.1. 修复的问题

  • 在此次更新之前,升级 Red Hat OpenShift Pipelines Operator 会删除与 Tekton Hub 关联的数据库中的数据并安装新的数据库。在这个版本中,Operator 升级会保留数据。
  • 在此次更新之前,只有集群管理员才能访问 OpenShift Container Platform 控制台中的管道指标。在这个版本中,与其他集群角色的用户也可以访问管道指标。
  • 在此次更新之前,管道对包含发出大型终止消息的任务的管道运行失败。管道运行失败,因为 pod 中所有容器的终止信息总数不能超过 12 KB。在这个版本中,使用同一镜像的 place-toolsstep-init 初始化容器会合并,以减少每个任务的 pod 中运行的容器数量。该解决方案可减少运行失败管道的几率,这可尽量减少在任务 pod 中运行的容器数量。但是,它不会删除终止消息的最大允许大小限制。
  • 在此次更新之前,直接从 Tekton Hub web 控制台访问资源 URL 会导致 Nginx 404 错误。在这个版本中,Tekton Hub web 控制台镜像已被修复,以便直接从 Tekton Hub web 控制台访问资源 URL。
  • 在此次更新之前,对于每个命名空间,资源修剪器作业都会创建一个单独的容器来修剪资源。在这个版本中,资源修剪器作业作为一个容器中的一个循环运行所有命名空间的命令。

1.11.6. Red Hat OpenShift Pipelines 正式发布 1.7.2 发行注记

在这个版本中,Red Hat OpenShift Pipelines General Availability (GA)1.7.2 包括在 OpenShift Container Platform 4.9、4.10 及以后的版本中。

1.11.6.1. 已知问题

  • 在升级 Red Hat OpenShift Pipelines Operator 后,openshift-pipelines 命名空间中的 Tekton Chains 的 chains-config 配置映射会自动重置为默认。目前,这个问题还没有临时解决方案。

1.11.6.2. 修复的问题

  • 在此次更新之前,当将 init 用作第一个参数并后跟两个或更多个参数时,OpenShift Pipelines 1.7.1 上的任务会失败。在这个版本中,这些标志会被正确解析,任务可以运行成功。
  • 在此次更新之前,因为存在无效的角色绑定,在 OpenShift Container Platform 4.9 和 4.10 上安装 Red Hat OpenShift Pipelines Operator 会失败,并显示以下错误消息:

    error updating rolebinding openshift-operators-prometheus-k8s-read-binding: RoleBinding.rbac.authorization.k8s.io "openshift-operators-prometheus-k8s-read-binding" is invalid: roleRef: Invalid value: rbac.RoleRef{APIGroup:"rbac.authorization.k8s.io", Kind:"Role", Name:"openshift-operator-read"}: cannot change roleRef

    在这个版本中,Red Hat OpenShift Pipelines Operator 安装有不同的角色绑定命名空间,以避免与其他 Operator 安装冲突。

  • 在此次更新之前,升级 Operator 会触发 Tekton Chains 的 signed-secrets secret 键重置为默认值。在这个版本中,在升级 Operator 后自定义 secret 密钥会保留。

    注意

    升级到 Red Hat OpenShift Pipelines 1.7.2 会重置密钥。但是,当您升级到将来的版本时,会需要保留该密钥。

  • 在此次更新之前,所有 S2I 构建任务都会失败,并显示类似以下消息的错误:

    Error: error writing "0 0 4294967295\n" to /proc/22/uid_map: write /proc/22/uid_map: operation not permitted
    time="2022-03-04T09:47:57Z" level=error msg="error writing \"0 0 4294967295\\n\" to /proc/22/uid_map: write /proc/22/uid_map: operation not permitted"
    time="2022-03-04T09:47:57Z" level=error msg="(unable to determine exit status)"

    在这个版本中,pipeline-scc 安全性上下文约束 (SCC) 与 BuildahS2I 集群任务所需的 SETFCAP 功能兼容。因此,BuildahS2I 构建任务可以成功运行。

    要成功运行 Buildah 集群任务和 S2I 构建任务,适用于使用各种语言和框架编写的应用程序,添加以下适当的 steps 对象(如 buildpush)的代码片段。

    securityContext:
      capabilities:
        add: ["SETFCAP"]

1.11.7. Red Hat OpenShift Pipelines 正式发布 1.7.3 发行注记

在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA)1.7.3 包括在 OpenShift Container Platform 4.9, 4.10, 和 4.11 中。

1.11.7.1. 修复的问题

  • 在此次更新之前,如果任何命名空间处于 Terminating 状态,Operator 会在创建 RBAC 资源时失败。在这个版本中,Operator 忽略了命名空间处于 Terminating 状态,并创建 RBAC 资源。
  • 在以前的版本中,升级 Red Hat OpenShift Pipelines Operator 会导致重新创建 pipeline 服务帐户,这意味着链接到服务帐户的 secret 会丢失。在这个版本中解决了这个问题。在升级过程中,Operator 不再重新创建 pipeline 服务帐户。因此,已附加到 pipeline 服务帐户的 secret 在升级后会保留,资源(任务和管道)可以继续正常工作。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.