1.4. Red Hat OpenShift Pipelines 正式发布 1.14 发行注记


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

1.4.1. 新功能

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

1.4.1.1. Pipelines

  • 在这个版本中,您可以使用任务或管道的参数或上一个任务的结果来指定要绑定到工作区的资源名称,如 name: $(params.name)-configmap
  • 在这个版本中,OpenShift Pipelines 支持在管道中构建进程中使用您现有 Red Hat Enterprise Linux 权利。内置的 buildah 集群任务现在可以使用这些权利。
  • 在这个版本中,如果管道运行或任务运行使用 pipeline 服务帐户,您可以在管道或任务中使用 CSI 卷类型。
  • 在这个版本中,您可以使用 StepAction 自定义资源(CR)定义一个可重复使用的脚本操作,您可以从任意数量的任务调用。要使用这个功能,您必须将 TektonConfig CR 中的 pipeline.options.configMaps.feature-flags.data.enable-step-actions spec 设置为 true
  • 在这个版本中,对象参数和数组结果会被默认启用。您不需要设置任何标记来使用它们。
  • 在这个版本中,您可以使用 HTTP 解析器从 HTTP URL 获取管道或任务,如下例所示:

    任务用法示例

    apiVersion: tekton.dev/v1
    kind: TaskRun
    metadata:
      name: remote-task-reference
    spec:
      taskRef:
        resolver: http
        params:
        - name: url
          value: https://raw.githubusercontent.com/tektoncd-catalog/git-clone/main/task/git-clone/git-clone.yaml

    管道使用示例

    apiVersion: tekton.dev/v1beta1
    kind: PipelineRun
    metadata:
      name: http-demo
    spec:
      pipelineRef:
        resolver: http
        params:
        - name: url
          value: https://raw.githubusercontent.com/tektoncd/catalog/main/pipeline/build-push-gke-deploy/0.1/build-push-gke-deploy.yaml

  • 在这个版本中,您可以使用 enum 声明来限制您可以为管道或任务提供参数的值,如下例所示。要使用这个功能,您必须将 TektonConfig CR 中的 pipeline.options.configMaps.feature-flags.data.enable-param-enum spec 设置为 true

    用法示例

    apiVersion: tekton.dev/v1
    kind: Pipeline
    metadata:
      name: pipeline-param-enum
    spec:
      params:
      - name: message
        enum: ["v1", "v2"]
        default: "v1"
    # ...

  • 在这个版本中,当将 Git 解析器与经过身份验证的源控制管理(SCM) API 搭配使用时,您可以覆盖您配置的默认令牌、SCM 类型和服务器 URL。请参见以下示例:

    用法示例

    apiVersion: tekton.dev/v1beta1
    kind: TaskRun
    metadata:
      name: git-api-demo-tr
    spec:
      taskRef:
        resolver: git
        params:
        - name: org
          value: tektoncd
        - name: repo
          value: catalog
        - name: revision
          value: main
        - name: pathInRepo
          value: task/git-clone/0.6/git-clone.yaml
        # create the my-secret-token secret in the namespace where the
        # pipelinerun is created. The secret must  contain a GitHub personal access
        # token in the token key of the secret.
        - name: token
          value: my-secret-token
        - name: tokenKey
          value: token
        - name: scmType
          value: github
        - name: serverURL
          value: https://ghe.mycompany.com

  • 在这个版本中,您可以在 OpenShift Pipelines 在执行任务时创建的 pod 中定义容器和 init-containers 的默认资源要求。使用 TektonConfig CR 中的 pipeline.options.configMaps.config-defaults.default-container-resource-requirements spec 来设置这些要求。您可以为所有容器设置默认值,按名称或前缀(如 sidecar fluentd )为特定容器设置默认值。

