1.2. Red Hat OpenShift Pipelines 1.20 发行注记


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

1.2.1. 新功能

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

支持在启用了 FIPS 的环境中运行
添加到控制器副本的 Pod 反关联性规则
  • OpenShift Pipelines 为控制器副本添加并应用 preferredDuringSchedulingIgnoredDuringExecution pod 反关联性规则,但 Tekton Chains 控制器除外。在高可用性(HA)设置中,此规则将副本分发到不同的节点上,而不是在同一节点上调度它们,从而提高弹性、负载均衡和可用性。不需要额外的配置。
新的 buildah-ns 任务,用于改进容器构建安全性
  • OpenShift Pipelines 添加 buildah-ns 任务。它通过用户命名空间隔离来提高容器构建安全性,并与现有 buildah 任务兼容。如需更多信息,请参阅"附加资源"。
readOnlyRootFilesystem enabled for default deployments
  • OpenShift Pipelines、Tekton Results、Tekton Chains 和 Manual Approval Gate 部署中的容器默认启用了 readOnlyRootFilesystem 设置,从而提高安全性和合规性。
在 web 控制台中显示友好的名称
  • OpenShift Container Platform Web 控制台中的任务现在使用 displayName 属性而不是技术任务名称,提高可读性,并使任务更轻松地在 Red Hat OpenShift Pipelines 用户界面中搜索。
单节点 OpenShift 上的 OpenShift Pipelines
  • 现在,在单节点 OpenShift (SNO)上运行 OpenShift Pipelines 的技术预览支持。这个支持不适用于生产环境部署。SNO 上的 OpenShift Pipelines 没有超出单节点集群固有限制的限制:有限的可扩展性、无冗余和受限并发性。对于 libvirt API 上的集群,最低硬件要求:

    • 12 个 vCPU
    • 64 GB RAM
    • 240 GB 磁盘空间
重要

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

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

Operator

独立控制 RBAC 和 CA 捆绑包配置映射创建
  • 在这个版本中,您可以独立控制 OpenShift Pipelines Operator 如何创建基于角色的访问控制(RBAC)资源和可信证书颁发机构(CA)捆绑包配置映射。此功能增强为您提供了更多适应环境的灵活性,有助于避免资源重复。默认情况下,这两个选项都已启用以维护现有行为。如需更多信息,请参阅"附加资源"。

修剪器

基于事件的修剪器可在 TektonConfig CR 中配置
  • 您可以在 TektonConfig 自定义资源(CR)中直接启用并配置基于事件的 tektonpruner。在这个版本中,增加了与新的修剪器相关的指标进行观察改进。
重要

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

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

Tekton Triggers

通过 Operator 安装 Tekton Triggers 的可选安装
  • 在通过 Operator 部署 OpenShift Pipelines 时,您可以选择安装 Tekton Triggers。在这个版本中,对组件安装提供了更精细的控制,并支持独立管理触发器的环境。默认值为 false。以下是禁用安装的 TektonCofig CR 示例:

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      trigger:
        disabled: true
    #...
    Copy to Clipboard Toggle word wrap

Tekton Results

在 tekton-results-watcher 中禁用 live 集合的新标志
  • Tekton Results 支持 tekton-results-watcher 控制器的新标记,通过在 TektonConfig CRD 中设置-- disable_storing_incomplete_runs=true 标志来禁用正在运行的实时集合:

    #...
    options:
        deployments:
          tekton-results-watcher:
            spec:
              template:
                spec:
                  containers:
                  - args:
                    - "--disable_storing_incomplete_runs=true"
                    name: watcher
                    resources: {}
    #...
    Copy to Clipboard Toggle word wrap

    如果设置为 true,则运行不会存储直到完成为止,从而提高了系统性能。如果设置为 false,则运行会在创建时存储,并在发生更改时持续更新。这是当前的默认行为。true 设置计划在以后的版本中成为默认设置。

优化以跳过对已存储的 PipelineRuns 的处理
  • Tekton Results 跳过已存储的 PipelineRuns 的处理,提高了性能并减少 API 服务器调用。这种优化提高了整体效率和响应速度,旨在降低服务器负载和节省资源。

Pipelines 作为代码(Pipelines as Code)

