What is Tekton and how does it differ from Jenkins or GitHub Actions?
Quick Answer
Tekton is a Kubernetes-native open-source framework for building CI/CD pipelines that run as custom resources directly on a Kubernetes cluster. Unlike Jenkins, which runs on a standalone server, or GitHub Actions, which is tied to GitHub's cloud infrastructure, Tekton defines pipelines as Kubernetes CRDs and executes each step in its own container pod.
Detailed Answer
Think of Tekton as the CI/CD engine that was born inside Kubernetes rather than bolted onto it. Jenkins grew up in the pre-container era, and GitHub Actions is a managed service locked inside GitHub. Tekton was designed from day one to speak Kubernetes natively, treating every pipeline step as a container running inside a pod, managed by the same scheduler and resource quotas that handle your production workloads.
Tekton is an open-source project originally developed at Google under the Knative project and later donated to the Continuous Delivery Foundation. It extends Kubernetes with a set of Custom Resource Definitions (CRDs) such as Task, TaskRun, Pipeline, PipelineRun, and Trigger. When you install Tekton on a cluster, the Tekton controller watches for these custom resources and orchestrates their execution. A Task defines a sequence of steps, and each step runs in its own container within a Kubernetes pod. A Pipeline chains multiple Tasks together, and a PipelineRun is the actual execution of that Pipeline. This is fundamentally different from Jenkins, where a Jenkinsfile describes stages that run on agents (either the controller node or separate worker nodes), or GitHub Actions, where workflow YAML files define jobs that execute on GitHub-hosted or self-hosted runners outside Kubernetes.
Under the hood, when you create a PipelineRun, the Tekton controller creates a TaskRun for each Task in the Pipeline. Each TaskRun becomes a Kubernetes pod, and each step within that Task becomes a container inside that pod. This means you get Kubernetes-native features for free: resource limits, node affinity, tolerations, service accounts, and RBAC all apply naturally. For example, when the payments-api team runs their build pipeline, Tekton schedules the build pod on a node with enough CPU and memory, using the same scheduling logic that places their production pods. Jenkins would need a separate plugin ecosystem to achieve even basic Kubernetes integration, and GitHub Actions requires self-hosted runners with custom configuration to run inside a cluster.
In production environments, Tekton shines when teams already run their applications on Kubernetes and want their CI/CD to live alongside their workloads. The order-processing-service team at a mid-size e-commerce company, for instance, can define their build, test, and deploy pipeline as Tekton resources stored in the same Git repository as their application code. Tekton Triggers can watch for GitHub webhooks and automatically create PipelineRuns, mimicking the event-driven model of GitHub Actions but running entirely within the cluster. The checkout-service team can reuse the same Task definitions for building container images, running integration tests, or deploying Helm charts across multiple pipelines.
One important distinction to keep in mind is the operational overhead trade-off. Jenkins and GitHub Actions abstract away the infrastructure: Jenkins gives you a web UI and plugin marketplace out of the box, and GitHub Actions requires zero infrastructure setup. Tekton requires you to manage the Tekton controller, maintain the cluster it runs on, handle storage for pipeline logs and artifacts, and build your own dashboard or use the optional Tekton Dashboard. This makes Tekton the stronger choice for Kubernetes-centric organizations that want full control but a heavier lift for small teams that just need a quick CI/CD solution without managing cluster infrastructure.