Description
Feature request
This is a proposal to adopt event-based-pruner
to tektoncd
org.
This solution introduces a new event-driven pruning controller for Tekton that automatically cleans up completed PipelineRun and TaskRun resources based on configurations defined in a ConfigMap.
The core motivation behind the request is current pruning mechanisms in Tekton are distributed across multiple components, each with its own limitations. Here's a summary of the existing options:
- Operator-based pruner: A CronJob-based solution that runs in the tekton-pipelines namespace. It periodically launches a pod that uses the tkn CLI to delete PipelineRun and TaskRun resources across all namespaces. If users want namespace-specific pruning policies, they must add annotations to the namespace, which results in additional CronJobs being created per namespace.
- Tekton Results: Performs cleanup after exporting data by using finalizers, but it does not support time-based TTL or history limit based granular retention policies.
These approaches are fragmented, difficult to customize, and do not offer fine-grained control. Introducing a unified pruning controller brings all pruning logic into a single, consistent component—making it easier for users and administrators to manage resource cleanup.
Who Will Own it
- @anithapriyanatarajan
- @pramodbindal
- @vdemeester
- @savitaashture
- @jkhelil
- @jkandasa
- @waveywaves
- the existing maintainers
[any other takers]
Who and/or approximately how many people currently use the project
The project is currently in an alpha state, and is being prepared for a Tech Preview release, targeted to be deployable with the upcoming major release of the Tekton Operator. This initial release will include minimal default configurations, focusing on ease of deployment and early feedback collection.
The project's existing stability policies, if any, and a proposed stability level after adoption
The project is in alpha stage. There are no API or Custom resources involved in the solution. The entire logic is based on controllers and configMap. In the initial alpha version v0.1.0 includes the cluster wide pruning config and Namespace specific overrides only.
A full fledged implemenattion of all requirements captured in TEP is targeted for next iteration.