5.6. 为管道运行指定自动的 cancellation-in-progress 的注解
默认情况下,Pipelines as Code 不会自动取消管道运行。每个管道运行都会以 Pipelines as Code 创建并启动执行,直到它完成为止。但是,触发管道运行的事件可能会快速连续。例如,如果拉取请求触发管道运行,然后用户将新提交推送到拉取请求源分支,每个推送都会触发管道运行的新副本。如果发生多个推送,可以运行多个副本,这会消耗过量集群资源。
您可以配置管道运行来启用自动取消处理。如果您为管道运行启用自动取消,Pipelines as Code 会在以下情况下取消管道运行:
- Pipelines as Code 已成功为同一拉取请求或同一源分支启动同一管道运行的副本。
- 触发管道运行的拉取请求会合并或关闭。
在创建 sample-pipeline
管道运行时,您可以使用以下示例启用自动取消:
重要
自动取消管道运行的处理只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
注意
-
当启动此管道运行的新副本 后,Pipelines as Code 会取消管道运行。
pipelinesascode.tekton.dev/cancel-in-progress
设置 不能 确保任何时间点上仅执行管道运行的一个副本。 -
要为所有默认管道运行启用
cancellation-in-progress
,请使用enable-cancel-in-progress-on-pull-requests
和enable-cancel-in-progress-on-push
设置。这些设置包括在TektonConfig
自定义资源(CR)的platform.openshift.pipelinesAsCode.settings
spec 中,将 Pipelines 配置为代码。