How do you install Tekton on a Kubernetes cluster?
Quick Answer
Tekton is installed by applying its release YAML manifests to a Kubernetes cluster using kubectl apply. The core component is Tekton Pipelines, which can be extended with optional components like Tekton Triggers for event-driven execution, the Tekton Dashboard for a web UI, and the Tekton CLI (tkn) for command-line management.
Detailed Answer
Installing Tekton is like setting up a new department in an office building. The core Pipelines component is the department itself, Triggers is the receptionist who handles incoming requests, the Dashboard is the monitoring screen in the lobby, and the tkn CLI is the intercom system that lets you communicate with the department from anywhere in the building.
Tekton Pipelines is the foundational component and is installed by applying a single YAML manifest from the official Tekton release bucket on Google Cloud Storage. The manifest creates the tekton-pipelines namespace, deploys the Tekton controller and webhook pods, registers the Custom Resource Definitions (Tasks, TaskRuns, Pipelines, PipelineRuns, etc.), and sets up the necessary RBAC roles and service accounts. The installation requires a Kubernetes cluster running version 1.25 or later, and the cluster must have a default StorageClass configured if you plan to use PersistentVolumeClaim-backed workspaces. For a production cluster running the payments-api and order-processing-service workloads, the Tekton controller typically consumes modest resources (around 100m CPU and 256Mi memory) but should be monitored as the number of concurrent PipelineRuns increases.
Beyond the core Pipelines component, teams typically install additional Tekton components based on their needs. Tekton Triggers enables event-driven pipeline execution by listening for incoming webhooks (such as GitHub push events) and automatically creating PipelineRuns. It introduces additional CRDs like EventListener, TriggerBinding, and TriggerTemplate. The Tekton Dashboard provides a web-based UI for viewing and managing Tasks, Pipelines, and their runs, which is helpful for teams that prefer a graphical interface over kubectl commands. The Tekton CLI (tkn) is a separate binary installed on developer machines that provides convenient commands for listing, starting, and monitoring pipeline resources without writing kubectl commands.
In production environments, the checkout-service team at a typical organization would install Tekton Pipelines and Triggers on their shared development cluster. The EventListener is configured to receive webhooks from the Git repository, so every push to a feature branch automatically triggers the CI pipeline. The user-auth-service team uses the Tekton Dashboard to monitor pipeline executions and quickly identify which commit broke the build. Platform engineers install the tkn CLI on CI bastion hosts and developer laptops for quick troubleshooting and ad-hoc pipeline management.
A common gotcha during installation is forgetting to verify that the tekton-pipelines namespace pods are in a Running state before attempting to create Tasks or Pipelines. The webhook pod must be ready to validate incoming resources, and attempting to apply a Task before the webhook is ready results in validation errors. Another mistake is installing Tekton on a cluster without a default StorageClass, which causes PVC-backed workspaces to hang in a Pending state. Always run kubectl get storageclass to verify before installation. For air-gapped or restricted environments, you can download the release YAML and container images ahead of time and host them in an internal registry, modifying the manifest to reference internal image paths.