Tekton — Intermediate
Matrix Strategy — Parallel Task Execution Across Parameters
The same conceptual feature as GitLab CI's parallel: matrix — running one logical Task across multiple parameter combinations without duplicating the Task definition per combination:
PipelineRun Timeouts and Cancellation
Without explicit timeouts, a hung Task step (a network call that never times out on its own, a build stuck waiting on a resource) can leave a PipelineRun running indefinitely, consuming cluster resources with nothing to show for it:
Setting tasks and finally timeouts separately from the overall pipeline timeout matters specifically for pipelines with cleanup logic in finally: — a single flat timeout risks the timeout firing mid-cleanup, leaving resources in a half-cleaned state.
`finally` Tasks — Guaranteed Cleanup and Notifications
Tasks in a finally: block run after all regular tasks complete, regardless of whether the pipeline succeeded or failed — the direct equivalent of a try/finally block, useful for cleanup steps or notifications that need to run either way:
$(tasks. is only accessible from within finally: — this is the mechanism that lets a single notification task report "succeeded" or "failed" correctly, rather than needing separate success-path and failure-path notification tasks duplicated across the pipeline.
Tekton Results — Retaining Run History Past Pod Garbage Collection
As covered in Troubleshooting, Kubernetes garbage-collects completed pods (and their logs) after a retention period — Tekton Results is the purpose-built solution for retaining PipelineRun/TaskRun history and logs beyond that window, storing them in a separate API and database rather than relying on the pods themselves persisting:
This is the direct fix for the exact gap Troubleshooting identified — Tekton itself doesn't retain logs long-term by default, and Results is the component that closes that gap, rather than needing a fully separate external logging pipeline for CI history specifically.
Custom Tasks with Sidecars
A Task step sometimes needs a companion process running alongside it for the step's duration — a database proxy, a local cache server — without that companion being a pipeline step itself:
The sidecar starts before the step begins and is automatically torn down when the Task completes — this is the Tekton-native way to provide test dependencies without needing a separately-managed test database for CI specifically.

