Google developed Tekton, and first announced it in May 2019. The Cloud Native Computing Foundation (CNCF) now maintains it, and multiple companies are adopting it to automate their CI/CD on Kubernetes.
Feature | Description |
---|---|
Name | Tekton |
Type | Open-source CI/CD Framework |
Function | Create CI/CD pipelines on Kubernetes |
Key Components | Tasks, PipelineResources, PipelineRuns |
Developed By | |
Initial Release | May 2019 |
Current Maintainer | CNCF |
Tekton's Features:
- Pipelines: Use Tekton to create CI/CD pipelines on Kubernetes that automate the building, testing, and deployment of code to various environments.
- Tasks: Tekton provides a collection of reusable components known as “Tasks.” You can utilize these Tasks to perform common CI/CD operations, including building container images, running tests, or deploying to a Kubernetes cluster.
- Custom Workflows: Combine and arrange Tasks in a pipeline to create custom CI/CD workflows tailored to your specific needs.
- PipelineResources: These pipeline definitions outline inputs, outputs, and working directories for a given pipeline. They allow for precise control over the pipeline's execution.
- PipelineRuns: Define how a pipeline is executed. You can specify parameters passed to the Tasks and the service account used for Kubernetes cluster authentication.
Tekton's Adoption:
- Tekton is actively embraced by many organizations as an efficient means of automating their CI/CD processes in Kubernetes environments.
For more detailed information on Tekton, you can visit the official Tekton website.
Contents
Why was it invented? What problem are we looking to solve using Tekton?
“Google developed Tekton to address the need for a flexible and reusable CI/CD framework that tightly integrates with Kubernetes. At the time of its development, several existing CI/CD solutions were available. However, many of them required significant configuration and customization to work with Kubernetes, and many lacked the ability to easily reuse common tasks across different pipelines.
Tekton aims to provide a simple and consistent way for developers to automate the process of building, testing, and deploying their code to various environments, regardless of the programming language or application framework they use. By offering a set of reusable tasks and a straightforward pipeline definition format, Tekton simplifies the creation of custom CI/CD workflows that can be easily reused and shared among teams.
In addition, Tekton strives to integrate seamlessly with other Kubernetes-native tools and services, such as Kubernetes itself, Istio, Knative, and others. This integration makes it a natural fit for cloud-native architectures and modern software development practices like microservices, serverless, and containerization.
By providing a platform-agnostic solution that can run on multiple cloud providers, on-premises, or in a hybrid manner, Tekton offers companies a single source of truth for their CI/CD processes. This enhances efficiency and promotes collaboration among development teams.”
Tekton's key features
Key Features | Description |
---|---|
Developer Focus | Tekton prioritizes developers by streamlining CI/CD workflows and automating tasks like building, testing, and deployment. |
Reusable Tasks | “Tasks” are versatile components that can be mixed and matched to create custom CI/CD workflows in pipelines. |
Kubernetes Integration | Tekton seamlessly aligns with Kubernetes and other Kubernetes-native tools and services. |
Platform Flexibility | It operates across diverse environments, from multiple cloud providers to on-premises and hybrid setups. |
Cloud-Native Ready | Tekton is exceptionally well-suited for cloud-native architectures, encompassing microservices, serverless, and containerization. |
CNCF Maintenance | The Cloud Native Computing Foundation (CNCF) has been maintaining Tekton since May 2019. |
Wide Industry Adoption | Numerous organizations have embraced Tekton for automating CI/CD processes within Kubernetes environments. |
So how do you get started with using Tekton?
Installing Tekton on a Kubernetes cluster can be done in several ways. The most common method is to use the tkn
command-line tool, which is part of the Tekton CLI.
Here's an overview of the process to install Tekton on a Kubernetes cluster:
- Install the
tkn
CLI: You can install thetkn
CLI by downloading a binary release from the GitHub releases page or by using a package manager such asbrew
(macOS) orapt-get
(Ubuntu). - Install the Tekton Custom Resources: You can install the Tekton custom resources on your cluster by running the following command:
tkn pipeline operator install --namespace tekton-pipelines
Code language: PHP (php)
This will create the necessary Custom Resource Definitions (CRDs) and install the Tekton pipeline operator in the tekton-pipelines
namespace.
- Create the Tekton Service Accounts and Roles: You can create the necessary service accounts and roles required by the Tekton pipeline operator by running the following command:
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
Code language: JavaScript (javascript)
- Install Tekton Triggers: The Tekton Triggers extension is optional, but it allows you to create more advanced CI/CD workflows by triggering pipelines based on events such as a new code push to a version control system. To install it, run:
tkn trigger operator install --namespace tekton-triggers
Code language: PHP (php)
- Verify the installation: You can verify that the Tekton pipeline operator is running by checking the pods in the
tekton-pipelines
namespace:
kubectl get pods -n tekton-pipelines
Code language: JavaScript (javascript)
Note that the above steps is a general guidance and some considerations such as cluster permission and namespace might vary depending on your installation environment. You should check the official Tekton documentation for more detailed instructions on how to install and configure Tekton on your specific platform.
So is learning Tekton worth your while?
Short answer is yes. But generally, Tekton is a relatively new open-source project, but it has already been adopted by a number of companies as a tool for automating their CI/CD on Kubernetes. Some examples of companies that are using Tekton include:
- Google: As the creator of Tekton, Google is one of the largest users of the framework. They use Tekton for the CI/CD of many of their internal services and for several of the products they offer to customers such as Google Cloud Run, Google Cloud Build and others.
- IBM: IBM is using Tekton to automate the CI/CD of their cloud-native applications and services. They have developed several Tekton-based CI/CD solutions, such as the IBM Cloud Continuous Delivery service, which helps customers automate the deployment of their applications to the IBM Cloud.
- Salesforce: Salesforce has adopted Tekton as a core part of their development platform and have open sourced “Flow” – a suite of Tekton-based CI/CD tools that makes it easy for Salesforce developers to automate their development workflows and deploy to multiple environments.
- Atlassian: Atlassian has integrated tekton as part of their pipeline product, Bitbucket Pipelines, which allows customers to use the same pipeline definition both on their own cluster and on Bitbucket-provided infrastructure.
These are just a few examples of the many companies that are using Tekton. With its growing popularity, more and more companies are likely to adopt Tekton as a standard tool for automating their CI/CD on Kubernetes.
Its growing popularity is in part because of the flexibility it provides, and how easy it is to use and customize, making it a good fit for companies of all sizes and industries, who are looking for a cloud-native, open-source solution to automate their CI/CD process on kubernetes.