支持传入 Webhook 中的 JSON 正文
  • Pipelines as Code 支持在 JSON POST 正文中传递传入的 Webhook 参数,同时保持与 URL 查询参数的兼容性:

    $ curl -H "Content-Type: application/json" -X POST \
    "https://control.pac.url/incoming" -d '{"repository":"repo","branch":"main", \
    "pipelinerun":"target-pipelinerun","secret":"very-secure-shared-secret"}'
    Copy to Clipboard Toggle word wrap

    将请求正文用于敏感信息可减少日志中的暴露并提高安全性。如需更多信息,请参阅 推荐的(POST JSON body)方法

GitHub API 调用的详细日志记录
  • Pipelines as Code 支持 GitHub API 调用的详细日志记录,从而深入了解 API 交互、持续时间和速率限制。通过将控制器日志级别设置为 'debug',您可以更有效地对复杂问题进行故障排除。此功能增强重构代码来检测 GitHub 调用,并影响提供程序内的所有 GitHub API 调用。如需更多信息,请参阅 调试 API 交互
新的 auto-configure-repo-repository-template 选项
  • Pipelines as Code 添加 auto-configure-repo-repository-template 设置,这是 auto-configure-new-github-repo 功能设置中的新选项,以整合在单个命名空间中创建存储库,简化具有多个存储库的管理。如需更多信息,请参阅"附加资源"。
支持远程 Pipeline 定义中的相对任务引用
  • 您可以使用相对路径来引用远程 Pipeline 定义中的任务。Pipelines as Code 解析器会根据远程 PipelineSpec 定义的位置自动构建任务的完整 URL。此功能增强提高了管道组织和可移植性,特别是在使用标记的发行版本或分支时。如需更多信息,请参阅从 PipelineRun 上的远程管道覆盖任务
重要

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

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

New dynamic pull_request_number variable for push events
  • 拉取触发推送事件的请求会自动填充新的 Pipelines 作为代码动态 pull_request_number 变量,允许明确引用与 push 事件关联的特定拉取请求,并改进了可追溯性。如需更多信息,请参阅"附加资源"。

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

  • Tekton Hub (hub.tekton.dev)的公共实例已弃用,并将在以后的发行版本中删除。如需更多信息,请参阅"附加资源"。
  • Git 解析器不再将 TEKTON_HUB_API 设置为公共 hub。在指向自托管引擎时,您必须设置环境变量。如需更多信息,请参阅 Resolvers
  • OpenShift Pipelines 不再发出已弃用的指标,如 pipelinerun_countrunning_taskruns_count。您必须使用新指标更新仪表板和警报,如 pipelinerun_totalrunning_pipelineruns

    Expand
    DeprecatedNew

    pipelinerun_count

    pipelinerun_total

    running_pipelineruns_count

    running_pipelineruns

    running_pipelineruns_waiting_on_pipeline_resolution_count

    running_pipelineruns_waiting_on_pipeline_resolution

    running_pipelineruns_waiting_on_task_resolution_count

    running_pipelineruns_waiting_on_task_resolution

    taskrun_count

    taskrun_total

    running_taskruns_count

    running_taskruns

    running_taskruns_throttled_by_quota_count

    running_taskruns_throttled_by_quota

    running_taskruns_throttled_by_node_count

    running_taskruns_throttled_by_node

Pipelines 作为代码(Pipelines as Code)

  • Pipelines as Code 会自动从使用已弃用的 Tekton Hub 移到 Artifact Hub 用于管道和任务解析。在升级使用短版本 pins 的一些任务引用(如 0.2 )后,无法正确解析。您必须将它们更新为完整的语义版本格式,如 0.2.0,以确保正确任务解析。
  • 在升级到 1.20 后,hub_catalog_name 变量值将保持设置为 tekton。因此,系统不会从 Artifact Hub 上的正确目录中获取 git-clone 任务。升级到 1.20 后,您必须运行以下命令来从 Pipelines as Code 配置映射中删除该变量:

    $ oc patch configmap pipelines-as-code -n openshift-pipelines --type=json -p='[{"op": "remove", "path": "/data/hub-catalog-name"}]'
    Copy to Clipboard Toggle word wrap

1.2.3. 已知问题

修剪器

  • 从 Red Hat OpenShift Pipelines 1.19 升级到 1.20 后,tekton-pruner-default-spec 配置映射值会被使用默认值覆盖。作为临时解决方案,请在升级前维护 tekton-pruner-default-spec 配置映射副本,并在升级过程中对 TektonConfig 字段应用相同的副本。这个问题只会影响升级路径,且不会在全新安装中发生。