1.4.1.2. Operator

  • 在这个版本中,OpenShift Pipelines 支持 Operator 代理 webhook 的 pod 横向自动扩展。如果运行 Operator 代理 webhook 的 pod 达到 85% CPU 使用率,则自动扩展会创建 pod 的另一个副本。如果要在启动时为 Operator 代理 Webhook 使用多个副本,您必须在 TektonConfig CR 的 options.horizontalPodAutoscalers spec 中配置此数字。
  • 在这个版本中,改进了 OpenShift Pipelines 的几个组件的内部领导选举机制。Operator 控制器、Operator Webhook、代理 Webhook、Pipelines as Code watcher、Pipelines as Code Webhook 和 Tekton Chains 控制器现在使用单独的领导选举 ConfigMap。领导选举机制会影响组件处理请求的副本。
  • 在此次更新之前,当扩展 OpenShift Pipelines 控制器的副本数时,需要手动干预才能启用新副本的使用;即,您需要删除领导选举中的租期。在这个版本中,当您扩展 OpenShift Pipelines 控制器的副本数时,领导选举会自动包括新副本,因此新副本可以处理信息。
  • 在这个版本中,您可以选择在 TektonConfig CR 的 spec.pipeline spec 中设置以下标记:

    • coschedule
    • enable-cel-in-whenexpression
    • enable-param-enum
    • enable-step-actions
    • enforce-nonfalsifiability
    • keep-pod-on-cancel
    • max-result-size
    • metrics.count.enable-reason
    • results-from
    • set-security-context
    • default-resolver-type

1.4.1.3. 触发器

  • 在这个版本中,当为 Triggers 拦截器指定 CEL 表达式时,您可以使用 第一个和最后一个 功能来访问 JSON 阵列中的值。
  • 在这个版本中,当为 Triggers 拦截器指定 CEL 表达式时,您可以使用 translate 功能来促进正则表达式的使用,将字符替换为指定的字符串,如下例所示:

    translate 功能使用示例

    ".translate("[^a-z0-9]+", "ABC")

    输入字符串示例

    This is $an Invalid5String

    结果字符串示例

    ABChisABCisABCanABCnvalid5ABCtring

1.4.1.4. Web 控制台

  • 在这个版本中,您可以为 OpenShift Pipelines 启用 Web 控制台插件。如果启用插件,您可以在 Pipelines 概述 页面中和管道的页面中查看管道和任务执行统计。您必须安装 Tekton Results 以查看此信息。

    注意

    要将 Web 控制台插件用于 OpenShift Pipelines,必须至少使用以下 OpenShift Container Platform 版本:

    • 对于 OpenShift Container Platform 版本 4.12: 4.12.51
    • 对于 OpenShift Container Platform 版本 4.13: 4.13.34
    • 对于 OpenShift Container Platform 版本 4.14: 4.14.13
    • 对于 OpenShift Container Platform 版本 4.15:任何发行版本
  • 在这个版本中,如果您使用 OpenShift Container Platform 4.15 并启用了控制台插件,您可以查看过去管道运行和任务运行的归档信息。Tekton Results 提供此信息。
  • 在这个版本中,PipelineRun 详情页面从 web 控制台的 DeveloperAdministrator 视角访问,引入了一个 Vulnerabilities 行。这个新行提供标识的漏洞的可视化表示,按严重性(关键、高、中和低)进行分类。要启用此功能,请将您的任务和关联的管道更新为指定的格式。另外,启用后,您还可以通过管道运行列表视图页面中的 Vulnerabilities 列来访问识别的漏洞的信息。
  • 在这个版本中,PipelineRun 详情页面都会从 web 控制台的 DeveloperAdministrator 视角访问,提供了一个下载或查看 Software Bill of Materials (SBOMs)的选项,以增强透明度和控制。要启用此功能,请将您的任务和关联的管道更新为指定的格式。

