Part 6: Supply Chain – Introduction to Tekton

Table of Contents:

Tags:

What is Tekton?

Tekton is an open source CI/CD tool and was initially a project of the Continuous Delivery Foundation. Kubernetes is used as the underlying platform for Tekton and can be extended by using Custom Resource Definitions (CRD). They act as an extension of the Kubernetes Application Programming Interface (API). This way, Tekton integrates into Kubernetes and can be used like any other Kubernetes resources.

The smallest unit in the Tekton workflow is a step and each step is executed in its own container. Several steps taken together are called a task. Each task runs in a Kubernetes Pod. This means, that the containers in the pod share the same resources, such as a volume. If there is a need to run steps in multiple pods or due to advanced automation requirements, more tasks can be run in pipelines. Pipelines are formed from several tasks. In addition, the individual components are reusable. Steps can be integrated into different tasks and tasks into different pipelines.

The concept of steps, tasks and pipelines is depicted in the following picture.

The actual execution of tasks and pipelines is managed by two resources: TaskRun and PipelineRun. The TaskRun is responsible for managing the execution of tasks, while the PipelineRun monitors and controls the execution of pipelines. Furthermore, the run resources determine when tasks and pipelines should be executed. These can be triggered at a specific time or by an event. Runs represent the link between resources and tasks and pipelines to ensure the modular structure. The parameters required for the steps are passed to the pipelines and tasks through the runs.

Installation

Like with many other Kubernetes application, Kubernetes operators prove to be indispensable for Tekton and help to ensure that the actual state of the Tekton application matches the desired state. Through their specialized knowledge, operators extend the functions of the Kubernetes API to ensure the automation of applications.

The Tekton Operator is responsible for installing Tekton and managing the individual Tekton resources. Other Tekton resources include the Tekton pipeline and trigger resources, which are managed via the operator. The resources are managed via Custom Resource TektonConfig. The scope of manageable resources depends on the platform on which Tekton is deployed. For example, on Kubernetes it is possible to manage the Tekton dashboard via TektonConfig, but not on OpenShift and vice versa, TektonAddons can be managed on OpenShift but not on Kubernetes. This can be seen in profiles.

There are three profiles to choose from in the Tekton operator version Operator-v0.67.0:

  • The “All” profile installs all resources available to the platform. As already mentioned, the dashboard is deployed for Kubernetes in addition to the resources and the TektonAddon is deployed on OpenShift.
  • The “Basic” profile installs the components TektonPipeline, TektonTrigger and Tekton-Chain.
  • The third profile “lite” only installs the TektonPipelines resource.

Autor

Denny Fehler

Consultant

Dr. Guido Söldner

Geschäftsführer

Guido Söldner ist Geschäftsführer und Principal Consultant bei Söldner Consult. Sein Themenfeld umfasst Cloud Infrastruktur, Automatisierung und DevOps, Kubernetes, Machine Learning und Enterprise Programmierung mit Spring.