CLI

  • 在 OpenShift 命名空间中使用 opc pr 日志 可能会失败,并显示 来自 openshift 命名空间错误的重复 Failed to list objects for admin 和 non-admin 用户。

Tekton Cache

  • 在 IBM P 和 IBM Z 环境中,cache-fetch 步骤可能会失败,且无法更改 ownership: operation not permitted 错误信息。出现这个问题的原因是文件系统对底层存储的权限限制。

Tekton Chains

  • Pod 反关联性规则不会应用到 tekton-chains-controller 副本。

Tekton Hub

  • 从 Tekton Hub 下载的 git-clone 任务显示版本 0.9,而不是 0.10。这是因为系统以字典顺序排序版本字符串,而不是使用语义版本。

1.2.4. 修复的问题

Pipelines

  • 在此次更新之前,当使用 Helm 部署 PipelineRunsTaskRuns 时,OpenShift Pipelines 控制器不会应用 managed-by: tekton-pipelines 标签。另外,由控制器创建的 pod 可能会被 TaskRunPipelineRun 设置的值覆盖 app.kubernetes.io/managed-by 标签。在这个版本中,控制器会持续应用正确的标签,pod 使用默认的 app.kubernetes.io/managed-by 值。
  • 在此次更新之前,OpenShift Container Platform 控制台声明了 PipelineRun 对象的 'Cancelling' 状态并带有失败的 finally 任务,即使 PipelineRun 的实际状态是 Canceled,从而导致混淆。在这个版本中,这个问题已被解决。
  • 在此次更新之前,PipelineRun Events 选项卡不会显示事件,因为 Pipeline Console 插件存在问题。因此,您无法实时监控事件。在这个版本中,这个问题已被解决。
  • 在此次更新之前,管道构建器只从 Artifact Hub 获取有限的任务,从而导致某些任务不可用。这会导致管道创建不完整。在这个版本中,接口获取搜索上的 Artifact Hub 中任务的完整列表,显示管道构建器中的所有可用任务。
  • 在此次更新之前,在 git 克隆过程中运行 Konflux-specific fbc-fips-check-oci-ta 任务会导致临时资源不可用,阻止 git 解析器并防止解析 Requests 解析。这会导致构建失败,并显示以下错误消息: cannot fork ()for remote-https: Resource temporarily unavailable。在这个版本中,这个问题已被解决。
  • 在此次更新之前,TaskRunCustomRun creation 可能会在临时变异-webhook 超时中立即失败,从而导致忙碌的集群出现 flakiness。在这个版本中,系统应用 exponential backoff,通过 wait-exponential-backoff 配置映射进行配置,并由 enable-wait-exponential-backoff 设置控制:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: feature-flags
      namespace: tekton-pipelines
    data:
      enable-wait-exponential-backoff: "true"
    #...
    Copy to Clipboard Toggle word wrap
  • 在此次更新之前,控制器使用固定的线程计数,限制并发性。在这个版本中,您可以通过设置 THREADS_PER_CONTROLLER 环境变量来覆盖 threads-per-controller,从而可以对控制器并发进行更精细的控制。
  • 在此次更新之前,Task Spec CR 中的 podTemplate 字段不支持参数替换、限制列表和多架构模式。在这个版本中,控制器会替换所有 TaskRunsTaskRunSpecspodTemplate 字段中的参数。
  • 在此次更新之前,管道 v1beta1 中的 onError 块不支持变量。在这个版本中,控制器会解析 onError 变量,改进了错误处理灵活性。
  • 在此次更新之前,git 解析器 shell-out 有时无法继承环境变量,从而破坏环境驱动的身份验证或配置。在这个版本中,解析器将 pod 环境正确传递给所有 git 子进程。
  • 在此次更新之前,git 解析器部署可能会使 zombie git 进程继续运行,消耗资源。在这个版本中,解析器使用基于 tini的镜像和入口点来主动清理子进程。
  • 在此次更新之前,升级 OpenShift Pipelines 可能会在因为规格偏移而在已完成的 PipelineRunsTaskRuns 时更新元数据(如终结器)时导致错误。在这个版本中,这个问题已被解决。
  • 在此次更新之前,OpenShift git 解析器不会将可信 CA 配置映射挂载到组件系统 CA 存储中,可能会导致证书验证问题。在这个版本中,配置映射会被正确挂载,确保 git 操作安全。
  • 在此次更新之前,如果存储库中缺少原始 remote,git-clone 任务会失败,并显示 No such remote ' origin ' 错误。在这个版本中,任务会自动将原始远程添加到存储库配置中,确保正确设置和成功克隆。
  • 在此次更新之前,当超过资源配额时,管道 控制器会立即失败,取消运行并中断用户工作流。在这个版本中,控制器会重试并自动重新运行资源(如果资源可用),从而减少不必要的取消并改进管道可靠性。
  • 在此次更新之前,当 buildah 任务 BUILD_ARGS 参数具有默认值 [""] 时,管道构建器 UI 无法保存管道。验证错误地拒绝数组中的空字符串,即使任务可能会成功运行。在这个版本中,这个问题已被解决,允许正确保存带有默认 BUILD_ARGS 参数的管道。

