Learning Resources
We recommend checking out the Teknical Tekton channel for training and tutorials on Tekton.How Tekton Works
Tekton implements several Kubernetes resource controllers configured by Tekton CRDs. Understanding how this works is essential for contributing to the project.Key Concepts
Controller Logic
Learn how Tekton extends Kubernetes using Knative
TaskRun Logic
Understand how TaskRuns are executed in pods
Resources Labeling
Learn about labels applied to Tekton resources
Multi-Tenant Support
Running Tekton in multi-tenant configurations
Code Structure
When making changes to Tekton, you’ll primarily interact with:CRD Type Definitions
- Located in
pkg/apis/pipeline/v1beta1 - Define the structure of Tekton resources (Tasks, Pipelines, etc.)
- Example:
task_types.go,pipeline_types.go
Reconcilers
- Located in
pkg/reconciler - Implement the controller logic for each CRD type
- Example:
taskrun/,pipelinerun/
Generated Clients
- Located in
pkg/client - Generated by
./hack/update-codegen.sh - Used to interact with Tekton resources in Kubernetes
API Versioning
Tekton supports multiple API versions and feature gates. Learn more about:- API Versioning - How Tekton supports multiple API versions
- API Compatibility Policy - Guidelines for making API changes
Feature Implementation Details
Learn how specific features are implemented:Results Lifecycle
Results Lifecycle
Understand how task and pipeline results are created, stored, and retrieved.See Results Lifecycle for details.
Affinity Assistant
Affinity Assistant
Learn how the Affinity Assistant helps with workspace sharing between tasks.See Affinity Assistant for details.
Development Scripts
Thehack/ directory contains scripts for development tasks:
./hack/update-deps.sh- Update external dependencies./hack/update-codegen.sh- Update type definitions and generated clients./hack/update-openapigen.sh- Update OpenAPI specifications
Testing
For comprehensive information on testing, including test categories and how to run different test suites, see the Testing Guide.Next Steps
Development Guide
Set up your development environment
Contributing Overview
Learn how to contribute
Local Setup
Detailed local development setup
Tracing
Enable Jaeger tracing for debugging