Tekton Operator installation is your gateway to managing Tekton Pipelines declaratively on Kubernetes, but it’s not just about installing a few YAML files.
Let’s see it in action. Imagine you have a Kubernetes cluster. You want to deploy Tekton Pipelines, the open-source framework for creating CI/CD systems. Instead of manually applying CRDs, controllers, and webhooks, you use the Tekton Operator.
First, you install the operator itself. This usually involves applying a manifest that defines the TektonConfig custom resource.
apiVersion: operator.tekton.dev/v1beta1
kind: TektonConfig
metadata:
name: tekton-config
spec:
profile: basic # Or 'intermediate' or 'full'
targetNamespace: tekton-pipelines
Once this TektonConfig is applied, the Tekton Operator watches for it. It then ensures that all the necessary Tekton components (like PipelineRun, TaskRun, Pipeline, Task CRDs, controllers, and webhook servers) are deployed and configured within the tekton-pipelines namespace.
The profile field is your primary lever. basic installs only the core components needed for basic pipeline execution. intermediate adds more advanced features, and full includes everything. This declarative approach means you don’t have to worry about the individual Kubernetes resources; the operator handles their lifecycle. You simply declare what you want (e.g., a basic Tekton installation), and the operator makes it happen.
Internally, the Tekton Operator acts as a Kubernetes controller. It’s constantly reconciling the state defined in the TektonConfig resource against the actual state of your cluster. If a Tekton component is missing, it creates it. If a configuration needs updating, it modifies it. This ensures your Tekton installation is always in sync with your desired configuration.
The real power comes from how this abstraction simplifies updates and management. To upgrade Tekton, you simply update the TektonConfig resource’s image tags or version spec, and the operator handles the rolling updates of the underlying Tekton components. You’re managing Tekton as a Kubernetes-native application.
Most people focus on the profile setting, but the targetNamespace is equally critical. If you don’t specify it, or if it’s incorrect, the operator might deploy Tekton components into an unexpected namespace, leading to difficulties in accessing or managing your pipelines later. The operator will create this namespace if it doesn’t exist, but it’s good practice to define it explicitly.
The next logical step after getting Tekton installed is to define your first custom resource: a Pipeline.