Tektoncd Operator is a Kubernetes extension for installing, upgrading and managing TektonCD Pipelines, Dashboard, Triggers, etc. on a Kubernetes cluster. We just need to write the yaml for each component to manage Tekton components directly.
|TektonConfig||Configure the Tekton components to be installed and managed.|
|TektonPipeline||Configure the installation to manage Tekton Pipeline components.|
|TektonTrigger||Configure the installation to manage the Tekton Trigger component.|
|TektonDashboard||Configure the installation to manage Tekton Dashboard components.|
|TektonResult||Configure the installation to manage Tekton Result components.|
|TektonAddon||Configure the installation management plugin, which currently only supports Openshift.|
There are several ways to install Tektoncd Operator.
Installation from Operator Hub
You can go directly to the Operator Hub page at https://operatorhub.io/operator/tektoncd-operatorto install it and its lifecycle will be managed by the
Operator Lifecycle Manager (OLM).
Installation using the resource manifest file
You can get the resource manifest file directly from the Github Release page at https://github.com/tektoncd/operator/releases. Using this method of installation, you need to manage the Operator lifecycle yourself.
Just use the following command to install directly.
By default Tektoncd Operator creates objects that use the gcr image, such as the Tekton Pipelines controller image, you can specify the corresponding image via the environment variable
IMAGE_PIPELINES_TEKTON_PIPELINES_CONTROLLER, which is shown below to override the default configuration of the gcr image.
The above approach creates a namespace named
tekton-operator containing an Operator and a Pod of Webhook.
Once the Operator is installed, you can install the required Tekton components, such as Tekton Pipeline, Tekton Triggers.
Each Tekton component has a custom resource for installing and managing the component.
TektonConfig is the top level CRD for creating other components, so we just need to create
TektonConfig objects with the required configuration, which will help us install the other components accordingly.
TektonConfig will create
TektonTriggers and other component CR objects based on the configuration file passed to it, with a
profile field that can be used to identify all the components to be installed.
Tektoncd Operator has 3 built-in
all: this profile will install all components
basic: this profile will install only TektonPipeline and TektonTrigger components
lite: this profile will install only the TektonPipeline component
For example, if we want to install pipelines, triggers and dashboard, we can use the
all to install them, as shown in the resource list below.
targetNamespace is used to specify the namespace where Tekton components are installed, the default is
pruner provides automatic cleanup for Tekton resources.
resources: specifies the resources that can be cleaned automatically.
keep: the maximum number of resources to keep when cleaning up.
schedule: how often to clean up resources.
Just install the above resource object directly.
TektonConfig object we configured above with a
all will automatically create
tektondashboard component objects for us.
These cr objects above will automatically create the corresponding components when they are created, as shown below.
Since the image of the dashboard component does not have a corresponding overriding environment variable, we need to modify it manually.
By default, Dashboard services are exposed through ClusterIP. We can manually create an Ingress object or modify the service to NodePort to expose it.
Once Tekon’s components are installed, let’s run a simple Pipeline.
First create a Task as shown below, which will execute the
echo "Hello, world!" command in the bash container.
goodbye task in the same way, simply by changing the echo above to
Then you can define a Pipeline flow, as shown below.
The corresponding Task object is referenced by
Just create the above resource object directly.
To execute the pipeline, we also need to create a
PipelineRun object before it will actually execute.
Just create the above resource, and note that the
generateName attribute we used here needs to be created using the
kubectl create command. After normal creation, the two tasks will soon be executed as described in the Pipeline above.
To uninstall Tekton we just need to delete the defined
If we don’t want to use the several
profiles built into TektonCD Operator, we can also manually configure the CR instances of the different components ourselves. In addition, TektonCD Operator does not provide many configurable methods at this stage, and the only way to globally override the Operator is through environment variables.