1.2. Red Hat OpenShift Pipelines 正式发布 1.14 发行注记
在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA) 1.14 包括在 OpenShift Container Platform 4.12 及更新的版本中。
1.2.1. 新功能 复制链接链接已复制到粘贴板!
除了包括修复和稳定性改进的信息外,以下小节突出介绍了 Red Hat OpenShift Pipelines 1.14 中的新内容:
1.2.1.1. Pipelines 复制链接链接已复制到粘贴板!
-
在这个版本中,您可以使用任务或管道的参数或上一任务的结果指定要绑定到工作区的资源名称,如
name: $(params.name)-configmap。 -
在这个版本中,OpenShift Pipelines 支持在管道内构建过程中为 Red Hat Enterprise Linux 使用现有权利。内置的
buildah集群任务现在可以使用这些权限。 -
在这个版本中,如果管道运行或任务运行使用
pipeline服务帐户,您可以在管道或任务中使用 CSI 卷类型。 -
在这个版本中,您可以使用
StepAction自定义资源(CR)来定义您可以从任意数量的任务调用的可重复使用的脚本操作。要使用这个功能,您必须将TektonConfigCR 中的pipeline.options.configMaps.feature-flags.data.enable-step-actionsspec 设置为true。 - 在这个版本中,对象参数和数组结果会被默认启用。您不需要设置任何标志来使用它们。
在这个版本中,您可以使用 HTTP 解析器从 HTTP URL 获取管道或任务,如下例所示:
任务用法示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 管道使用示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在这个版本中,您可以使用 enum 声明来限制您可以提供管道或任务参数的值,如下例所示。要使用这个功能,您必须将
TektonConfigCR 中的pipeline.options.configMaps.feature-flags.data.enable-param-enumspec 设置为true。用法示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在这个版本中,当使用带有经过身份验证的源控制管理(SCM) API 的 Git 解析器时,您可以覆盖您配置的默认令牌、SCM 类型和服务器 URL。请参见以下示例:
用法示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在这个版本中,您可以在 OpenShift Pipelines 在执行任务运行时创建的 pod 中定义容器和 init-containers 的默认资源要求。使用
TektonConfigCR 中的pipeline.options.configMaps.config-defaults.default-container-resource-requirementsspec 来设置这些要求。您可以为所有容器设置默认值,以及按名称或前缀为特定容器设置默认值,如sidecar KafkaUser。
1.2.1.2. Operator 复制链接链接已复制到粘贴板!
-
在这个版本中,OpenShift Pipelines 支持 Operator 代理 Webhook 的 Pod 横向自动扩展。如果运行 Operator 代理 Webhook 的 pod 达到 85% CPU 使用率,则自动扩展器会创建 pod 的另一个副本。如果要在启动时为 Operator 代理 Webhook 使用多个副本,您必须在
TektonConfigCR 的options.horizontalPodAutoscalersspec 中配置这个数字。 - 在这个版本中,对 OpenShift Pipelines 的几个组件的内部领导选举机制有所改进。Operator 控制器、Operator Webhook、代理 Webhook、Pipelines as Code Webhook、Pipelines as Code Webhook 和 Tekton Chains 控制器现在使用单独的领导选举 ConfigMap。领导选举机制会影响组件处理请求的副本。
- 在此次更新之前,当扩展 OpenShift Pipelines 控制器的副本数时,需要手动干预才能启用新副本;即,您需要在领导选举机制中删除租期。在这个版本中,当扩展 OpenShift Pipelines 控制器的副本数时,领导选举机制会自动包括新副本,因此新的副本可以处理信息。
在这个版本中,您可以选择在
TektonConfigCR 的spec.pipelinespec 中设置以下标记:-
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.2.1.3. 触发器 复制链接链接已复制到粘贴板!
-
在这个版本中,当为 Triggers 拦截器指定 CEL 表达式时,您可以使用
函数访问 JSON 阵列中的值。第一个和最后一个 在这个版本中,当为 Triggers 拦截器指定 CEL 表达式时,您可以使用
转换函数来简化正则表达式的使用将字符替换为指定字符串,如下例所示:转换函数的使用示例".translate("[^a-z0-9]+", "ABC")".translate("[^a-z0-9]+", "ABC")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入字符串示例
This is $an Invalid5String
This is $an Invalid5StringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 结果字符串示例
ABChisABCisABCanABCnvalid5ABCtring
ABChisABCisABCanABCnvalid5ABCtringCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.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 控制台的 Developer 或 Administrator 视角访问,它引入了一个 Vulnerabilities 行。这个新行提供了识别的漏洞的可视化表示,按严重性分类(关键、高、中等和低)。要启用此功能,请将任务和关联的管道更新为指定格式。另外,启用后,您还可以通过管道运行列表视图页面中的 Vulnerabilities 列访问识别的漏洞的信息。 -
在这个版本中,
PipelineRun详情页面可从 web 控制台的 Developer 或 Administrator 视角访问,提供了一个下载或查看软件 Bill 的 Materials (SBOMs)以增强透明度和控制的选项。要启用此功能,请将任务和关联的管道更新为指定格式。
1.2.1.5. CLI 复制链接链接已复制到粘贴板!
-
在这个版本中,如果安装了这个组件,
tkn version命令会显示 Tekton Hub 组件的版本。 -
在这个版本中,您可以使用
tkn customrun list命令列出自定义运行。 -
在这个版本中,当使用
tkn task start命令时,您可以在-i或--image参数中为 OCI 镜像指定一个 URL。命令从镜像拉取(pull)镜像并运行指定的任务。 -
在这个版本中,op
c version命令显示 Tekton Results CLI 组件的版本,这是opc工具的一部分。
1.2.1.6. Pipelines 作为代码(Pipelines as Code) 复制链接链接已复制到粘贴板!
-
在这个版本中,当使用 Pipelines 作为代码时,您可以在管道运行中指定
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 上的
/metrics路径访问指标。 在这个版本中,当指定使用带有
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.2.1.7. Tekton Chains 复制链接链接已复制到粘贴板!
-
在这个版本中,Tekton Chains 支持 API 版本的
v1值。 -
在这个版本中,您可以在
TektonConfigCR 中设置artifacts.pipelinerun.enable-deep-inspection参数。当此参数为true时,Tekton Chains 会记录管道运行的子任务运行的结果。当此参数为false时,Tekton Chains 会记录管道运行的结果,而不是其子任务运行。 -
在这个版本中,您可以在
TektonConfigCR 中设置builddefinition.buildtype参数,为 in-toto attestation 设置构建类型。当此参数是https://tekton.dev/chains/v2/slsa时,Tekton Chains 记录会严格符合 SLSA v1.0 规格。当此参数是https://tekton.dev/chains/v2/slsa-tekton时,Tekton Chains 记录带有额外的信息,如每个任务运行和管道运行中的标签和注解,并在解析的Dependencies下添加每个任务。 -
在此次更新之前,当 Tekton 链配置为使用
gcs存储时,Tekton 链不会记录管道运行信息。在这个版本中,Tekton Chains 会记录带有此存储的管道运行信息。 -
在这个版本中,性能指标可用于 Tekton 链。要访问指标,请公开
tekton-chains-metrics服务,然后使用此服务上的/metrics路径,端口 9090。这些指标也可以在 OpenShift Container Platform 监控堆栈中提供。 -
在这个版本中,Tekton Chains 在记录管道运行和使用
v1版本值的任务运行时使用新的v2alpha3记录格式版本。 -
在这个版本中,Tekton Chains 使用管道运行的
v1版本,任务在内部运行格式。
1.2.1.8. Tekton Results 复制链接链接已复制到粘贴板!
- 在这个版本中,如果安装了 Tekton Results,Tekton Results 会记录使用 Pipelines as Code 启动的管道运行的摘要和记录数据。
- 在这个版本中,Tekton Results 为管道或任务提供最多 100 MB 的日志信息。
-
在这个版本中,任何经过身份验证的用户都可以查看 openshift-pipelines 命名空间中的
tekton-results-api-service路由,以使用 REST API 与 Tekton Results 交互。 - 在这个版本中,Tekton Results API 包括一个新的端点,用于获取概述和聚合记录列表。
-
在这个版本中,Tekton Results API 的
GetLog端点会返回 raw 字节,并带有text/plain内容类型。 在这个版本中,您可以选择在
TektonResultCR 的options.configMaps.tekton-results-api-config.data.config.DB_SSLROOTCERTspec 中指定自定义 CA 证书。在这种情况下,Tekton Results 需要 SSL 连接到数据库服务器,并将这个证书用于连接。如果要使用此设置,在配置 Tekton 结果时,还必须将备用 spec 用于其他配置参数,如下表所示。常规参数规格和备用参数规格都位于TektonResultCR 中。Expand 表 1.2. Tekton Results 的替代配置参数 常规参数规格 备用参数 spec logs_apioptions.configMaps.tekton-results-api-config.data.config.LOGS_APIlog_leveloptions.configMaps.tekton-results-api-config.data.config.LOG_LEVELdb_portoptions.configMaps.tekton-results-api-config.data.config.DB_PORTdb_hostoptions.configMaps.tekton-results-api-config.data.config.DB_HOSTlogs_pathoptions.configMaps.tekton-results-api-config.data.config.LOGS_PATHlogs_typeoptions.configMaps.tekton-results-api-config.data.config.LOGS_TYPElogs_buffer_sizeoptions.configMaps.tekton-results-api-config.data.config.LOGS_BUFFER_SIZEauth_disableoptions.configMaps.tekton-results-api-config.data.config.AUTH_DISABLEdb_enable_auto_migrationoptions.configMaps.tekton-results-api-config.data.config.DB_ENABLE_AUTO_MIGRATIONserver_portoptions.configMaps.tekton-results-api-config.data.config.SERVER_PORTprometheus_portoptions.configMaps.tekton-results-api-config.data.config.PROMETHEUS_PORTgcs_bucket_nameoptions.configMaps.tekton-results-api-config.data.config.GCS_BUCKET_NAME对于此表中未列出的配置参数,请使用常规规格,如文档中所述。
重要只有在您需要使用
DB_SSLROOTCERT设置时,才使用 alternate 参数规格。
1.2.2. 可能会造成问题的更改 复制链接链接已复制到粘贴板!
-
在这个版本中,在使用 Bundles 解析器时,您无法再指定
serviceAccount参数。相反,您可以指定secret参数,以提供包含 registry 身份验证信息的 secret 名称。您必须更新使用 Bundles 解析器的serviceAccount参数的任何任务或管道,以使用secret参数。TektonConfigCR 中的pipeline.bundles-resolver-config.default-service-accountspec 不再被支持。
1.2.3. 已知问题 复制链接链接已复制到粘贴板!
-
tkn pipeline logs -f命令不会显示管道中定义的任务日志,在管道进行时带有retries: X参数。
1.2.4. 修复的问题 复制链接链接已复制到粘贴板!
- 在此次更新之前,当使用 GitHub Enterprise 时,传入的 Webhook 无法正常工作。在这个版本中,您可以将传入的 Webhook 与 GitHub Enterprise 搭配使用。
- 在此次更新之前,如果任务运行或管道运行禁用超时,OpenShift Pipelines 会在任务运行或管道运行上运行一系列快速协调,从而降低控制器的性能。在这个版本中,控制器协调任务运行和管道运行,并通常会禁用超时。
-
在此次更新之前,如果您使用自定义命名空间安装 Tekton Hub,安装会删除
openshift-pipelines命名空间,删除 OpenShift Pipelines 安装。在这个版本中,您可以使用自定义命名空间安装 Tekton Hub,OpenShift Pipelines 安装不受影响 -
在此次更新之前,当将 Pipelines as Code 与 GitLab 搭配使用时,如果用户使用合并请求(如
/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')"
"data_type==TASK_RUN && (data.spec.pipelineSpec.tasks[0].name=='hello'||data.metadata.name=='hello')"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在此次更新之前,当管道运行被取消时,Tekton Results 不会记录此管道运行的日志。在这个版本中,Tekton Results 会记录取消的管道运行的日志。
1.2.5. Red Hat OpenShift Pipelines 正式发布 1.14.1 发行注记 复制链接链接已复制到粘贴板!
在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA) 1.14.1 包括在 OpenShift Container Platform 4.12 及更新的版本中。
1.2.5.1. 修复的问题 复制链接链接已复制到粘贴板!
-
在此次更新之前,当使用配置了不同 GitHub 应用程序的多个 Pipelines as Code 控制器时,Pipelines as Code watcher 组件会崩溃并带有
nilerror信息。在这个版本中,Pipelines 作为代码功能通常带有配置了不同 GitHub 应用程序的多个控制器。
1.2.6. Red Hat OpenShift Pipelines 正式发布 1.14.2 发行注记 复制链接链接已复制到粘贴板!
在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA) 1.14.2 包括在 OpenShift Container Platform 4.12 及更新的版本中。
1.2.6.1. 修复的问题 复制链接链接已复制到粘贴板!
- 在此次更新之前,当使用 Pipelines as Code 启动管道运行时,Tekton Results 不会存储有关此管道运行的信息。因此,Web 控制台插件不会在执行统计显示中包含管道运行。在这个版本中,Tekton Results 存储有关 Pipelines as Code 管道运行的信息,这些管道运行包含在执行统计显示中。
-
在此次更新之前,当您同时启动使用 Pipelines 作为代码运行的许多管道时,这些管道运行会包括
max-keep-run注解,Pipelines as Code watcher 组件无法处理一些待处理的管道运行,它们会一直处于待处理状态。在这个版本中,Pipelines as Code 管道运行会被正确处理。
1.2.7. Red Hat OpenShift Pipelines 正式发布 1.14.3 发行注记 复制链接链接已复制到粘贴板!
在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA) 1.14.3 包括在 OpenShift Container Platform 4.12 及更新的版本中。
1.2.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.2.8. Red Hat OpenShift Pipelines 正式发布 1.14.4 发行注记 复制链接链接已复制到粘贴板!
在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA) 1.14.4 包括在 OpenShift Container Platform 4.12 及更新的版本中。
1.2.8.1. 修复的问题 复制链接链接已复制到粘贴板!
-
在此次更新之前,可以记录引用
tekton-pipelines-webhook.ConversionWebhook的大量错误消息。在这个版本中,ClusterTask和StepAction自定义资源定义(CRD)的不必要的转换 Webhook 配置已被删除,这些错误消息将不再被记录。 -
在此次更新之前,一些配置设置使用
TektonConfig自定义资源(CR)中的options部分无法正常工作,因为如果在 TektonConfig CR 中的options部分和TektonConfigCR 中配置了相同的设置,则会出现竞争条件。在这个版本中,设置可以正常工作。 -
在此次更新之前,OpenShift Pipelines 控制台插件 pod 不会移到使用
nodeSelector,tolerations, 和priorityClassName设置指定的节点。在这个版本中,OpenShift Pipelines 插件 pod 移到正确的节点。 - 在此次更新之前,Operator 控制器日志中会记录一些错误消息,而无需正确的上下文信息。在这个版本中,错误消息包含所需信息。
-
在此次更新之前,如果任何命名空间中缺少或删除
pipelines-scc-rolebindingrolebinding,OpenShift Pipelines operator 控制器无法正确在新命名空间中创建默认资源。在这个版本中,控制器可以正常工作。 -
在此次更新之前,如果您使用
TektonConfigCR 中的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.2.9. Red Hat OpenShift Pipelines 正式发布 1.14.5 发行注记 复制链接链接已复制到粘贴板!
在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA) 1.14.5 包括在 OpenShift Container Platform 4.12 及更新的版本中。
1.2.9.1. 修复的问题 复制链接链接已复制到粘贴板!
- 在此次更新之前,当您使用 Web 控制台并在概览页面中点管道时,管道详情页面不包含管道中任务的信息。在这个版本中,当您在概览页面中点管道时,管道详情页面包含所需的信息。
-
在此次更新之前,当将 Tekton 链配置为通过在
TektonConfigCR 中设置空artifacts.oci.storage值来禁用 OCI 工件时,配置无法正常工作,Tekton Chains 会尝试存储工件并在chains.tekton.dev/signed注解中记录失败。在这个版本中,当您在TektonConfigCR 中设置空artifacts.oci.storage值时,Tekton Chains 不会尝试存储 OCI 工件。 -
在此次更新之前,当您使用工作区信息,如
$(workspaces.source.path),在管道或任务中没有定义工作区时,OpenShift Pipelines 不会报告错误。在这个版本中,OpenShift Pipelines 会报告一个错误,且不会运行管道或任务。
1.2.10. Red Hat OpenShift Pipelines 正式发布 1.14.6 发行注记 复制链接链接已复制到粘贴板!
在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA) 1.14.6 包括在 OpenShift Container Platform 4.12 及更新的版本中。
1.2.10.1. 新功能 复制链接链接已复制到粘贴板!
- 在这个版本中,Red Hat OpenShift Pipelines 版本 1.14.6 支持 OpenShift Container Platform 版本 4.12、4.13、4.14、4.15、4.16、4.17 和 4.18。
1.2.10.2. 修复的问题 复制链接链接已复制到粘贴板!
-
在此次更新之前,当您将参数值传递给管道或任务,并且值包含完整和简短参考格式的多个变量时,例如
$(tasks.task-name.results.variable1)+ $(variable2),OpenShift Pipelines 没有正确解释值。管道运行或任务运行可能会停止执行,Pipelines 控制器可能会报告运行时错误并停止工作。在这个版本中,OpenShift Pipelines 会正确解释值,管道运行或任务运行完成。