1.10. Red Hat OpenShift Pipelines 正式发行 1.7 发行注记
在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA)1.7 包括在 OpenShift Container Platform 4.9, 4.10, 和 4.11 中。
1.10.1. 新功能 复制链接链接已复制到粘贴板!
除了包括修复和稳定性改进的信息外,以下小节突出介绍了 Red Hat OpenShift Pipelines 1.7 中的新内容。
1.10.1.1. Pipelines 复制链接链接已复制到粘贴板!
在这个版本中,
pipelines-<version>是安装 Red Hat OpenShift Pipelines Operator 的默认频道。例如,安装 OpenShift Pipelines Operator 版本1.7的默认频道是pipelines-1.7。集群管理员还可使用latest频道来安装 Operator 的最新稳定版本。注意preview和stable频道将在以后的版本中被弃用并删除。当您在用户命名空间中运行命令时,您的容器以
root身份运行(用户 ID0),但对主机具有用户特权。在这个版本中,要在用户命名空间中运行 pod,您必须传递 CRI-O 期望的注解。-
要为所有用户添加这些注解,请运行
oc edit clustertask buildah命令并编辑buildah集群任务。 - 要将注解添加到特定命名空间,请将集群任务导出为该命名空间的任务。
-
要为所有用户添加这些注解,请运行
在此次更新之前,如果没有满足某些条件,则
when表达式会跳过一个Task对象及其依赖的任务。在这个版本中,您可以限制when表达式只保护Task对象,而不是它的依赖项任务。要启用此更新,请在TektonConfigCRD 中将scope-when-expressions-to-task标志设置为true。注意scope-when-expressions-to-task标记已弃用,并将在以后的发行版本中删除。作为 OpenShift Pipelines 的最佳实践,使用when表达式会被限制为只保护任务-
在这个版本中,您可以在任务中的工作区的
subPath字段中使用变量替换。 在这个版本中,您可以使用带单引号或双引号的 bracket 表示法引用参数和结果。在此次更新之前,只能使用点表示法。例如,现在以下内容等同于:
$(param.myparam),$(param['myparam']), and$(param["myparam"]).您可以使用单引号或双引号括起包含有问题的字符的参数名称,如
"."。例如,$(param['my.param'])和$(param["my.param"])。
-
在这个版本中,您可以在任务定义中包含步骤的
onError参数,而无需启用enable-api-fields标志。
1.10.1.2. 触发器 复制链接链接已复制到粘贴板!
-
在这个版本中,
feature-flag-triggers配置映射具有一个新的字段labels-exclusion-pattern。您可以将此字段的值设置为正则表达式(regex)模式。控制器过滤出与事件监听器从事件监听器传播到为事件监听器创建的资源匹配的正则表达式模式的标签。 -
在这个版本中,
TriggerGroups字段添加到EventListener规格中。使用此字段,您可以在选择和运行一组触发器前指定要运行的拦截器。要启用此功能,在TektonConfig自定义资源定义的pipeline部分,您必须将enable-api-fields字段设置为alpha。 -
在这个版本中,
Trigger资源支持TriggerTemplate模板定义的自定义运行。 -
在这个版本中,Triggers 支持从
EventListenerpod 发送 Kubernetes 事件。 -
在这个版本中,以下对象提供了计数指标:
ClusterInteceptor、EventListener、TriggerTemplate、ClusterTriggerBinding和TriggerBinding。 -
在这个版本中,
ServicePort规格添加到 Kubernetes 资源。您可以使用此规格来修改公开事件监听器服务的端口。默认端口为8080。 -
在这个版本中,您可以使用
EventListener规格中的targetURI字段在触发器处理过程中发送云事件。要启用此功能,在TektonConfig自定义资源定义的pipeline部分,您必须将enable-api-fields字段设置为alpha。 -
在这个版本中,
tekton-triggers-eventlistener-roles对象除了已存在的create动词外,现在还添加了一个patch动词。 -
在这个版本中,
securityContext.runAsUser参数会从事件监听器部署中删除。
1.10.1.3. CLI 复制链接链接已复制到粘贴板!
在这个版本中,
tkn [pipeline | pipelinerun] export命令会导出一个管道或管道作为 YAML 文件运行。例如:在
openshift-pipelines命名空间中导出名为test_pipeline的管道:tkn pipeline export test_pipeline -n openshift-pipelines
$ tkn pipeline export test_pipeline -n openshift-pipelinesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
openshift-pipelines命名空间中导出名为test_pipeline_run的管道运行:tkn pipelinerun export test_pipeline_run -n openshift-pipelines
$ tkn pipelinerun export test_pipeline_run -n openshift-pipelinesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
在这个版本中,
--grace选项添加到tkn pipelinerun cancel中。使用--grace选项终止管道运行,而不是强制终止。要启用此功能,在TektonConfig自定义资源定义的pipeline部分,您必须将enable-api-fields字段设置为alpha。 在这个版本中,在
tkn version命令的输出中添加了 Operator 和链版本。重要Tekton 链是技术预览功能。
-
在这个版本中,当取消管道运行时,
tkn pipelinerun describe命令显示所有取消的任务运行。在此修复之前,仅显示一个任务运行。 -
在这个版本中,您可以在运行
tkn [t | p | p | ct] start命令时跳过使用--skip-optional-workspace标记时,为可选工作区提供请求规格。您也可以在以交互模式运行时跳过它。 在这个版本中,您可以使用
tkn chain命令管理 Tekton 链。您还可以使用--chains-namespace选项指定要安装 Tekton 链的命名空间。重要Tekton 链是技术预览功能。
1.10.1.4. Operator 复制链接链接已复制到粘贴板!
在这个版本中,您可以使用 Red Hat OpenShift Pipelines Operator 来安装和部署 Tekton Hub 和 Tekton 链。
重要集群中的 Tekton Hub 链和部署是技术预览功能。
在这个版本中,您可以查找并使用 Pipelines 作为代码(PAC)作为附加选项。
重要作为代码,管道是技术预览功能。
在这个版本中,您可以通过将
communityClusterTasks参数设置为false来禁用社区集群任务的安装。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在这个版本中,您可以通过 Developer 视角禁用 Tekton Hub 集成,方法是将
TektonConfig自定义资源中的enable-devconsole-integration标志设置为false。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在这个版本中,
operator-config.yaml配置映射启用tkn version命令的输出来显示 Operator 版本。 -
在这个版本中,
argocd-task-sync-and-wait任务的版本被修改为v0.2。 -
对于这个版本的
TektonConfigCRD ,oc get tektonconfig命令会显示 OPerator 版本。 - 在这个版本中,服务监控器添加到 Triggers 指标中。
1.10.1.5. Hub 复制链接链接已复制到粘贴板!
在集群中部署 Tekton Hub 是一个技术预览功能。
Tekton Hub 可帮助您发现、搜索和共享 CI/CD 工作流可重复使用的任务和管道。Tekton Hub 的一个公共实例位于 hub.tekton.dev 中。
集群管理员可以使用 Red Hat OpenShift Pipelines 1.7 推出,集群管理员也可以在企业集群中安装并部署 Tekton Hub 的自定义实例。您可以使用特定于您的机构的可重复使用的任务和管道来策展目录。
1.10.1.6. 链 复制链接链接已复制到粘贴板!
Tekton 链是技术预览功能。
Tekton Chains 是一个 Kubernetes 自定义资源定义(CRD)控制器。您可以使用它来管理使用 Red Hat OpenShift Pipelines 创建的任务和管道的供应链安全。
默认情况下,Tekton Chains 会监控 OpenShift Container Platform 集群中运行的任务。链会对完成的任务运行进行快照,将其转换为一个或多个标准有效负载格式,并签署并存储所有工件。
Tekton Chains 支持以下功能:
-
您可以使用加密密钥类型和服务(如
cosign)为任务运行、任务运行结果和 OCI registry 镜像签名。 -
您可以使用"测试"格式,如
in-toto。 - 您可以使用 OCI 存储库作为存储后端安全存储签名和签名工件。
1.10.1.7. 管道作为代码(PAC) 复制链接链接已复制到粘贴板!
作为代码,管道是技术预览功能。
使用 Pipelines 作为 Code,具有所需权限的集群管理员和用户可以将管道模板定义为源代码 Git 存储库的一部分。当由源代码推送或配置的 Git 存储库的拉取请求触发时,该功能将运行管道和报告状态。
作为代码的管道支持以下功能:
- 拉取请求状态。在迭代拉取请求时,拉取请求的状态和控制会在托管 Git 存储库的平台上进行。
- GitHub 检查 API 来设置管道运行的状态,包括重新检查。
- GitHub 拉取请求和提交事件。
-
在注释中拉取请求操作,如
/retest。 - Git 事件过滤,以及每个事件的独立管道。
- OpenShift Pipelines 中的自动任务解析用于本地任务、Tekton Hub 和远程 URL。
- 使用 GitHub blob 和对象 API 来检索配置。
-
通过 GitHub 机构或使用 Prow 风格的
OWNER文件访问控制列表(ACL) -
tknCLI 工具的tkn pac插件,您可以使用它们管理 Pipelines 作为代码软件仓库和 bootstrap。 - 支持 GitHub 应用程序、GitHub Webhook、Bitbucket 服务器和 Bitbucket 云。
1.10.2. 已弃用的功能 复制链接链接已复制到粘贴板!
-
中断更改:此更新从
TektonConfig自定义资源(CR)中删除disable-working-directory-overwrite和disable-home-env-overwrite字段。因此,TektonConfigCR 不再自动设置$HOME环境变量和workingDir参数。您仍然可以使用Task自定义资源定义(CRD)中的env和workingDir字段来设置$HOME环境变量和workingDir参数。
-
Conditions自定义资源定义(CRD)类型已弃用,计划在以后的发行版本中删除。反之,使用推荐的when表达式。
-
有问题的更改:
Triggers资源验证模板,并在没有指定EventListener和TriggerBinding值时生成错误。
1.10.3. 已知问题 复制链接链接已复制到粘贴板!
当您运行 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 安装任务前,请验证是否可以在这些平台上执行任务。要检查ppc64le和s390x是否列在任务信息的"Platforms"部分,您可以运行以下命令:tkn hub info task <name>-
在 IBM Power Systems、IBM Z 和 LinuxONE 中,不支持
s2i-dotnet集群任务。 您无法使用
nodejs:14-ubi8-minimal镜像流,因为这样做会生成以下错误:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
隐式参数映射会错误地将参数从顶级
Pipeline或PipelineRun定义传递给taskRef任务。映射应该只在顶层资源中使用任务进行,并带有非线taskSpec规格。这个问题只通过将TektonConfig自定义资源定义的pipeline部分中的enable-api-fields字段设置为alpha来影响启用了这个功能的集群。
1.10.4. 修复的问题 复制链接链接已复制到粘贴板!
-
在这个版本中,如果
Pipeline和PipelineRun对象定义中存在labels和annotations的元数据,PipelineRun类型中的值会具有优先权。您可以观察Task和TaskRun对象的类似行为。 -
在这个版本中,如果
timeout.tasks字段或timeout.finally字段设置为0,则timeout.pipeline也被设置为0。 -
在这个版本中,
-xset 标记已从不使用 shebang 的脚本中删除。在这个版本中,减少了脚本执行的潜在数据泄漏。 -
在这个版本中,Git 凭证中的用户名中存在的任何反斜杠字符都会被转义,并带有
.gitconfig文件中的额外反斜杠。
-
在这个版本中,
EventListener对象的finalizer属性不需要清理日志记录和配置映射。 - 在这个版本中,与事件监听器服务器关联的默认 HTTP 客户端会被删除,并添加自定义 HTTP 客户端。因此,超时有所改进。
- 在这个版本中,Triggers 集群角色现在可以处理所有者引用。
- 在这个版本中,当多个拦截器返回扩展时,事件监听器中的竞争条件不会发生。
-
在这个版本中,
tkn pr delete命令不会删除使用ignore-running标记运行的管道。
- 在这个版本中,当您修改任何附加组件参数时,Operator pod 不会继续重启。
-
在这个版本中,如果订阅和配置自定义资源中没有配置,
tkn serveCLI pod 会被调度到 infra 节点上。 - 在这个版本中,在升级过程中不会删除指定版本的集群任务。
1.10.5. Red Hat OpenShift Pipelines 正式发行 1.7.1 发行注记 复制链接链接已复制到粘贴板!
在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA)1.7.1 包括在 OpenShift Container Platform 4.9, 4.10, 和 4.11 中。
1.10.5.1. 修复的问题 复制链接链接已复制到粘贴板!
- 在此次更新之前,升级 Red Hat OpenShift Pipelines Operator 会删除与 Tekton Hub 关联的数据库中的数据并安装新的数据库。在这个版本中,Operator 升级会保留数据。
- 在此次更新之前,只有集群管理员才能访问 OpenShift Container Platform 控制台中的管道指标。在这个版本中,与其他集群角色的用户也可以访问管道指标。
-
在此次更新之前,管道对包含发出大型终止消息的任务的管道运行失败。管道运行失败,因为 pod 中所有容器的终止信息总数不能超过 12 KB。在这个版本中,使用同一镜像的
place-tools和step-init初始化容器会合并,以减少每个任务的 pod 中运行的容器数量。该解决方案可减少运行失败管道的几率,这可尽量减少在任务 pod 中运行的容器数量。但是,它不会删除终止消息的最大允许大小限制。 -
在此次更新之前,直接从 Tekton Hub web 控制台访问资源 URL 会导致 Nginx
404错误。在这个版本中,Tekton Hub web 控制台镜像已被修复,以便直接从 Tekton Hub web 控制台访问资源 URL。 - 在此次更新之前,对于每个命名空间,资源修剪器作业都会创建一个单独的容器来修剪资源。在这个版本中,资源修剪器作业作为一个容器中的一个循环运行所有命名空间的命令。
1.10.6. Red Hat OpenShift Pipelines 正式发布 1.7.2 发行注记 复制链接链接已复制到粘贴板!
在这个版本中,Red Hat OpenShift Pipelines General Availability (GA)1.7.2 包括在 OpenShift Container Platform 4.9、4.10 及以后的版本中。
1.10.6.1. 已知问题 复制链接链接已复制到粘贴板!
-
在升级 Red Hat OpenShift Pipelines Operator 后,
openshift-pipelines命名空间中的 Tekton Chains 的chains-config配置映射会自动重置为默认。目前,这个问题还没有临时解决方案。
1.10.6.2. 修复的问题 复制链接链接已复制到粘贴板!
-
在此次更新之前,当将
init用作第一个参数并后跟两个或更多个参数时,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 roleReferror 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 roleRefCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在这个版本中,Red Hat OpenShift Pipelines Operator 安装有不同的角色绑定命名空间,以避免与其他 Operator 安装冲突。
在此次更新之前,升级 Operator 会触发 Tekton Chains 的
signed-secretssecret 键重置为默认值。在这个版本中,在升级 Operator 后自定义 secret 密钥会保留。注意升级到 Red Hat OpenShift Pipelines 1.7.2 会重置密钥。但是,当您升级到将来的版本时,会需要保留该密钥。
在此次更新之前,所有 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)"
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)"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在这个版本中,
pipeline-scc安全性上下文约束 (SCC) 与Buildah和S2I集群任务所需的SETFCAP功能兼容。因此,Buildah和S2I构建任务可以成功运行。要成功运行
Buildah集群任务和S2I构建任务,适用于使用各种语言和框架编写的应用程序,添加以下适当的steps对象(如build和push)的代码片段。securityContext: capabilities: add: ["SETFCAP"]securityContext: capabilities: add: ["SETFCAP"]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.10.7. Red Hat OpenShift Pipelines 正式发布 1.7.3 发行注记 复制链接链接已复制到粘贴板!
在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA)1.7.3 包括在 OpenShift Container Platform 4.9, 4.10, 和 4.11 中。
1.10.7.1. 修复的问题 复制链接链接已复制到粘贴板!
-
在此次更新之前,如果任何命名空间处于
Terminating状态,Operator 会在创建 RBAC 资源时失败。在这个版本中,Operator 忽略了命名空间处于Terminating状态,并创建 RBAC 资源。 -
在以前的版本中,升级 Red Hat OpenShift Pipelines Operator 会导致重新创建
pipeline服务帐户,这意味着链接到服务帐户的 secret 会丢失。在这个版本中解决了这个问题。在升级过程中,Operator 不再重新创建pipeline服务帐户。因此,已附加到pipeline服务帐户的 secret 在升级后会保留,资源(任务和管道)可以继续正常工作。