1.3. Red Hat OpenShift Pipelines 正式发布 1.16 发行注记
在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA) 1.16 包括在 OpenShift Container Platform 4.15 及更新的版本中。
1.3.1. 新功能
除了包括修复和稳定性改进的信息外,以下小节突出介绍了 Red Hat OpenShift Pipelines 1.16 中的新内容:
1.3.1.1. Pipelines
在这个版本中,您可以为管道控制器配置重新同步周期。对于每个重新同步周期,控制器会协调所有管道运行和任务运行,而不考虑事件。默认重新同步周期为 10 小时。如果您有大量管道运行和任务运行,每 10 小时进行完全协调可能会消耗太多资源。在这种情况下,您可以配置较长的重新同步周期。
配置重新同步周期为 24 小时的示例
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: pipeline: options: deployments: tekton-pipelines-controller: spec: template: spec: containers: - name: tekton-pipelines-controller args: - "-resync-period=24h" # ...
在这个版本中,在定义管道时,您可以为任务设置
onError
参数,以继续
。如果您在执行管道时进行此设置,且任务失败,管道会记录错误并继续下一个任务。默认情况下,如果一个任务失败,管道会失败。设置
onError
参数的示例。在task-that-fails
任务失败后,下一个任务
执行apiVersion: tekton.dev/v1 kind: Pipeline metadata: name: example-onerror-pipeline spec: tasks: - name: task-that-fails onError: continue taskSpec: steps: - image: alpine name: exit-with-1 script: | exit 1 - name: next-task # ...
-
在这个版本中,如果任务失败,则
finally
任务除status
参数外还可以访问reason
参数,以区分是否允许失败。您可以通过$(tasks.
参数。如果允许失败,&
lt;task_name>.reason)访问 reason原因
被设置为FailureIgnored
。如果不允许失败,原因
被设置为Failed
。此附加信息可以用来识别检查失败,但无法找到失败。 在这个版本中,通过 sidecar 日志支持较大的结果作为默认配置的替代选择,这会将结果限制为每个任务运行 4 KB 的大小,每个任务运行限制为 12 KB。要使用 sidecar 日志启用较大的结果,请在
TektonConfig
CR 中将pipeline.options.configMaps.feature-flags.data.results-from
spec 设置为sidecar-logs
。使用 sidecar 日志启用较大的结果的示例
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: pipeline: options: configMaps: feature-flags: data: results-from: "sidecar-logs" # ...
在此次更新之前,
PipelineRun
和TaskRun
资源中允许参数传播,但不能在Pipeline
资源中。在这个版本中,您可以将Pipeline
资源中的params
传播到内联管道任务
及其内联步骤
。每当引用PipelineTask
或StepAction
等资源的位置,您必须明确传递参数。在管道中使用
params
的示例apiVersion: tekton.dev/v1 # or tekton.dev/v1beta1 kind: Pipeline metadata: name: pipeline-propagated-params spec: params: - name: HELLO default: "Hello World!" - name: BYE default: "Bye World!" tasks: - name: echo-hello taskSpec: steps: - name: echo image: ubuntu script: | #!/usr/bin/env bash echo "$(params.HELLO)" - name: echo-bye taskSpec: steps: - name: echo-action ref: name: step-action-echo params: - name: msg value: "$(params.BYE)" # ...
在这个版本中,您可以使用任务运行或管道运行定义为任务中的步骤和 sidecar 配置计算资源。
配置资源的任务示例
apiVersion: tekton.dev/v1 kind: Task metadata: name: side-step spec: steps: - name: test image: docker.io//alpine:latest sidecars: - name: side image: docker.io/linuxcontainers/alpine:latest # ...
配置资源的
TaskRun
定义示例apiVersion: tekton.dev/v1 kind: TaskRun metadata: name: test-sidestep spec: taskRef: name: side-step stepSpecs: - name: test computeResources: requests: memory: 1Gi sidecarSpecs: - name: side computeResources: requests: cpu: 100m limits: cpu: 500m # ...
1.3.1.2. Operator
在这个版本中,OpenShift Pipelines 包含克隆 Git 存储库的步骤
git-clone
StepAction
定义。使用 HTTP 解析器引用此定义。定义的 URL 是https://raw.githubusercontent.com/openshift-pipelines/tektoncd-catalog/p/stepactions/stepaction-git-clone/0.4.1/stepaction-git-clone.yaml
。StepAction
定义也安装在openshift-pipelines
命名空间中。但是,集群解析器不支持StepAction
定义。在任务中使用
git-clone
步骤操作的示例apiVersion: tekton.dev/v1 kind: Task metadata: name: clone-repo-anon spec: params: - name: url description: The URL of the Git repository to clone workspaces: - name: output description: The git repo will be cloned onto the volume backing this Workspace. steps: - name: clone-repo-anon-step ref: resolver: http params: - name: url value: https://raw.githubusercontent.com/openshift-pipelines/tektoncd-catalog/p/stepactions/stepaction-git-clone/0.4.1/stepaction-git-clone.yaml params: - name: URL value: $(params.url) - name: OUTPUT_PATH value: $(workspaces.output.path) # ...
-
在这个版本中,
openshift-pipelines
命名空间包括版本化任务以及标准任务。例如,有一个buildah
标准任务和buildah-1-16-0
版本化任务。虽然标准任务可能会在后续版本中更新,但 versioned 任务与在指定版本中的相同,但更正错误除外。 在这个版本中,您可以使用
TektonConfig
CR 为 OpenShift Pipelines 的几个组件配置FailurePolicy
,TimeoutSeconds
, 和SideEffects
选项。以下示例显示了管道
组件的配置。您可以在触发器
、pipelinesAsCode
和hub
组件中为 Webhook 使用类似的配置。Pipeline
组件的 Webhook 选项配置示例apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: pipeline: options: webhookConfigurationOptions: validation.webhook.pipeline.tekton.dev: failurePolicy: Fail timeoutSeconds: 20 sideEffects: None webhook.pipeline.tekton.dev: failurePolicy: Fail timeoutSeconds: 20 sideEffects: None # ...
1.3.1.3. 触发器
-
在这个版本中,触发器控制器、webhook、Core Interceptor 和事件监听器的
readOnlyRootFilesystem
参数默认设置为true
,以提高安全性并避免安全扫描程序标记。 在这个版本中,您可以将 OpenShift Pipelines 触发器配置为作为容器内的非 root 用户运行事件监听程序。要设置这个选项,请在
TektonConfig
CR 中设置参数,如下例所示:将触发器事件监听程序配置为以非 root 身份运行的示例
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: trigger: options: disabled: false configMaps: config-defaults-triggers: data: default-run-as-non-root: "true" default-run-as-user: "65532" default-run-as-group: "65532" default-fs-group: "65532" # ...
另外,您可以设置
default-run-as-user
和default-run-as-group
参数的值,以配置在容器中运行事件监听程序的数字用户 ID 和组 ID。OpenShift Pipelines 在 pod 安全上下文和事件监听器的容器安全上下文中设置这些值。如果您使用空值,则使用默认用户 ID 和组 ID65532
。您还可以设置
default-fs-group
参数,以定义 pod 安全上下文的fsGroup
值,这是容器进程用于文件系统的组 ID。如果您使用空值,则使用默认组 ID65532
。-
在这个版本中,在触发器中,
EventListener
pod 模板现在包含securityContext
设置。在这些设置中,您可以在el-security-context
标志设为true
时配置seccompProfile
、runAsUser
、runAsGroup
和fsGroup
参数。
1.3.1.4. Web 控制台
- 在此版本之前,在使用 Web 控制台时,您无法看到 OpenShift Pipelines 创建的日志的时间戳。在这个版本中,web 控制台包括所有 OpenShift Pipelines 日志的时间戳。
-
在这个版本中,Web 控制台中的管道运行和任务运行 列表页面 现在具有数据源的过滤器,如
k8s
和TektonResults API
。 - 在此次更新之前,当在 Developer 视角中使用 Web 控制台时,您无法为管道运行指定超时。在这个版本中,您可以在 web 控制台的 Developer 视角中启动管道运行时设置超时。
- 在此次更新之前,Overview 管道仪表板仅在启用 Tekton Results 时才会出现。所有统计数据仅来自 Results API。在这个版本中,无论是否启用 Tekton 结果,Overview 管道仪表板都可用。当禁用 Tekton Results 时,您可以使用仪表板查看集群中对象的统计信息。
-
在这个版本中,Web 控制台中显示的示例管道使用 OpenShift Pipelines API 的
v1
版本。
1.3.1.5. CLI
-
在这个版本中,您可以使用
tkn customrun delete <custom_run_names&
gt; 命令删除一个或多个自定义运行。 -
在这个版本中,当您使用
-o
YAML 标记运行tkn <resource> list
命令时,列出的资源现在用---
分隔符分开,以增强输出的可读性。
1.3.1.6. Pipelines 作为代码(Pipelines as Code)
-
在这个版本中,如果您创建名称相同的两个
PipelineRun
定义,Pipelines as Code 会记录错误,且不会运行其中任何一个管道运行。 -
在这个版本中,Pipelines 作为代码
pipelines_as_code_pipelinerun_count
指标允许根据存储库或命名空间过滤PipelineRun
计数。 -
在这个版本中,Pipelines 作为代码控制器、webhook 和 watcher 的
readOnlyRootFilesystem
安全上下文默认设置为true
,以提高安全性并避免安全扫描程序标记。
1.3.1.7. Tekton Chains
在这个版本中,当在 Tekton Chains 中使用
docdb
存储时,您可以在TektonConfig
CR 中直接配置MONGO_SERVER_URL
值作为storage.docdb.mongo-server-url
设置。或者,您可以使用 secret 提供这个值,并将storage.docdb.mongo-server-url-dir
设置设置为MONGO_SERVER_URL
文件所在的目录。使用
MONGO_SERVER_URL
值创建 secret 的示例$ oc create secret generic mongo-url -n tekton-chains \ # --from-file=MONGO_SERVER_URL=/home/user/MONGO_SERVER_URL
使用 secret 配置
MONGO_SERVER_URL
值的示例apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: chain: disabled: false storage.docdb.mongo-server-url-dir: /tmp/mongo-url options: deployments: tekton-chains-controller: spec: template: spec: containers: - name: tekton-chains-controller volumeMounts: - mountPath: /tmp/mongo-url name: mongo-url volumes: - name: mongo-url secret: secretName: mongo-url # ...
在这个版本中,当在 Tekton Chains 中使用 KMS 签名时,而不是直接在配置中提供 KMS 身份验证令牌值,您可以使用
signers.kms.auth.token-path
设置将令牌值作为 secret 提供。运行以下命令来创建 KMS 令牌 secret:
$ oc create secret generic <secret_name> -n tekton-chains \ --from-file=KMS_AUTH_TOKEN=/home/user/KMS_AUTH_TOKEN 1
- 1
- 将
<secret_name&
gt; 替换为任何名称。以下示例使用名为kms-secrets
的 KMS secret。
使用名为
kms-secrets
的 secret 配置 KMS 令牌值示例apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: chain: disabled: false signers.kms.auth.token-path: /etc/kms-secrets/KMS_AUTH_TOKEN options: deployments: tekton-chains-controller: spec: template: spec: containers: - name: tekton-chains-controller volumeMounts: - mountPath: /etc/kms-secrets name: kms-secrets volumes: - name: kms-secrets secret: secretName: kms-secrets # ...
在这个版本中,您可以将命名空间列表配置为 Tekton Chains 控制器的参数。如果您提供此列表,Tekton Chains 会监视管道运行和任务仅在指定的命名空间中运行。如果没有提供此列表,Tekton Chains 会监视管道运行和任务在所有命名空间中运行。
仅监视
dev
和test
命名空间的示例配置apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: chain: disabled: false options: deployments: tekton-chains-controller: spec: template: spec: containers: - args: - --namespace=dev, test name: tekton-chains-controller # ...
1.3.1.8. Tekton Results
-
在此次更新之前,Tekton Results 使用
v1beta1
API 格式来存储TaskRun
和PipelineRun
对象记录。在这个版本中,Tekton Results 使用v1
API 格式来存储TaskRun
和PipelineRun
对象记录。 在这个版本中,Tekton Results 可以自动将现有记录转换为
v1
API 格式。要启用这样的转换,请在TektonResult
CR 中设置参数,如下例所示:配置 Tekton Results 将现有记录转换为
v1
API 格式的示例apiVersion: operator.tekton.dev/v1alpha1 kind: TektonResult metadata: name: result spec: options: deployments: tekton-results-api: spec: template: spec: containers: - name: api env: - name: CONVERTER_ENABLE value: "true" - name: CONVERTER_DB_LIMIT value: "256" 1 # ...
- 1
- 在
CONVERTER_DB_LIMIT
变量中,设置单个事务中同时转换的记录数。
-
在这个版本中,Tekton Results 现在支持从第三方日志记录 API 获取转发日志。您可以通过将
logs_api
设置为true
,并将logs_type
设置为Loki
来启用日志 API。 在这个版本中,您可以配置 Tekton Results 数据库的自动修剪。您可以指定必须存储记录的天数。您还可以指定运行删除旧记录的修剪器作业的调度。要设置这些参数,请编辑
TektonResult
CR,如下例所示:配置 Tekton Results 数据库的自动修剪示例
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonResult metadata: name: result spec: options: configMaps: config-results-retention-policy: data: runAt: "3 5 * * 0" 1 maxRetention: "30" 2 # ...
在这个版本中,您可以配置 Tekton Results 来为管道和任务存储事件日志。要启用事件日志的存储,请编辑
TektonResult
CR,如下例所示:配置 Tekton Results 数据库的自动修剪示例
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonResult metadata: name: result spec: options: deployments: tekton-results-watcher: spec: template: spec: containers: - name: watcher args: - "--store_event=true" # ...
在这个版本中,您可以将 Tekton Results 配置为使用 OpenShift Container Platform Cluster Log Forwarder 将所有日志数据存储在 LokiStack 实例中,而不是直接将其放在存储卷中。这个选项支持扩展到管道运行和任务运行的更高的速率。
要将 Tekton Results 配置为使用 OpenShift Container Platform Cluster Log Forwarder 将所有日志数据存储在 LokiStack 实例中,您必须使用 Loki Operator 在集群中部署 LokiStack,同时安装 OpenShift Logging Operator。然后,您必须使用以下 YAML 清单之一在
openshift-logging
命名空间中创建ClusterLogForwarder
CR:如果安装了 OpenShift Logging 版本 6,
ClusterLogForwarder
CR 的 YAML 清单apiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: collector namespace: openshift-logging spec: inputs: - application: selector: matchLabels: app.kubernetes.io/managed-by: tekton-pipelines name: only-tekton type: application managementState: Managed outputs: - lokiStack: labelKeys: application: ignoreGlobal: true labelKeys: - log_type - kubernetes.namespace_name - openshift_cluster_id authentication: token: from: serviceAccount target: name: logging-loki namespace: openshift-logging name: default-lokistack tls: ca: configMapName: openshift-service-ca.crt key: service-ca.crt type: lokiStack pipelines: - inputRefs: - only-tekton name: default-logstore outputRefs: - default-lokistack serviceAccount: name: collector # ...
如果安装了 OpenShift Logging 版本 5,
ClusterLogForwarder
CR 的 YAML 清单apiVersion: "logging.openshift.io/v1" kind: ClusterLogForwarder metadata: name: instance namespace: openshift-logging spec: inputs: - name: only-tekton application: selector: matchLabels: app.kubernetes.io/managed-by: tekton-pipelines pipelines: - name: enable-default-log-store inputRefs: [ only-tekton ] outputRefs: [ default ] # ...
最后,在
openshift-pipelines
命名空间中的TektonResult
CR 中,设置以下附加参数:-
loki_stack_name
:LokiStack
CR 的名称,通常为logging-loki
。 -
loki_stack_namespace
:部署 LokiStack 的命名空间的名称,通常为openshift-logging
。
在
TektonResult
CR 中配置 LokiStack 日志转发示例apiVersion: operator.tekton.dev/v1alpha1 kind: TektonResult metadata: name: result spec: targetNamespace: tekton-pipelines # ... loki_stack_name: logging-loki loki_stack_namespace: openshift-logging # ...
-
1.3.2. 可能会造成问题的更改
-
在这个版本中,
EventListener
对象的指标名称用于管道触发器,统计收到的事件从eventlistener_event_received_count
改为eventlistener_event_received_count
。
1.3.3. 已知问题
-
如果您使用 OpenShift Container Platform 版本 4.16 及更新的版本,
jib-maven
ClusterTask
无法正常工作。
1.3.4. 修复的问题
-
在此次更新之前,当您通过删除 TektonHub CR 卸载
Tekton Hub
时,hub-db-migration
作业的 pod 不会被删除。在这个版本中,卸载 Tekton Hub 会删除 pod。 -
在此次更新之前,当您使用 Tekton Results 从管道和任务存储 pod 日志时,存储日志的操作有时会失败。日志会包括
UpdateLog
操作失败,并显示取消的上下文
错误。在这个版本中,操作可以正确完成。 -
在此次更新之前,当您将参数值传递给管道或任务,并且值包含完整和简短参考格式的多个变量时,例如
$(tasks.task-name.results.variable1)+ $(variable2)
,OpenShift Pipelines 没有正确解释值。管道运行或任务运行可能会停止执行,Pipelines 控制器可能会崩溃。在这个版本中,OpenShift Pipelines 会正确解释值,管道运行或任务运行完成。 - 在此次更新之前,当任务运行包含相同名称的多个任务时,Tekton Chains 无法生成正确的 attestations。例如,在使用一组任务时,为第一个镜像生成了 attestation。在这个版本中,Tekton Chains 为任务运行中的所有任务生成 attestations,确保完成覆盖。
-
在此次更新之前,当您使用 OpenShift Pipelines 安装命名空间中定义的
skopeo-copy
任务并将其VERBOSE
参数设置为false
时,任务会失败。在这个版本中,该任务会正常完成。 -
在此次更新之前,当使用 Pipelines as Code 时,如果您在
openshift-pipelines
或pipelines-as-code
命名空间中名为pipelines-as-code
的全局Repository
CR 中设置concurrency_limit
spec,它会为所有Repository
CR 提供默认设置,Pipelines as Code watcher 会崩溃。在这个版本中,Pipelines as Code watcher 使用这个设置可以正常工作。 - 在此次更新之前,与 OpenShift Pipelines 版本中的相同名称的集群任务相比,OpenShift Pipelines 中的所有任务都包含一个额外的步骤。此额外步骤会增加集群的负载。在这个版本中,任务不再包含额外的步骤,因为它集成到第一步中。
-
在此次更新之前,当您使用 OpenShift Pipelines 安装命名空间中定义的
s2i
netobserv 任务并设置其CONTEXT
参数时,任务无法正确解释该参数,任务会失败。在这个版本中,任务会正确解释CONTEXT
参数,并成功完成。 -
在此次更新之前,在 Tekton 中,在 Tekton Chains the in-toto provenance metadata,
URI
和Digest
值不完整。这些值仅包含远程Pipeline
和Task
资源的信息,但缺少了远程StepAction
资源的信息。在这个版本中,远程StepAction
资源被记录在任务运行状态中,并插入到验证的验证中,这会导致完全被验证的元数据。 -
在此次更新之前,您可以修改
PipelineRun
和TaskRun
资源的spec
字段中的一些参数,在资源被创建后不应该修改。在这个版本中,您只能在创建管道运行和任务运行后修改允许的字段,如status
和statusMessage
字段。 -
在此次更新之前,如果 step action 参数是
数组类型
,但任务中传递了字符串值,则不会显示不一致的参数类型和使用默认值。在这个版本中,添加了一个错误来指示不一致的值:
invalid parameter replacement: %s。请检查默认值的类型以及传递的值
。 -
在此次更新之前,当日志通过 watcher 流时,外部修剪器会删除任务运行和管道运行。在这个版本中,finalizer 会添加到
TaskRun
和PipelineRun
对象的 Tekton Results 中,以确保存储并运行不会被删除。运行可以存储为记录,或是截止时间已通过,该截止时间计算为完成时间加上store_deadline
时间。如果启用了来自 watcher 或 pruner 的传统日志流,则终结器不会阻止删除。 -
在此次更新之前,web 控制台支持
v1beta1
API 格式来显示存储在 Tekton Results 中的TaskRun
和PipelineRun
对象记录。在这个版本中,控制台支持v1
API 格式来显示 Tekton Results 中存储的TaskRun
和PipelineRun
对象记录。 -
在此次更新之前,当使用 Pipelines as Code 时,如果不同的
PipelineRun
定义使用相同的任务名称,但不同版本不同,例如从 Tekton Hub 获取任务时,有时会触发错误版本,因为 Pipelines as Code 为所有管道运行使用相同的任务版本。在这个版本中,Pipelines as Code 会触发引用任务的正确版本。 - 在此次更新之前,当您使用解析器引用远程管道或任务时,临时通信错误会导致立即获取这些远程引用失败。在这个版本中,解析器会重新排队检索,并最终重试检索。
- 在此次更新之前,Tekton Results 在存储管道运行和任务运行的日志信息时,可以使用增加的内存量。在这个版本中,内存泄漏,Tekton Results 使用正常内存量。
-
在此次更新之前,当使用 Pipelines as Code 时,如果您的
.tekton
目录包含未被事件触发的PipelineRun
定义引用的管道,Pipelines as Code 会尝试获取该管道的所有任务,即使它没有运行。在这个版本中,Pipelines as Code 不会尝试解析当前事件触发的任何管道运行中没有引用的管道。
1.3.5. Red Hat OpenShift Pipelines 正式发布 1.16.1 发行注记
在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA) 1.16.1 包括在 OpenShift Container Platform 4.15 及更新的版本中。
1.3.5.1. 修复的问题
- 在此次更新之前,在 web 控制台的 Pipelines 概述 页面中,无法访问所有命名空间的用户可以在 Projects 列表中选择 All。控制台显示该选择的错误信息,因为一些命名空间的统计信息对用户不可用。在这个版本中,无法访问所有命名空间的用户无法在 Projects 列表中选择 All。
-
在此次更新之前,当尝试使用 web 控制台启动定义 type
数组
参数的管道或任务时,为此参数输入一个值会导致错误,您无法启动管道或任务。在这个版本中,您可以使用 Web 控制台启动管道或任务来定义 type数组
的参数,并为此参数输入一个值可以正常工作。 -
在此次更新之前,当使用带有 Bitbucket Git 存储库的 Pipelines as Code 时,Pipelines as Code 控制器有时会崩溃并出现
panic: runtime 错误: invalid memory address 或 nil pointer dereference
信息。在这个版本中,Pipelines as Code 控制器不会崩溃。 -
在此次更新之前,在使用 Tekton Results 时,
tekton-results-watcher
pod 有时会崩溃,并会记录panic: runtime error: invalid memory address 或 nil pointer dereference
信息。在这个版本中,tekton-results-watcher
pod 不会崩溃。 - 在此次更新之前,当使用 Tekton Results 时,如果您在 Tekton Results 中启用了身份验证,则无法在 web 控制台中查看 Tekton Results 的信息,因为 web 控制台无法将身份验证令牌传递给 Tekton Results API。在这个版本中,您可以在启用身份验证时查看 web 控制台中的 Tekton Results 的信息。
- 在此次更新之前,当在 web 控制台中查看 Tekton Results 的信息时,如果您向下滚动到页面的末尾,控制台无法获取下一个记录集合,且没有显示一些信息。在这个版本中,如果您滚动到页面的末尾,来自 Tekton Results 负载的记录会被正确显示,所有信息都会在 web 控制台中正确显示。
1.3.6. Red Hat OpenShift Pipelines 正式发布 1.16.2 发行注记
在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA) 1.16.2 包括在 OpenShift Container Platform 4.15 及更新的版本中。
1.3.6.1. 修复的问题
-
在此次更新之前,在 OpenShift Pipelines 1.16 中,您无法通过修补
PipelineRun
对象来取消管道运行,并将spec.status
参数设置为Cancelled
(如果管道运行中运行的第一个任务完成)。相反,会记录错误消息:PipelineRun was canceled,但会尝试取消 TaskRuns 和/或 Runs 的错误
。在这个版本中,管道运行被成功取消。
1.3.7. Red Hat OpenShift Pipelines 正式发布 1.16.3 发行注记
在这个版本中,Red Hat OpenShift Pipelines 正式发行(GA) 1.16.3 包括在 OpenShift Container Platform 4.15 及更新的版本中。
1.3.7.1. 修复的问题
- 在此次更新之前,在某些情况下,Tekton Chains 控制器会重复崩溃,使 Tekton Chains 组件不可用。在这个版本中,控制器不再崩溃。
-
在此次更新之前,如果您定义了包含常规参数和列表参数的
matrix
任务,tekton-pipelines-controller
组件会崩溃并记录分段错误消息。如果没有删除该任务,则组件将继续崩溃,且不会运行任何管道。在这个版本中,控制器不会在这样的情形中崩溃。