1.10. Red Hat OpenShift Pipelines 正式发布 1.8 发行注记


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

1.10.1. 新功能

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

1.10.1.1. Pipelines

  • 在这个版本中,您可以在在 ARM 硬件上运行 Red Hat OpenShift Pipelines GA 1.8 及更新的版本。这包括对 ClusterTask 资源和 tkn CLI 工具的支持。
重要

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

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

  • 在这个版本中,为 TaskRun 资源实现了 StepSidecar 覆盖。
  • 在这个版本中,在 PipelineRun 状态下添加了最小的 TaskRunRun 状态。

    要启用此功能,在 TektonConfig 自定义资源定义的 pipeline 部分,您必须将 enable-api-fields 字段设置为 alpha

  • 在这个版本中,管道运行功能的安全终止会从 alpha 功能提升到 stable 功能。因此,之前弃用的 PipelineRunCancelled 状态会保持弃用,计划在以后的发行版本中被删除。

    由于这个功能默认可用,所以您不再需要在 TektonConfig 自定义资源定义中将 pipeline.enable-api-fields 字段设置为 alpha

  • 在这个版本中,您可以使用工作区名称为管道任务指定工作区。这个更改可让您更轻松地为 PipelinePipelineTask 资源指定共享的工作区。您还可以继续显式映射工作区。

    要启用此功能,在 TektonConfig 自定义资源定义的 pipeline 部分,您必须将 enable-api-fields 字段设置为 alpha

  • 在这个版本中,内嵌规格中的参数会在不修改的情况下传播。
  • 在这个版本中,您可以使用注解和标签指定 PipelineRun 资源引用的 Task 资源所需的元数据。这样,在管道运行过程中,依赖执行上下文的 Task 元数据可用。
  • 在这个版本中,paramsresults 值增加了对象和字典类型。这个变化会影响向后兼容性,有时会破坏转发兼容性,比如使用较早的客户端和以后的 Red Hat OpenShift Pipelines 版本。这个版本更改了 ArrayOrStruct 结构,它会影响使用 Go 语言 API 作为库的项目。
  • 在这个版本中,为 PipelineRun 状态字段的 SkippedTasks 字段添加了一个 SkippingReason 值,以便用户了解跳过给定 PipelineTask 的原因。
  • 在这个版本中,支持一个 alpha 功能,您可以使用 数组 类型从 Task 对象发出结果。结果类型从字符串改为ArrayOrString。例如,任务可以指定类型来生成数组结果:

    kind: Task
    apiVersion: tekton.dev/v1beta1
    metadata:
      name: write-array
      annotations:
        description: |
          A simple task that writes array
    spec:
      results:
        - name: array-results
          type: array
          description: The array results
    ...

    另外,您可以运行一个任务脚本来填充数组的结果:

    $ echo -n "[\"hello\",\"world\"]" | tee $(results.array-results.path)

    要启用此功能,在 TektonConfig 自定义资源定义的 pipeline 部分,您必须将 enable-api-fields 字段设置为 alpha

    这个功能正在进行中,它是 TEP-0076 的一部分。

1.10.1.2. 触发器

  • 在这个版本中,EventListener 规格中的 TriggerGroups 字段从 alpha 功能转换为 stable 功能。使用此字段,您可以在选择和运行一组触发器前指定一组拦截器。

    由于这个功能默认可用,所以您不再需要在 TektonConfig 自定义资源定义中将 pipeline.enable-api-fields 字段设置为 alpha

  • 在这个版本中,Trigger 资源通过运行使用 HTTPS 的 ClusterInterceptor 服务器来支持端到端安全连接。

1.10.1.3. CLI

  • 在这个版本中,您可以使用 tkn taskrun export 命令,将集群中运行的 live 任务导出到 YAML 文件,您可以使用它来将任务运行导入到另一个集群。
  • 在这个版本中,您可以在 tkn pipeline start 命令中添加 -o name 标志,以便在启动后打印管道运行的名称。
  • 在这个版本中,在 tkn --help 命令的输出中添加了可用插件列表。
  • 在这个版本中,在删除管道运行或任务运行时,您可以同时使用 --keep--keep-since 标志。
  • 在这个版本中,您可以使用 Cancelled 作为 spec.status 字段的值,而不是弃用的 PipelineRunCancelled 值。

1.10.1.4. Operator

  • 在这个版本中,作为管理员,您可以将本地 Tekton Hub 实例配置为使用自定义数据库,而不是默认数据库。
  • 在这个版本中,作为集群管理员,如果您启用本地 Tekton Hub 实例,它会定期刷新数据库,以便目录中的更改出现在 Tekton Hub web 控制台中。您可以调整刷新之间的周期。

    在以前的版本中,要将目录中的任务和管道添加到数据库中,您需要手动执行该任务或设置 cron 任务来为您完成这个任务。

  • 在这个版本中,您可以使用最小配置安装并运行 Tekton Hub 实例。这样,您可以开始使用团队来确定他们可能需要的其他自定义。
  • 在这个版本中,将 GIT_SSL_CAINFO 添加到 git-clone 任务,以便您可以克隆安全的存储库。

1.10.1.5. Tekton Chains

重要

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

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

  • 在这个版本中,您可以使用 OIDC 而不是静态令牌登录到 vault。这个更改意味着 Spire 可以生成 OIDC 凭证,以便只允许可信工作负载登录到 vault。另外,您可以将 vault 地址作为配置值传递,而不是将其作为环境变量注入。
  • 在升级 Red Hat OpenShift Pipelines Operator 后,openshift-pipelines 命名空间中的 Tekton Chains 的 chains-config 配置映射会自动重置为 default,因为在使用 Red Hat OpenShift Pipelines Operator 安装时不支持直接更新配置映射。但是,在此次更新中,您可以使用 TektonChain 自定义资源配置 Tekton 链。这个功能可让您在升级后保留配置,这与 chains-config 配置映射不同,这在升级过程中会被覆盖。

1.10.1.6. Tekton Hub

重要

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

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

  • 在这个版本中,如果您使用 Operator 安装一个新的 Tekton Hub 实例,则 Tekton Hub 登录默认是禁用的。要启用登录和评级功能,必须在安装 Tekton Hub 时创建 Hub API secret。

    注意

    因为在 Red Hat OpenShift Pipelines 1.7 中默认启用了 Tekton Hub 登录,所以如果升级 Operator,在 Red Hat OpenShift Pipelines 1.8 中会默认启用登录。要禁用此登录,请参阅从 OpenShift Pipelines 1.7.x -→ 1.8.x 升级后禁用 Tekton Hub 登录

  • 在这个版本中,作为管理员,您可以将本地 Tekton Hub 实例配置为使用自定义 PostgreSQL 13 数据库,而不是默认数据库。为此,请创建一个名为 tekton-hub-dbSecret 资源。例如:

    apiVersion: v1
    kind: Secret
    metadata:
      name: tekton-hub-db
      labels:
        app: tekton-hub-db
    type: Opaque
    stringData:
      POSTGRES_HOST: <hostname>
      POSTGRES_DB: <database_name>
      POSTGRES_USER: <username>
      POSTGRES_PASSWORD: <password>
      POSTGRES_PORT: <listening_port_number>
  • 在这个版本中,您不再需要登录到 Tekton Hub web 控制台,将目录中的资源添加到数据库。现在,当 Tekton Hub API 首次运行时,这些资源会自动添加。
  • 在这个版本中,通过调用目录刷新 API 作业,每 30 分钟自动刷新目录。用户可以配置这个间隔。

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

重要

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

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

  • 在这个版本中,作为开发人员,如果您试图将重复的存储库添加到 Pipelines 作为代码运行,则从 tkn-pac CLI 工具获得通知。输入 tkn pac create repository 时,每个仓库必须具有一个唯一的 URL。此通知还有助于防止劫持漏洞攻击。
  • 在这个版本中,作为开发人员,您可以使用新的 tkn-pac setup cli 命令,使用 webhook 机制将 Git 存储库作为代码添加到 Pipelines 中。这样,即使在使用 GitHub Apps 时也可以使用 Pipelines 作为代码。此功能包括对 GitHub、GitLab 和 BitBucket 上的存储库的支持。
  • 在这个版本中,Pipelines 作为代码支持 GitLab 与特征集成,如下所示:

    • 项目或组的 ACL(访问权限控制列表)
    • 允许的用户的 /ok-to-test 支持
    • /retest 支持。
  • 在这个版本中,您可以使用通用表达式语言 (CEL) 执行高级管道过滤。使用 CEL,您可以使用 PipelineRun 资源中的注解匹配带有不同 Git 供应商事件的管道运行。例如:

      ...
      annotations:
         pipelinesascode.tekton.dev/on-cel-expression: |
          event == "pull_request" && target_branch == "main" && source_branch == "wip"
  • 在以前的版本中,作为开发人员,每个 Git 事件在 .tekton 目录中只能运行一个管道运行,如拉取请求。在这个版本中,您可以在 .tekton 目录中运行多个管道。Web 控制台显示运行的状态和报告。管道并行运行,并报告回 Git 提供程序接口。
  • 在这个版本中,您可以通过对拉取请求为 /test/retest 添加注释来测试或重新测试管道运行。您还可以按名称指定管道运行。例如,您可以输入 /test <pipelinerun_name>/retest <pipelinerun-name>
  • 在这个版本中,您可以使用新的 tkn-pac delete repository 命令删除存储库自定义资源及其关联的 secret。

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

  • 在这个版本中,TaskRunPipelineRun 资源的默认指标级别改为以下值:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: config-observability
      namespace: tekton-pipelines
      labels:
        app.kubernetes.io/instance: default
        app.kubernetes.io/part-of: tekton-pipelines
    data:
      _example: |
      ...
        metrics.taskrun.level: "task"
        metrics.taskrun.duration-type: "histogram"
        metrics.pipelinerun.level: "pipeline"
        metrics.pipelinerun.duration-type: "histogram"
  • 在这个版本中,如果 PipelinePipelineRun 资源中存在注解或标签,Run 类型中的值将具有优先权。如果 TaskTaskRun 资源中存在注解或标签,则也是如此。
  • 在 Red Hat OpenShift Pipelines 1.8 中,之前弃用的 PipelineRun.Spec.ServiceAccountNames 字段已被删除。使用 PipelineRun.Spec.TaskRunSpecs 字段替代。
  • 在 Red Hat OpenShift Pipelines 1.8 中,之前已弃用的 TaskRun.Status.ResourceResults.ResourceRef 字段已被删除。使用 TaskRun.Status.ResourceResults.ResourceName 字段。
  • 在 Red Hat OpenShift Pipelines 1.8 中,之前已弃用的 Conditions 资源类型已被删除。从包含它的 Pipeline 资源定义中删除 Conditions 资源。在 PipelineRun 定义中使用 when 表达式。
  • 对于 Tekton 链,在这个发行版本中删除了 tekton-provenance 格式。通过在 TektonChain 自定义资源中设置 "artifacts.taskrun.format": "in-toto" 来使用 in-toto 格式。
  • Red Hat OpenShift Pipelines 1.7.x 作为代码 0.5.x 附带。当前的更新附带了 Pipelines,作为代码 0.10.x。此更改在新控制器的 openshift-pipelines 命名空间中创建新路由。您必须在使用 Pipelines 作为代码的 GitHub Apps 或 Webhook 中更新此路由。要获取路由,请使用以下命令:

    $ oc get route -n openshift-pipelines pipelines-as-code-controller \
      --template='https://{{ .spec.host }}'
  • 在这个版本中,Pipelines 作为 Code 会重命名 Repository 自定义资源定义 (CRD) 的默认 secret 密钥。在 CRD 中,将 token 替换为 provider.token,并将 secret 替换为 webhook.secret
  • 在这个版本中,Pipelines 作为代码将特殊模板变量替换为支持用于私有仓库的多个管道运行的特殊模板变量。在管道运行中,将 secret: pac-git-basic-auth-{{repo_owner}}-{{repo_name}} 替换为 secret: {{ git_auth_secret }}
  • 在这个版本中,Pipelines as Code 更新 tkn-pac CLI 工具中的以下命令:

    • tkn pac repository create 替换为 tkn pac create repository
    • tkn pac repository delete 替换为 tkn pac delete repository
    • tkn pac repository list 替换为 tkn pac list

1.10.3. 弃用和删除的功能

  • 从 OpenShift Container Platform 4.11 开始,会删除用于安装和升级 Red Hat OpenShift Pipelines Operator 的 previewstable 频道。要安装和升级 Operator,请使用适当的 pipelines-<version> 频道,或最新稳定版本的 latest 频道。例如,要安装 OpenShift Pipelines Operator 版本 1.8.x,请使用 pipelines-1.8 频道。

    注意

    在 OpenShift Container Platform 4.10 及更早的版本中,您可以使用 previewstable 频道来安装和升级 Operator。

  • tekton.dev/v1alpha1 API 版本的支持(在 Red Hat OpenShift Pipelines GA 1.6 中已弃用)计划在以后的 Red Hat OpenShift Pipelines GA 1.9 发行版本中删除。

    此更改会影响管道组件,其中包括 TaskRun, PipelineRun, Task, Pipeline, 和 tekton.dev/v1alpha1 类似。另外,将现有资源更新为使用 apiVersion: tekton.dev/v1beta1,如 Migrating From Tekton v1alpha1 to Tekton v1beta1 所述。

    tekton.dev/v1alpha1 API 版本的程序错误修复和支持仅到当前 GA 1.8 生命周期结束为止。

    重要

    对于 Tekton Operatoroperator.tekton.dev/v1alpha1 API 版本没有弃用。您不需要更改此值。

  • 在 Red Hat OpenShift Pipelines 1.8 中,PipelineResource 自定义资源 (CR) 可用,但不再被支持。PipelineResource CR 是一个技术预览功能,它属于 tekton.dev/v1alpha1 API 的一部分,它已被弃用,并计划在以后的 Red Hat OpenShift Pipelines GA 1.9 发行版本中删除。
  • 在 Red Hat OpenShift Pipelines 1.8 中,Condition 自定义资源 (CR) 已删除。Condition CR 是 tekton.dev/v1alpha1 API 的一部分,它已被弃用,计划在以后的 Red Hat OpenShift Pipelines GA 1.9 发行版本中删除。
  • 在 Red Hat OpenShift Pipelines 1.8 中,gsutilgcr.io 镜像已被删除。这个删除可能会破坏带有依赖于此镜像的 Pipeline 资源的集群。程序错误修复和支持只到 Red Hat OpenShift Pipelines 1.7 生命周期结束为主。
  • 在 Red Hat OpenShift Pipelines 1.8 中,Pipeline.Status.TaskRunsPipelineRun.Status.Runs 字段已弃用,计划在以后的发行版本中被删除。请参阅 PipelineRuns 中的 TEP-0100: 嵌入式 TaskRuns 和 Runs Status
  • 在 Red Hat OpenShift Pipelines 1.8 中,pipelineRunCancelled 状态已弃用,计划在以后的发行版本中被删除。现在,PipelineRun 对象的安全终止已从 alpha 功能提升到 stable 功能。(请参阅 TEP-0058: Graceful Pipeline Run Termination。)另外,您可以使用 Cancelled 状态替换 pipelineRunCancelled 状态。

    您不需要更改 PipelineTask 资源。如果您有会取消管道运行的工具,则必须在下一个发行版本中更新这些工具。这个更改也会影响 CLI、IDE 扩展等工具,以便支持新的 PipelineRun 状态。

    由于这个功能默认可用,所以您不再需要在 TektonConfig 自定义资源定义中将 pipeline.enable-api-fields 字段设置为 alpha

  • 在 Red Hat OpenShift Pipelines 1.8 中,PipelineRun 中的 timeout 字段已弃用。反之,使用 PipelineRun.Timeouts 字段,它现在从 alpha 功能提升到 stable 功能。

    由于这个功能默认可用,所以您不再需要在 TektonConfig 自定义资源定义中将 pipeline.enable-api-fields 字段设置为 alpha

  • 在 Red Hat OpenShift Pipelines 1.8 中,init 容器在 LimitRange 对象的默认请求计算中省略。

1.10.4. 已知问题

  • s2i-nodejs 管道无法使用 nodejs:14-ubi8-minimal 镜像流来执行 source-to-image (S2I) 构建。使用该镜像流会生成一个 error building at STEP "RUN /usr/libexec/s2i/assemble": exit status 127 信息。

    临时解决方案: 使用 nodejs:14-ubi8 而不是 nodejs:14-ubi8-minimal 镜像流。

  • 当您运行 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>

  • 在 ARM、IBM Power Systems、IBM Z 和 LinuxONE 中,不支持 s2i-dotnet 集群任务。
  • 隐式参数映射会错误地将参数从顶级 PipelinePipelineRun 定义传递给 taskRef 任务。映射应该只在顶层资源中使用任务进行,并带有非线 taskSpec 规格。这个问题只通过将 TektonConfig 自定义资源定义的 pipeline 部分中的 enable-api-fields 字段设置为 alpha 来影响启用了这个功能的集群。

1.10.5. 修复的问题

  • 在此次更新之前,管道的指标在 Web 控制台的 Developer 视图中运行的指标不完整且过期。在这个版本中,这个问题已被解决,指标正确。
  • 在此次更新之前,如果管道有两个失败并有 retries=2 的并行任务,则最终任务永不会运行,管道超时并且无法运行。例如,pipelines-operator-subscription 任务会间歇性地失败,并显示以下错误消息: Unable to connect to server: EOF。在这个版本中,这个问题已被解决,以便最终任务始终运行。
  • 在此次更新之前,如果管道运行因为任务运行失败而停止,则其他任务运行可能无法完成重试。因此,不会调度 finally 任务,这会导致管道挂起。 这个版本解决了这个问题。TaskRunsRun 对象可以在管道运行停止时重试,即使是安全停止也是如此,以便管道运行可以完成。
  • 在这个版本中,当 TaskRun 对象的命名空间中存在一个或多个 LimitRange 对象时,会改变如何计算资源要求。现在,当从 LimitRange 对象发出请求时,调度程序现在考虑 step 容器并排除所有其他应用容器,如 sidecar 容器。
  • 在此次更新之前,在特定的条件下,标志软件包可能会错误地解析子命令,并带有双短划线终止符 --。在这种情况下,它会运行 entrypoint 子命令,而不是实际命令。在这个版本中解决了这个问题,这个问题会解决,entrypoint 会运行正确的命令。
  • 在此次更新之前,如果拉取镜像失败,控制器可能会生成多个 panics,或者其拉取 (pull) 状态不完整。在这个版本中解决了这个问题,方法是检查 step.ImageID 值而不是 status.TaskSpec 值。
  • 在此次更新之前,取消一个包含未计划的自定义任务的管道运行会生成 PipelineRunCouldntCancel 错误。在这个版本中解决了这个问题。您可以取消包含非调度自定义任务的管道运行,而不会生成这个错误。
  • 在此次更新之前,如果在 $params["<NAME>"]$params['<NAME>']<NAME> 中包括了一个句点字符 (.),则不会提取句点右侧的任何部分。例如,对于 $params["org.ipsum.lorem"],只会提取y org 部分。

    在这个版本中解决了这个问题,$params 可以提取完整的值。例如,$params["org.ipsum.lorem"]$params['org.ipsum.lorem'] 是有效的,<NAME> 的完整值 org.ipsum.lorem 都会被提取。

    如果 <NAME> 没有包含在单引号或双引号中,还会抛出一个错误。例如,$params.org.ipsum.lorem 是无效,并生成验证错误。

  • 在这个版本中,Trigger 资源支持自定义拦截器,并确保自定义拦截器服务的端口与 ClusterInterceptor 定义文件中的端口相同。
  • 在此次更新之前,Tekton Chains 和 Operator 组件的 tkn version 命令无法正常工作。在这个版本中解决了这个问题,命令可以正常工作,并返回这些组件的版本信息。
  • 在此次更新之前,如果您运行 tkn pr delete --ignore-running 命令,且管道运行没有 status.condition 值,tkn CLI 工具会生成 null-pointer 错误 (NPE)。在这个版本中解决了这个问题,CLI 工具现在会生成错误,并正确忽略仍然运行的管道运行。
  • 在此次更新之前,如果您使用 tkn pr delete --keep <value>tkn tr delete --keep <value> 命令,且管道运行或任务运行的数量小于其中的值,则命令不会如预期返回一个错误。在这个版本中解决了这个问题,以便命令在这些条件下正确返回错误。
  • 在此次更新之前,如果您使用 tkn pr deletetkn tr delete 命令以及 -p-t 标志与 --ignore-running 标志一起,则命令会错误地删除运行或待处理资源。在这个版本中解决了这个问题,这些命令可以正确地忽略运行或待处理资源。
  • 在此版本中,您可以使用 TektonChain 自定义资源配置 Tekton 链。这个功能可让您在升级后保留配置,这与 chains-config 配置映射不同,这在升级过程中会被覆盖。
  • 在这个版本中,除了 buildahs2i 集群任务外,ClusterTask 资源不再默认以 root 用户身份运行。
  • 在此次更新之前,当将 init 用作第一个参数并后跟两个或更多个参数时,Red Hat 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 会导致重新创建 pipeline 服务帐户,这意味着链接到服务帐户的 secret 会丢失。在这个版本中解决了这个问题。在升级过程中,Operator 不再重新创建 pipeline 服务帐户。因此,已附加到 pipeline 服务帐户的 secret 在升级后会保留,资源(任务和管道)可以继续正常工作。
  • 在这个版本中,如果在 TektonConfig 自定义资源 (CR) 中配置了基础架构节点设置,Pipelines as Code pod 在基础架构节点上运行。
  • 在以前的版本中,使用资源修剪器时,每个命名空间 Operator 创建了一个在独立容器中运行的命令。这个设计在有大量命名空间的集群中消耗太多资源。例如,要运行单个命令,带有 1000 个命名空间的集群会在 pod 中生成 1000 个容器。

    在这个版本中解决了这个问题。它将基于命名空间的配置传递给作业,以便所有命令在循环中的一个容器中运行。

  • 在 Tekton Chains 中,您必须定义一个名为 signed-secrets 的 secret,以存放用于签名任务和镜像的密钥。但是,在更新前,更新 Red Hat OpenShift Pipelines Operator 会重置或覆盖这个 secret,密钥会丢失。在这个版本中解决了这个问题。现在,如果在通过 Operator 安装 Tekton Chains 后配置了 secret,secret 会保留,且升级不会覆盖它。
  • 在此次更新之前,所有 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"]
  • 在此次更新之前,安装 Red Hat OpenShift Pipelines Operator 所需的时间比预期的要长。这个版本会优化一些设置来加快安装过程。
  • 在这个版本中,Buildah 和 S2I 集群任务比之前的版本要少。有些步骤已合并到一个步骤中,它们最好使用 ResourceQuotaLimitRange 对象,且不需要更多资源。
  • 在这个版本中,在集群任务中升级 Buildah、tkn CLI 工具和 skopeo CLI 工具版本。
  • 在此次更新之前,如果任何命名空间处于 Terminating 状态,Operator 会在创建 RBAC 资源时失败。在这个版本中,Operator 忽略了命名空间处于 Terminating 状态,并创建 RBAC 资源。
  • 在此次更新之前,prune cronjobs 的 pod 没有在基础架构节点上调度。相反,它们被调度到 worker 节点上,或没有调度到任何节点。在这个版本中,如果在 TektonConfig 自定义资源 (CR) 中进行了配置,这些类型的 pod 可以在基础架构节点上调度。

1.10.6. Red Hat OpenShift Pipelines 正式发布 1.8.1 发行注记

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

1.10.6.1. 已知问题

  • 默认情况下,容器具有 restricted 权限来提高安全性。restricted 权限适用于 Red Hat OpenShift Pipelines Operator 中的所有控制器 pod,以及一些集群任务。由于权限受限,git-clone 集群任务在特定配置下会失败。

    临时解决方案:无.您可以跟踪此问题 SRVKP-2634

  • 当安装程序集合处于失败状态时,TektonConfig 自定义资源的状态会被错误地显示为 True,而不是 False

    示例:失败的安装程序集

    $ oc get tektoninstallerset
    NAME                                     READY   REASON
    addon-clustertasks-nx5xz                 False   Error
    addon-communityclustertasks-cfb2p        True
    addon-consolecli-ftrb8                   True
    addon-openshift-67dj2                    True
    addon-pac-cf7pz                          True
    addon-pipelines-fvllm                    True
    addon-triggers-b2wtt                     True
    addon-versioned-clustertasks-1-8-hqhnw   False   Error
    pipeline-w75ww                           True
    postpipeline-lrs22                       True
    prepipeline-ldlhw                        True
    rhosp-rbac-4dmgb                         True
    trigger-hfg64                            True
    validating-mutating-webhoook-28rf7       True

    示例: 不正确的 TektonConfig 状态

    $ oc get tektonconfig config
    NAME     VERSION   READY   REASON
    config   1.8.1     True

1.10.6.2. 修复的问题

  • 在此次更新之前,pruner 会删除运行管道的任务运行,并显示以下警告:some tasks were indicated completed without ancestors being done。在这个版本中,pruner 会保留作为运行管道一部分的任务运行。
  • 在此次更新之前,pipeline-1.8 是安装 Red Hat OpenShift Pipelines Operator 1.8.x 的默认频道。在这个版本中,latest 是默认频道。
  • 在此次更新之前,作为 Code 控制器 pod 的 Pipelines 无法访问用户公开的证书。在这个版本中,Pipelines as Code 可以访问路由,Git 存储库由自签名或自定义证书保护。
  • 在此次更新之前,在从 Red Hat OpenShift Pipelines 1.7.2 升级到 1.8.0 后,任务会失败并带有 RBAC 错误。在这个版本中,任务会成功运行,不会出现 RBAC 错误。
  • 在此次更新之前,无法使用 tkn CLI 工具删除包含类型为 arrayresult 对象的任务运行和管道运行。在这个版本中,可以使用 tkn CLI 工具删除包含类型为 arrayresult 对象的任务运行和管道运行。
  • 在此次更新之前,如果管道规格包含带有类型为 arrayENV_VARS 参数的任务,则管道运行会失败,并带有以下错误:invalid input params for task func-buildpacks: param types don’t match the user-specified type: [ENV_VARS]。在这个版本中,带有这样的管道和任务规格的管道不会失败。
  • 在此次更新之前,集群管理员无法向 Buildah 集群任务提供 config.json 文件来访问容器 registry。在这个版本中,集群管理员可以使用 dockerconfig 工作区为 Buildah 集群任务提供 config.json 文件。

1.10.7. Red Hat OpenShift Pipelines General Availability 1.8.2 发行注记

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

1.10.7.1. 修复的问题

  • 在此次更新之前,当使用 SSH 密钥克隆存储库时,git-clone 任务会失败。在这个版本中,git-init 任务中的非 root 用户的角色会被删除,SSH 程序会在 $HOME/.ssh/ 目录中查找正确的密钥。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.