6.2. Red Hat OpenShift Pipelines 技术预览 1.0 发行注记


6.2.1. 新功能

OpenShift Pipelines 技术预览 (TP) 1.0 现在包括在 OpenShift Container Platform 4.4 中。OpenShift Pipelines TP 1.0 更新为支持:

  • Tekton Pipelines 0.11.3
  • Tekton tkn CLI 0.9.0
  • Tekton Triggers 0.4.0
  • 基于 Tekton Catalog 0.11 的 ClusterTasks

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

6.2.1.1. Pipelines

  • 支持 v1beta1 API 版本。
  • 支持改进的 LimitRange。在以前的版本中,LimitRange 只能为 TaskRun 和 PipelineRun 指定。现在不需要显式指定 LimitRange。命名空间间使用最小 LimitRange。
  • 支持使用 TaskResults 和 TaskParams 在任务间共享数据。
  • 现在,管道可以被配置为不覆盖 HOME 环境变量和 Steps 的 WorkDir
  • 与任务步骤类似,sidecar 现在支持脚本模式。
  • 现在,您可以在 TaskRun 的 podTemplate 中指定不同调度程序的名称 。
  • 支持使用 Star Array Notation 替换变量。
  • Tekton Controller 现在可以配置为监控单个命名空间。
  • 现在,在 Pipeline、Task、ClusterTask、Resource 和 Condition 规格中添加了一个新的 description 字段。
  • 在 Git PipelineResources 中添加代理参数。

6.2.1.2. Pipelines CLI

  • 现在,为以下 tkn 资源添加了 describe 子命令:eventlistenerconditiontriggertemplateclustertasktriggerbinding
  • 在以下命令中添加 v1beta1 支持以及 v1alpha1 的向后兼容性: clustertasktaskpipelinepipelineruntaskrun
  • 以下命令现在可以使用 --all-namespaces 标志选项列出所有命名空间的输出结果:

    • tkn task list
    • tkn pipeline list
    • tkn taskrun list
    • tkn pipelinerun list

      这些命令的输出也可以通过 --no-headers 选项在没有标头的情况下显示信息。

  • 现在您可以使用默认参数值启动 Pipeline,方法是在 tkn pipelines start 命令中指定 --use-param-defaults 标记。
  • 现在,在 tkn pipeline starttkn task start 命令中增加了对 Workspace 的支持。
  • 现在增加了一个新命令 clustertriggerbinding,它带有以下子命令:describedeletelist
  • 现在,您可以使用本地或远程 yaml 文件直接启动管道运行。
  • describe 子命令现在显示一个改进的详细输出。现在,除了新的项,如 descriptiontimeoutparam descriptionsidecar status,命令输出还提供了关于一个特定 tkn 资源的更详细的信息。
  • 现在,如果命名空间中只有一个任务,tkn task log 命令会直接显示日志。

6.2.1.3. 触发器

  • 现在触发器可以同时创建 v1alpha1v1beta1 Pipeline 资源。
  • 支持新的通用表达式语言(CEL)拦截器功能 - compareSecret。此功能安全地将字符串与 CEL 表达式中的 secret 进行比较。
  • 支持 EventListener Trigger 一级的验证和授权。

6.2.2. 已弃用的功能

本发行版本中已弃用了以下内容:

  • Steps 规格中的环境变量 $HOME,变量 workingDir 已被弃用,并可能在以后的发行版本中有所变化。目前,在 Step 容器中,HOMEworkingDir 分别被 /tekton/home/workspace 覆盖。

    在以后的发行版本中,这两个字段将不会被修改,它将被设置为容器镜像和任务 YAML 中定义的值。在本发行版本中,使用标签 disable-home-env-overwritedisable-working-directory-overwrite 来禁用对 HOMEworkingDir 的覆盖。

  • 以下命令已被弃用,并可能在以后的版本中被删除:

    • tkn pipeline create
    • tkn task create
  • tkn resource create 命令中使用 -f 标志现已弃用。以后的发行版本中可能会删除它。
  • tkn clustertask create 命令中的 -t 标记和 --timeout 标记(使用秒格式)现已被弃用。现在只支持持续超时格式,例如 1h30s。这些已弃用的标记可能会在以后的版本中删除。

6.2.3. 已知问题

  • 如果您要从 OpenShift Pipelines 的旧版本升级,则必须删除您现有的部署,然后再升级到 OpenShift Pipelines 版本 1.0。要删除现有的部署,您必须首先删除自定义资源,然后卸载 OpenShift Pipelines Operator。如需了解更多详细信息,请参阅卸载 OpenShift Pipelines 部分。
  • 提交相同的 v1alpha1 任务多次会导致错误。在重新提交一个 v1alpha1 任务时,使用 oc replace 而不是使用 oc apply
  • 当向一个容器添加一个新用户时,buildah ClusterTask 并不会工作。

    当安装 Operator 时,buildah ClusterTask 的 --storage-driver 标志没有指定,因此它会被设置为默认值。在某些情况下,这会导致存储驱动程序设置不正确。当添加一个新用户时,错误的 storage-driver 会造成 buildah ClusterTask 失败并带有以下错误:

    useradd: /etc/passwd.8: lock file already used
    useradd: cannot lock /etc/passwd; try again later.

    作为临时解决方案,在 buildah-task.yaml 文件中手工把 --storage-driver 标识的值设置为 overlay

    1. cluster-admin 身份登录到集群:

      $ oc login -u <login> -p <password> https://openshift.example.com:6443
    2. 使用 oc edit 命令编辑 buildah ClusterTask:

      $ oc edit clustertask buildah

      buildah clustertask YAML 文件的最新版本会在由 EDITOR 环境变量指定的编辑器中打开。

    3. steps 字段中找到以下 command 字段:

       command: ['buildah', 'bud', '--format=$(params.FORMAT)', '--tls-verify=$(params.TLSVERIFY)', '--layers', '-f', '$(params.DOCKERFILE)', '-t', '$(resources.outputs.image.url)', '$(params.CONTEXT)']
    4. 使用以下内容替换 command 字段:

       command: ['buildah', '--storage-driver=overlay', 'bud', '--format=$(params.FORMAT)', '--tls-verify=$(params.TLSVERIFY)', '--no-cache', '-f', '$(params.DOCKERFILE)', '-t', '$(params.IMAGE)', '$(params.CONTEXT)']
    5. 保存文件并退出。

    另外,您还可以直接在 web 控制台中直接修改 buildah ClusterTask YAML 文件。导航到 Pipelines Cluster Tasks buildah。从 Actions 菜单中选择 Edit Cluster Task,如前所示替换 command 项。

6.2.4. 修复的问题

  • 在以前的版本中,即使镜像构建已在进行中,DeploymentConfig 任务也会触发新的部署构建。这会导致 Pipeline 的部署失败。在这个版本中,deploy task 命令被 oc rollout status 命令替代,它会等待正在进行中的部署完成。
  • 现在在 Pipeline 模板中添加了对 APP_NAME 参数的支持。
  • 在以前的版本中,Java S2I 的 Pipeline 模板无法在 registry 中查询镜像。在这个版本中,使用现有镜像 PipelineResources 而不是用户提供的 IMAGE_NAME 参数来查找镜像。
  • 所有 OpenShift Pipelines 镜像现在都基于 Red Hat Universal Base Images(UBI)。
  • 在以前的版本中,当 Pipeline 在 tekton-pipelines 以外的命名空间中安装时,tkn version 命令会将 Pipeline 版本显示为 unknown 。在这个版本中,tkn version 命令会在任意命名空间中显示正确的 Pipeline 版本。
  • tkn version 命令不再支持 -c 标志。
  • 非管理员用户现在可以列出 ClusterTriggerBindings。
  • 现在为 CEL 拦截器修复了 EventListener CompareSecret 功能。
  • 现在,taskclustertasklistdescribestart 子命令在 Task 和 ClusterTask 有相同名称时可以正确地显示输出。
  • 在以前的版本中,OpenShift Pipelines Operator 修改了特权安全性上下文约束 (SCC),这会在集群升级过程中造成错误。这个错误现已解决。
  • tekton-pipelines 命名空间中,现在将所有 TaskRuns 和 PipelineRuns 的超时设置为使用 ConfigMap 的 default-timeout-minutes 字段。
  • 在以前的版本中,Web 控制台中的 Pipelines 部分没有为非管理员用户显示。这个问题现已解决。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.