1.4.1.5. CLI

  • 在这个版本中,如果安装了此组件,tkn version 命令显示 Tekton Hub 组件的版本。
  • 在这个版本中,您可以使用 tkn customrun list 命令列出自定义运行。
  • 在这个版本中,当使用 tkn task start 命令时,您可以在 -i or--image 参数中指定 OCI 镜像的 URL。命令从此镜像拉取镜像并运行指定的任务。
  • 在这个版本中,op c version 命令显示 Tekton Results CLI 组件的版本,这是 opc 工具的一部分。

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

  • 在这个版本中,当使用 Pipelines as Code 时,您可以在管道运行上指定 pipelinesascode.tekton.dev/pipeline 注解,以从 Tekton Hub 实例获取管道。此注解的值必须引用 Tekton Hub 上的单个管道。
  • 在这个版本中,您可以使用不同的配置设置和不同的 secret 部署额外的 Pipelines as Code 控制器。您可以使用多个 Pipelines as Code 控制器与多个 GitHub 实例交互。
  • 在这个版本中,Pipelines as Code 包含 GitLab 和 BitBucket 供应商的指标发布。您可以使用 Pipelines as Code 控制器和 watcher 服务上的端口 9090 访问 指标
  • 在这个版本中,当指定使用带有 pipelinesascode.tekton.dev/on-cel-expression 的 CEL 表达式执行管道运行的条件时,您可以检查 Git 仓库中是否存在文件:

    • files.all.exists (x, x.matches ('<path_or_regular_expression>')) 用于所有文件
    • files.added.exists (x, x.matches ('<path_or_regular_expression >'),用于此管道最后一次运行后添加的文件
    • files.modified.exists (x, x.matches ('<path_or_regular_expression >'),自此管道最后一次运行后修改的文件
    • files.deleted.exists (x, x.matches ('<path_or_regular_expression >'),自此管道最后一次运行以来删除的文件
    • files.renamed.exists (x, x.matches ('<path_or_regular_expression >'),自此管道的最后一个运行时,此表达式会检查重命名文件的新名称。

1.4.1.7. Tekton Chains

  • 在这个版本中,Tekton Chains 支持 API 版本的 v1 值。
  • 在这个版本中,您可以在 TektonConfig CR 中设置 artifacts.pipelinerun.enable-deep-inspection 参数。当此参数为 true 时,Tekton Chains 会记录管道运行的子任务的结果。当此参数为 false 时,Tekton Chains 会记录管道运行的结果,而不是其子任务运行。
  • 在这个版本中,您可以在 TektonConfig CR 中设置 builddefinition.buildtype 参数,来为 in-toto attestation 设置构建类型。当此参数为 https://tekton.dev/chains/v2/slsa 时,Tekton Chains 记录 in-toto attestations 严格符合 SLSA v1.0 规格。当此参数为 https://tekton.dev/chains/v2/slsa-tekton 时,Tekton Chains 记录 in-toto attestations 带有更多信息,如每个任务运行和管道运行中的标签和注解,并在 解析的Dependencies 下的管道运行中添加每个任务。
  • 在此次更新之前,当 Tekton 链配置为使用 gcs 存储时,Tekton Chains 不会记录管道运行信息。在这个版本中,Tekton Chains 记录管道使用这个存储运行信息。
  • 在这个版本中,性能指标可用于 Tekton 链。要访问指标,请公开 tekton-chains-metrics 服务,然后使用该服务上的 /metrics 路径,端口 9090。这些指标也可以在 OpenShift Container Platform 监控堆栈中找到。
  • 在这个版本中,当记录管道运行和使用 v1 版本值的任务运行和任务运行时,Tekton Chains 使用新的 v2alpha3 记录格式版本。
  • 在这个版本中,Tekton Chains 使用管道运行的 v1 版本,并在内部运行格式。

1.4.1.8. Tekton Results

  • 在这个版本中,如果安装了 Tekton Results,Tekton Results 会记录使用 Pipelines as Code 启动的管道运行的摘要并记录数据。
  • 在这个版本中,Tekton Results 为管道或任务提供最多 100MB 的日志信息。
  • 在这个版本中,任何经过身份验证的用户都可以查看 openshift-pipelines 命名空间中的 tekton-results-api-service 路由,以使用 REST API 与 Tekton 结果交互。
  • 在这个版本中,Tekton Results API 包括一个新的端点,用于获取概述和聚合记录列表。
  • 在这个版本中,Tekton Results API 的 GetLog 端点返回 raw 字节,其 text/plain content 类型。
  • 在这个版本中,您可以在 TektonResult CR 中的 options.configMaps.tekton-results-api-config.data.config.DB_SSLROOTCERT spec 中指定自定义 CA 证书。在这种情况下,Tekton Results 需要与数据库服务器的 SSL 连接,并将此证书用于连接。如果要使用此设置,在配置 Tekton Results 时,还必须对几个其他配置参数使用备用 specs,如下表所示。常规和备用参数 specs 都位于 TektonResult CR 中。

    表 1.3. Tekton Results 的替代配置参数
    常规参数规格备用参数规格

    logs_api

    options.configMaps.tekton-results-api-config.data.config.LOGS_API

    log_level

    options.configMaps.tekton-results-api-config.data.config.LOG_LEVEL

    db_port

    options.configMaps.tekton-results-api-config.data.config.DB_PORT

    db_host

    options.configMaps.tekton-results-api-config.data.config.DB_HOST

    logs_path

    options.configMaps.tekton-results-api-config.data.config.LOGS_PATH

    logs_type

    options.configMaps.tekton-results-api-config.data.config.LOGS_TYPE

    logs_buffer_size

    options.configMaps.tekton-results-api-config.data.config.LOGS_BUFFER_SIZE

    auth_disable

    options.configMaps.tekton-results-api-config.data.config.AUTH_DISABLE

    db_enable_auto_migration

    options.configMaps.tekton-results-api-config.data.config.DB_ENABLE_AUTO_MIGRATION

    server_port

    options.configMaps.tekton-results-api-config.data.config.SERVER_PORT

    prometheus_port

    options.configMaps.tekton-results-api-config.data.config.PROMETHEUS_PORT

    gcs_bucket_name

    options.configMaps.tekton-results-api-config.data.config.GCS_BUCKET_NAME

    对于此表中未列出的配置参数,请使用常规规格,如文档所述。

    重要

    只有在您需要使用 DB_SSLROOTCERT 设置时,才使用备用参数 spec。

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

  • 在这个版本中,在使用 Bundles 解析器时,您无法指定 serviceAccount 参数。相反,您可以指定 secret 参数,以提供包含 registry 验证信息的 secret 名称。您必须更新使用 Bundles 解析器的 serviceAccount 参数的任何任务或管道以使用 secret 参数。TektonConfig CR 中的 pipeline.bundles-resolver-config.default-service-account spec 不再被支持。

1.4.3. 已知问题

  • tkn pipeline logs -f 命令不会在此管道进行时显示管道中定义的任务日志,并带有 retries: X 参数。

1.4.4. 修复的问题

  • 在此次更新之前,在使用 GitHub Enterprise 时,传入的 Webhook 无法正常工作。在这个版本中,您可以在 GitHub Enterprise 中使用传入的 Webhook。
  • 在此次更新之前,如果任务运行或管道运行禁用超时,OpenShift Pipelines 会在任务运行或管道运行上运行一系列快速协调,从而降低控制器的性能。在这个版本中,控制器会协调任务运行和管道运行,并通常会禁用超时。
  • 在此次更新之前,如果您使用自定义命名空间安装 Tekton Hub,安装会删除 openshift-pipelines 命名空间,删除 OpenShift Pipelines 安装。在这个版本中,您可以使用自定义命名空间安装 Tekton Hub,并且 OpenShift Pipelines 安装不受影响
  • 在此次更新之前,当在合并请求(如 /test )中使用注释(如 /test )触发管道运行时,Pipelines as Code 不会报告在合并请求上运行的管道运行的状态。在这个版本中,Pipelines as Code 可以正确地报告在合并请求上运行的管道运行状态。
  • 在此次更新之前,当在 Tekton Results 中使用带有子组的 CEL 过滤时,如下例所示,子组无法正常工作。在这个版本中,子组可以正常工作。

    带有子组的 CEL 过滤器示例

    "data_type==TASK_RUN && (data.spec.pipelineSpec.tasks[0].name=='hello'||data.metadata.name=='hello')"

  • 在此次更新之前,当一个管道运行被取消时,Tekton Results 不会记录此管道运行的日志。在这个版本中,Tekton Results 记录已取消的管道运行的日志。

1.4.5. Red Hat OpenShift Pipelines 正式发布 1.14.1 发行注记

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

1.4.5.1. 修复的问题

  • 在此次更新之前,当使用配置了不同 GitHub 应用程序的多个 Pipelines 作为代码控制器时,Pipelines as Code watcher 组件会崩溃并带有 nilerror 信息。在这个版本中,Pipelines as Code 功能通常带有配置了不同 GitHub 应用程序的多个控制器。

1.4.6. Red Hat OpenShift Pipelines 正式发布 1.14.2 发行注记

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

1.4.6.1. 修复的问题

  • 在此次更新之前,当使用 Pipelines as Code 启动管道运行时,Tekton Results 不会存储有关此管道运行的信息。因此,web 控制台插件没有在执行统计显示中包含管道运行。在这个版本中,Tekton Results 存储有关 Pipelines as Code 管道运行的信息,这些管道运行包含在执行统计显示中。
  • 在此次更新之前,当您启动了使用 Pipelines as Code 的管道运行,且这些管道运行包含 max-keep-run 注解时,Pipelines as Code watcher 组件无法处理一些待处理的管道运行,它们会一直处于待处理状态。在这个版本中,Pipelines as Code 管道运行会被正确处理。

1.4.7. Red Hat OpenShift Pipelines 正式发布 1.14.3 发行注记

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

1.4.7.1. 修复的问题

  • 在此次更新之前,当您启动了使用 Pipelines as Code 且这些管道运行包含 max-keep-run 注解的管道时,Pipelines as Code watcher 无法协调管道运行,因为删除现有管道运行和处理新管道运行之间有一个竞争条件。由于这个问题,无法处理一些管道运行。在这个版本中,Pipelines as Code watcher 会处理管道运行。
  • 在此次更新之前,当使用 tkn pr logs -f 命令查看正在运行的管道的日志时,命令行工具会停止响应,即使管道运行成功完成。在这个版本中,tkn pr logs -f 命令可以正确地显示日志信息并退出。

1.4.8. Red Hat OpenShift Pipelines 正式发布 1.14.4 发行注记

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

1.4.8.1. 修复的问题

  • 在此次更新之前,可以记录引用 tekton-pipelines-webhook.ConversionWebhook 的大量错误消息。在这个版本中,ClusterTaskStepAction 自定义资源定义(CRD)的不必要的转换 Webhook 配置已被删除,这些错误消息将不再被记录。
  • 在此次更新之前,一些配置设置使用 TektonConfig 自定义资源(CR)中的 options 部分无法正常工作,因为如果在 TektonConfig CR 中的 options 部分和 TektonConfig CR 中配置了相同的设置,则会出现竞争条件。在这个版本中,设置可以正常工作。
  • 在此次更新之前,OpenShift Pipelines 控制台插件 pod 不会移到使用 nodeSelector,tolerations, 和 priorityClassName 设置指定的节点。在这个版本中,OpenShift Pipelines 插件 pod 移到正确的节点。
  • 在此次更新之前,Operator 控制器日志中会记录一些错误消息,而无需正确的上下文信息。在这个版本中,错误消息包含所需信息。
  • 在此次更新之前,如果任何命名空间中缺少或删除 pipelines-scc-rolebinding rolebinding,OpenShift Pipelines operator 控制器无法正确在新命名空间中创建默认资源。在这个版本中,控制器可以正常工作。
  • 在此次更新之前,如果您使用 TektonConfig CR 中的 options 部分配置 Horizontal Pod Autoscaler (HPA),则任何现有 HPA 会被正确更新,但在需要时不会创建新的 HPA。在这个版本中,使用 options 部分的 Horizontal Pod Autoscaler 配置可以正常工作。
  • 在此次更新之前,如果用户或 OpenShift Pipelines 控制器使用 OpenShift Pipelines API 修改正在由 Pipelines as Code 启动的管道运行,Pipelines as Code 可能会停止,日志包含 "panic" 信息。在这个版本中,Pipelines as Code 启动的管道可以同时修改。
  • 在此次更新之前,在 Pipelines as Code 中,并发限制设置 0 不会被解释为禁用并发限制。在这个版本中,并发限制设置 0 可禁用并发限制。

1.4.9. Red Hat OpenShift Pipelines 正式发布 1.14.5 发行注记

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

1.4.9.1. 修复的问题

  • 在此次更新之前,当您使用 Web 控制台并在概览页面中点管道时,管道详情页面不包含管道中任务的信息。在这个版本中,当您在概览页面中点管道时,管道详情页面包含所需的信息。
  • 在此次更新之前,当将 Tekton 链配置为通过在 TektonConfig CR 中设置空 artifacts.oci.storage 值来禁用 OCI 工件时,配置无法正常工作,Tekton Chains 会尝试存储工件并在 chains.tekton.dev/signed 注解中记录失败。在这个版本中,当您在 TektonConfig CR 中设置空 artifacts.oci.storage 值时,Tekton Chains 不会尝试存储 OCI 工件。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.