Pipelines 作为代码(Pipelines as Code)

  • 在此次更新之前,Pipelines as Code 的结构化日志缺少启动 Webhook 请求的详细源存储库信息。在这个版本中,Pipelines as Code 的日志包括完整的源存储库详情,以便 Operator 更容易识别用户报告的问题。
  • 在此次更新之前,Pipelines 中无效的通用表达式语言(CEL)表达式会静默地失败。在这个版本中,Pipelines as Code 会在拉取请求中发布错误注释,从而更轻松地进行故障排除。
  • 在此次更新之前,Pipelines as Code PipelineRun 会在 GitHub Webhook 集成中的每个拉取请求中发布状态注释,从而造成不必要的通知。在这个版本中,您可以通过设置以下内容来禁用 Repository CR 中的状态注释:

    kind: Repository
    spec:
      settings:
        github:
          comment_strategy: "disable_all"
    #...
    Copy to Clipboard Toggle word wrap
  • 在此次更新之前,PipelineRun 启动 注释不包括到 OpenShift Container Platform 控制台的链接,使访问更方便。在这个版本中,注释包括到 PipelineRun 的直接链接。
  • 在此次更新之前,Bitbucket push 事件中的空提交由 Pipelines as Code 处理,从而导致控制器崩溃。在这个版本中,控制器会忽略有效负载中的空提交,从而防止崩溃。
  • 在此次更新之前,Pipelines as Code 会错误地注解由外部控制器修改的 PipelineRun 对象并标记为 已启动。在这个版本中,PipelineRun 收到状态更改的正确注解,有助于确保准确的跟踪。
  • 在此次更新之前,如果未授权用户打开拉取请求(PR)且目标分支不包含 .tekton 目录,则会自动处于停止状态。Pipelines as Code 创建了一个待处理的检查,这个检查会无限期地保留,即使存储库管理员批准了 CI 运行,使用 /ok-to-test GitOps 注释。在这个版本中,在批准后会正确更新检查,允许自动扩展可以正常进行。

CLI

  • 在此次更新之前,op c CLI 从已删除的 pod 读取 pod 日志可能会导致 panic,从而导致应用程序崩溃。在这个版本中,删除的 pod 场景会被正确处理,防止读取日志时崩溃。
  • 在此次更新之前,op c CLI PipelineRunPending 状态显示不正确的颜色,从而更难以与其他状态区分。在这个版本中,Pending 状态颜色正确,以提高视觉清晰性。
  • 在此次更新之前,以下日志的 opc CLI 可能会触发死锁,从而导致应用程序挂起。在这个版本中,日志中的死锁场景已被修复,确保可靠的日志流。
  • 在此次更新之前,不同任务和步骤的 opc CLI 日志行不容易区分,并无法简化调试。在这个版本中,日志行默认包含一个显示日志源、任务和步骤名称的前缀,从而提高了可读性和调试体验。
  • 在此次更新之前,查询在 OPC 结果中运行的 PipelineRunTaskRun 的日志会导致不明确的错误消息。在这个版本中,消息会明确表示在运行仍在进行期间无法检索日志。

Tekton Triggers

  • 在此次更新之前,使用带有多个触发器和扩展的 TriggerGroup 会导致数据争用和控制器 panic。在这个版本中,控制器会处理多个触发器,且没有错误。

1.2.5. 弃用的功能

  • Tekton Results 保留代理中的 maxRetention 参数已弃用。使用 defaultRetention
  • chain 命令已弃用,并将在以后的发行版本中删除。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat