通过 Pruner 功能自动清理 Tekton 中的 TaskRun
和 PipelineRun
资源。Pruner 在后台运行,执行 tkn
命令以进行资源清理。
编辑 TektonConfig
资源
按如下所示修改 spec.pruner
配置:
关键配置描述:
disabled
:设置为 true
时,禁用 Pruner 功能(默认值为 false
)schedule
:清理任务的执行时间表,使用 cron 表达式格式startingDeadlineSeconds
:可选配置,任务开始的截止日期(以秒为单位)。如果任务错过预定时间并超过此持续时间,则视为失败resources
:支持的清理资源类型,包括 taskrun
和 pipelinerun
keep
:在清理过程中保留的资源最大数量keep-since
:在指定时间内保留资源(以分钟为单位)prune-per-resource
:设置为 true
时(默认值为 false
),对每种资源单独应用 keep
配置
ns-1
中有两个 Pipelines,分别为 pipeline-1
和 pipeline-2
,将执行以下命令:
keep-since
时,启用 prune-per-resource=true
是没有实际意义的,因为 keep-since
是基于资源的时间约束,与资源的数量无关。如果 disabled: false
并且 schedule
为空,则全局 Pruner 任务将禁用。
但是,如果命名空间中存在带值的注解 operator.tekton.dev/prune.schedule
,则将为该命名空间创建一个 Pruner 任务。
通过命名空间注解配置清理策略(可选)
默认情况下,Pruner 任务将使用全局配置(spec.pruner
),但用户可以通过以下注解自定义特定命名空间的 Pruner 配置。如果某些注解缺失或值无效,将使用全局配置值,或者跳过该命名空间。
支持的注解:
operator.tekton.dev/prune.skip
:设置为 true
时,跳过该命名空间的 Pruner 任务operator.tekton.dev/prune.schedule
:设置该命名空间的清理时间表operator.tekton.dev/prune.keep
:设置最大保留的资源数量operator.tekton.dev/prune.keep-since
:设置在指定时间内保留资源的时间(以分钟为单位)operator.tekton.dev/prune.prune-per-resource
:设置是否对每种资源单独应用清理策略operator.tekton.dev/prune.resources
:设置要清理的资源类型,可以是 taskrun
和/或 pipelinerun
,多个值用逗号分隔operator.tekton.dev/prune.strategy
:设置清理策略,可选值为 keep
或 keep-since
示例:
如果未设置全局配置,将使用以下默认值:
resources: pipelinerun
keep: 100
配置完成后,系统将根据设置的时间表自动清理过期的 TaskRun 和 PipelineRun 资源。