Skip to main content
Tekton Pipelines extends Kubernetes using Custom Resource Definitions (CRDs) and controllers. This guide helps you understand the architecture and key concepts.

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:

Feature Implementation Details

Learn how specific features are implemented:
Understand how task and pipeline results are created, stored, and retrieved.See Results Lifecycle for details.
Learn how the Affinity Assistant helps with workspace sharing between tasks.See Affinity Assistant for details.

Development Scripts

The hack/ 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

Build docs developers (and LLMs) love