1.9. Red Hat OpenShift Pipelines 正式发行 1.6 发行注记
在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA)1.6 包括在 OpenShift Container Platform 4.9 中。
1.9.1. 新功能 复制链接链接已复制到粘贴板!
除了包括修复和稳定性改进的信息外,以下小节突出介绍了 Red Hat OpenShift Pipelines 1.6 中的新内容。
-
在这个版本中,您可以配置管道或任务的
start命令(使用--output <string>,其中<string>是yaml或json)来返回 YAML 或 JSON 格式的字符串。如果没有使用--output选项,start命令会返回人类友好的消息,而其他程序很难解析该消息。返回 YAML 或 JSON 格式的字符串对于持续集成(CI)环境非常有用。例如,在创建了资源后,您可以使用yq或jq解析有关资源的 YAML 或 JSON 格式消息,并等待该资源终止而不使用showlog选项。 -
在这个版本中,您可以使用 Podman 的
auth.json身份验证文件对 registry 进行身份验证。例如,您可以使用tkn bundle push来使用 Podman 而不是 Docker CLI 推送到远程 registry。 -
在这个版本中,如果您使用
tkn [taskrun | pipelinerun] delete --all命令,您可以使用新的--keep-since <minutes>选项来指定一个分钟数,存在时间少于这个分钟数的运行会被保留。例如,若要保持存在的时间少于五分钟的运行,输入tkn [taskrun | pipelinerun] delete -all --keep-since 5。 -
在这个版本中,当删除任务运行或管道运行时,您可以将
--parent-resource和--keep-since选项一起使用。例如,tkn pipelinerun delete --pipeline pipelinename --keep-since 5命令会保留其父资源名为pipelinename,其存在时间为五分钟或更短的管道运行。对于任务运行,tkn tr delete -t <taskname> --keep-since 5和tkn tr delete --clustertask <taskname> --keep-since 5有类似效果。 -
在这个版本中,增加了对用于
v1beta1资源的触发器资源的支持。
-
在这个版本中,在
tkn pipelinerun delete和tkn taskrun delete命令中添加了一个ignore-running选项。 -
在这个版本中,为
tkn task和tkn clustertask命令添加一个create子命令。 -
在这个版本中,当使用
tkn pipelinerun delete --all命令时,您可以使用新的--label <string>选项来根据标签过滤管道运行。另外,您还可以在--label选项中使用=和==作为相等运算符,或者!=作为不相等运算符。例如,tkn pipelinerun delete --all --label asdf和tkn pipelinerun delete --all --label==asdf命令都会删除带有asdf标签的所有管道运行。 - 在这个版本中,您可以从配置映射获取已安装的 Tekton 组件版本,或者从部署控制器获取配置映射的版本。
-
在这个版本中,触发器支持使用
feature-flags和config-defaults配置映射来分别配置功能标记和设置默认值。 -
在这个版本中,添加了一个新的指标
eventlistener_event_count,您可以使用它来统计EventListener资源接收的事件。 在这个版本中添加了
v1beta1Go API 类型。在这个版本中,触发器支持v1beta1API 版本。在当前发行版本中,
v1alpha1功能已弃用,并将在以后的发行版本中删除。改为使用v1beta1功能替代。
在当前发行版本中,默认启用自动运行资源。另外,您可以使用以下新注解为每个命名空间单独配置自动运行任务运行和管道运行:
-
operator.tekton.dev/prune.schedule:如果此注解的值与TektonConfig自定义资源定义中指定的值不同,则会在该命名空间中创建新的 cron 作业。 -
operator.tekton.dev/prune.skip:设置为true时,配置它的命名空间不会被修剪。 -
operator.tekton.dev/prune.resources:此注解接受以逗号分隔的资源列表。要修剪单一资源,如管道运行,将此注解设置为"pipelinerun"。要修剪多个资源,如任务运行和管道运行,将此注解设置为"taskrun, pipelinerun"。 -
operator.tekton.dev/prune.keep:使用此注解保留资源而不进行修剪。 operator.tekton.dev/prune.keep-since:使用此注解来根据其存在的时间来保留资源。此注解的值必须等于资源的年龄(以分钟为单位)。例如,若要保留在五天内创建的资源,请将keep-since设置为7200。注意keep和keep-since注释是互斥的。对于任何资源,您只能配置其中一个。-
operator.tekton.dev/prune.strategy:将此注解的值设置为keep或keep-since。
-
-
管理员可以禁用在整个集群中创建
pipeline服务帐户创建,从而防止因为错误地使用关联的 SCC(这与anyuid非常相似)造成权限升级的问题。 -
现在,您可以使用
TektonConfig自定义资源(CR)和单个组件的 CR 配置功能标记和组件,如TektonPipeline和TektonTriggers。此级别的颗粒度有助于为各个组件的 Tekton OCI 捆绑包自定义和测试 alpha 功能。 -
现在,您可以为
PipelineRun资源配置可选的Timeouts字段。例如,您可以单独为管道运行、每个任务运行以及finally任务配置超时。 -
TaskRun资源生成的 Pod 现在会设置 pod 的activeDeadlineSeconds字段。这可让 OpenShift 将它们视为终止,并允许您将具有特定作用域的ResourceQuota对象用于容器集。 - 您可以使用 configmaps 在任务运行、管道运行、任务和管道上消除指标标签或标签类型。另外,您可以为测量持续时间配置不同类型的指标,如直方图、量表或最后一个值。
-
您可以统一定义 pod 的请求和限值,因为 Tekton 现在通过考虑
Min、Max、Default和DefaultRequest字段来全面支持LimitRange对象。 引入了以下 alpha 功能:
现在,管道运行可以在运行
finally任务后停止,而不是之前停止直接运行所有任务的行为。在这个版本中添加了以下spec.status值:-
StoppedRunFinally将在当前运行的任务完成后停止,然后运行finally任务。 -
CancelledRunFinally将立即取消正在运行的任务,然后运行finally任务。 Cancelled将保留PipelineRunCancelled状态提供的以前行为。注意Cancelled状态替换已弃用的PipelineRunCancelled状态,该状态将在v1版本中删除。
-
-
现在,您可以使用
oc debug命令将任务运行设置为 debug 模式,这会暂停执行并允许您检查 pod 中的特定步骤。 -
当您将一个步骤的
onError字段设置为continue时,会记录该步骤的退出代码并传递给后续步骤。但是,任务运行不会失败,任务中其余步骤的执行将继续。要保留现有的行为,您可以将onError字段的值设置为stopAndFail。 - 任务现在可以接受比实际使用更多的参数。启用 alpha 功能标记时,参数可以隐式传播到内联规格。例如,内联任务可以访问其父管道运行的参数,而不必为任务明确定义每个参数。
-
如果您为 alpha 功能启用标记,则
When表达式下的条件将仅适用于直接关联的任务,而不是任务的依赖项。要将When表达式应用到关联的任务及其依赖关系中,您必须将表达式与每个相依任务单独关联。请注意,进入下一步是 Tekton 的任何新 API 版本中When表达式的默认行为。现有的默认行为将被弃用,而由此更新替代。
当前发行版本允许您通过在
TektonConfig自定义资源(CR)中指定nodeSelector和tolerations值来配置节点选择。Operator 将这些值添加到它创建的所有部署中。-
要为 Operator 的控制器和 webhook 部署配置节点选择,请在安装 Operator 后编辑
SubscriptionCR 规格中的config.nodeSelector和config.tolerations字段。 -
要在基础架构节点上部署 OpenShift Pipelines 的其余 control plane pod,请使用
nodeSelector和tolerations字段更新TektonConfigCR。然后,修改会应用到 Operator 创建的所有 pod。
-
要为 Operator 的控制器和 webhook 部署配置节点选择,请在安装 Operator 后编辑
1.9.2. 已弃用的功能 复制链接链接已复制到粘贴板!
-
在 CLI 0.21.0 中,已弃用了对
clustertask,task,taskrun,pipeline, 和pipelinerun的所有v1alpha1资源的支持。这些资源现已过时,并将在以后的发行版本中删除。
在 Tekton Triggers v0.16.0 中,冗余的
status标签已从EventListener资源的指标中删除。重要中断更改:
status标签已从eventlistener_http_duration_seconds_*指标中删除。删除基于status标签的查询。-
在当前发行版本中,
v1alpha1功能已弃用,并将在以后的发行版本中删除。在这个版本中,您可以改为使用v1beta1Go API 类型。触发器现在支持v1beta1API 版本。 在当前发行版本中,
EventListener资源会在触发器完成处理前发送响应。重要中断更改:使用此更改时,
EventListener资源会在创建资源时停止响应201 Created的状态代码。相反,它使用202 Accepted的响应代码进行响应。当前发行版本从
EventListener资源中删除podTemplate字段。重要中断更改:删除了作为 #1100 一部分的
podTemplate字段。当前发行版本从
EventListener资源规格中删除已弃用的replicas字段。重要中断更改:已弃用的
replicas字段已被删除。
在 Red Hat OpenShift Pipelines 1.6 中,
HOME="/tekton/home"和workingDir="/workspace"的值从Step对象的规格中删除。相反,Red Hat OpenShift Pipelines 将
HOME和workingDir设置为运行Step对象的容器定义的值。您可以在Step对象的规格中覆盖这些值。要使用旧的行为,您可以将
TektonConfigCR 中的disable-working-directory-overwrite和disable-home-env-overwrite字段改为false:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要TektonConfigCR 中的disable-working-directory-overwrite和disable-home-env-overwrite字段现已弃用,并将在以后的发行版本中删除。
1.9.3. 已知问题 复制链接链接已复制到粘贴板!
-
当您运行 Maven 和 Jib-Maven 集群任务时,默认容器镜像仅支持 Intel(x86)架构。因此,在 IBM Power Systems(ppc64le)、IBM Z 和 LinuxONE(s390x)集群上的任务将失败。作为临时解决方案,您可以通过将
MAVEN_IMAGE参数值设置为maven:3.6.3-adoptopenjdk-11来指定自定义镜像。 -
在 IBM Power Systems、IBM Z 和 LinuxONE 中,不支持
s2i-dotnet集群任务。 -
在您使用
tkn hub在 IBM Power Systems(ppc64le)、IBM Z 和 LinuxONE(s390x) 上基于 Tekton Catalog 安装任务前,请验证是否可以在这些平台上执行任务。要检查ppc64le和s390x是否列在任务信息的"Platforms"部分,您可以运行以下命令:tkn hub info task <name> 您无法使用
nodejs:14-ubi8-minimal镜像流,因为这样做会生成以下错误:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.9.4. 修复的问题 复制链接链接已复制到粘贴板!
-
现在,IBM Power Systems、IBM Z 和 LinuxONE 支持
tkn hub命令。
-
在更新前,当用户运行
tkn命令并完成管道运行后,终端不可用,即使指定了retries也是如此。在任务运行或管道运行中指定超时无效。在这个版本中解决了这个问题,终端可以在运行命令后可用。 -
在更新前,运行
tkn pipelinerun delete --all会删除所有资源。在这个版本中,处于 running 状态的资源无法被删除。 -
在这个版本中,使用
tkn version --component=<component>命令不会返回组件版本。在这个版本中解决了这个问题,这个命令会返回组件版本。 -
在更新前,当您使用
tkn pr logs命令时,它会以错误的任务顺序显示管道输出日志。在这个版本中解决了这个问题,已完成的PipelineRuns的日志会在适当的TaskRun执行顺序中列出。
-
在这个版本中,编辑正在运行的管道规格可能会阻止管道运行在完成后停止。在这个版本中,只获取定义一次,然后使用存储在状态中的规格进行验证,从而解决了这个问题。当
PipelineRun或TaskRun指代的Pipeline或Task在运行时会发生变化,这个变化减少了出现竞争条件的可能性。 -
When表达式值可以有数组参数引用,例如values: [$(params.arrayParam[*])]。
1.9.5. Red Hat OpenShift Pipelines 正式发行版本 1.6.1 发行注记 复制链接链接已复制到粘贴板!
1.9.5.1. 已知问题 复制链接链接已复制到粘贴板!
从旧版本升级到 Red Hat OpenShift Pipelines 1.6.1 后,OpenShift Pipelines 可能会进入不一致的状态,因为您无法对 Tekton 资源(tasks 和 pipelines)执行任何操作(create/delete/apply)。例如,在删除资源时,您可能会遇到以下错误:
Error from server (InternalError): Internal error occurred: failed calling webhook "validation.webhook.pipeline.tekton.dev": Post "https://tekton-pipelines-webhook.openshift-pipelines.svc:443/resource-validation?timeout=10s": service "tekton-pipelines-webhook" not found.
Error from server (InternalError): Internal error occurred: failed calling webhook "validation.webhook.pipeline.tekton.dev": Post "https://tekton-pipelines-webhook.openshift-pipelines.svc:443/resource-validation?timeout=10s": service "tekton-pipelines-webhook" not found.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.9.5.2. 修复的问题 复制链接链接已复制到粘贴板!
Red Hat OpenShift Pipelines 设置的
SSL_CERT_DIR环境变量(/tekton-custom-certs)不会用证书文件覆盖以下默认系统目录:-
/etc/pki/tls/certs -
/etc/ssl/certs -
/system/etc/security/cacerts
-
- Horizontal Pod Autoscaler 可以管理 Red Hat OpenShift Pipelines Operator 控制的部署副本数。在这个发行版本中,如果最终用户或集群代理更改了计数,Red Hat OpenShift Pipelines Operator 不会重置管理的部署的副本计数。但是,升级 Red Hat OpenShift Pipelines Operator 时会重置副本。
-
现在,根据
TektonConfig自定义资源中指定的节点选择器和容限(toleration)限制将把tknCLI 的 pod 调度到节点上。
1.9.6. Red Hat OpenShift Pipelines 正式发行版本 1.6.2 发行注记 复制链接链接已复制到粘贴板!
1.9.6.1. 已知问题 复制链接链接已复制到粘贴板!
-
当您创建新项目时,
pipeline服务帐户的创建会被延迟,并删除现有集群任务和管道模板需要超过 10 分钟。
1.9.6.2. 修复的问题 复制链接链接已复制到粘贴板!
-
在此次更新之前,在从旧版本升级到 Red Hat OpenShift Pipelines 1.6.1 后,会为管道创建多个 Tekton 安装程序集实例。在这个版本中,Operator 可确保升级后每个类型为
TektonInstallerSet的一个实例都存在。 - 在此次更新之前,Operator 中的所有协调程序都使用组件版本在升级到旧版本的 Red Hat OpenShift Pipelines 1.6.1 期间决定资源重新创建。因此,这些资源不会被重新创建,其组件版本没有在升级过程中改变。在这个版本中,Operator 使用 Operator 版本而不是组件版本来决定升级过程中的资源重新创建。
- 在此次更新之前,升级后,集群中缺少管道 Webhook 服务。这是因为配置映射上的升级死锁。在这个版本中,如果集群中不存在配置映射,添加了一个机制来禁用 Webhook 验证。因此,在升级后管道 Webhook 服务会保留在集群中。
- 在此次更新之前,在任何配置更改到命名空间后,自动运行操作的 cron 作业会被重新创建。在这个版本中,只有在命名空间中有相关注解改变时,才会重新创建 auto-pruning 的 cron 任务。
Tekton Pipelines 的上游版本被修订为
v0.28.3,它包括以下修复:-
修复
PipelineRun或TaskRun对象,以允许进行标签或注解。 对于隐式参数:
-
不要将
PipelineSpec参数应用到TaskRefs对象。 -
禁用
Pipeline对象的隐式参数行为。
-
不要将
-
修复
1.9.7. Red Hat OpenShift Pipelines 正式发布 1.6.3 发行注记 复制链接链接已复制到粘贴板!
1.9.7.1. 修复的问题 复制链接链接已复制到粘贴板!
在此次更新之前,Red Hat OpenShift Pipelines Operator 从组件(如 Pipelines 和 Triggers)中安装 Pod 安全策略。但是,作为组件的一部分提供的 Pod 安全策略在以前的版本中已被弃用。在这个版本中,Operator 会停止从组件安装 Pod 安全策略。因此,以下升级路径会受到影响:
- 从 OpenShift Pipelines 1.6.1 或 1.6.2 升级到 OpenShift Pipelines 1.6.3 会删除 Pod 安全策略,包括 Pipelines 和 Triggers 组件中的 Pod 安全策略。
从 OpenShift Pipelines 1.5.x 升级到 1.6.3 会保留从组件安装的 Pod 安全策略。作为集群管理员,您可以手动删除它们。
注意当您升级到将来的版本时,Red Hat OpenShift Pipelines Operator 会自动删除所有过时的 Pod 安全策略。
- 在此次更新之前,只有集群管理员才能访问 OpenShift Container Platform 控制台中的管道指标。在这个版本中,与其他集群角色的用户也可以访问管道指标。
- 在此次更新之前,带有 OpenShift Pipelines Operator 的基于角色的访问控制 (RBAC) 问题会导致升级或安装组件的问题。这个版本提高了安装各种 Red Hat OpenShift Pipelines 组件的可靠性和一致性。
-
在此次更新之前,在
TektonConfigCR 中将clusterTasks和pipelineTemplates字段设置为false时,会降低删除集群任务和管道模板。这个版本提高了 Tekton 资源(如集群任务和管道模板)的生命周期管理速度。
1.9.8. Red Hat OpenShift Pipelines 正式发布 1.6.4 发行注记 复制链接链接已复制到粘贴板!
1.9.8.1. 已知问题 复制链接链接已复制到粘贴板!
从 Red Hat OpenShift Pipelines 1.5.2 升级到 1.6.4 后,访问事件监听程序路由会返回
503错误。临时解决方案:修改事件监听器路由的 YAML 文件中的目标端口。
为相关命名空间提取路由名称。
oc get route -n <namespace>
$ oc get route -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑路由以修改
targetPort字段的值。oc edit route -n <namespace> <el-route_name>
$ oc edit route -n <namespace> <el-route_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例:现有事件监听程序路由
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例:修改事件监听程序路由
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.9.8.2. 修复的问题 复制链接链接已复制到粘贴板!
-
在此次更新之前,如果任何命名空间处于
Terminating状态,Operator 会在创建 RBAC 资源时失败。在这个版本中,Operator 忽略了命名空间处于Terminating状态,并创建 RBAC 资源。 - 在此次更新之前,该任务会在没有注解指定关联的 Tekton 控制器发行版本而运行失败或重启。在这个版本中,包含适当的注解会被自动运行,没有失败或重启的任务。