Overview#
Tekton is a cloud-native, continuous integration and delivery (CI/CD) solution for building pipelines. Tekton is a flexible, Kubernetes-native, open-source CI/CD framework that enables automating deployments across multiple platforms (Kubernetes, serverless, VMs, etc) by abstracting away the underlying detail.
Tekton is a standalone project that provides an open, standard and native Kubernetes CI/CD solution.
Main goals:
- Faster
- Declarative
- Reproducible
- Cloud Native
Tekton Pipeline Benefits#
- Kubernetes native pipelines
- Runs pipelines in containers
- Runs server-less
- Build images with Kubernetes tools
- Deploy to multiple platforms
- Developer tools
- Decoupled
Tekton Concepts#
Tekton defines a number of Kubernetes custom resources as building blocks in order to standardize pipeline concepts and provide a terminology that is consistent across CI/CD solutions:
- Step: Smallest unit of execution that defines Kubernetes container spec
- Task: Run commands within container
- Task Run: Runtime representation of an execution of a task
- Pipeline Resources: Acts as input or output to tasks and pipelines. Example, source code, container image, pull request etc.
- Pipeline: Runs tasks in a defined order based on inputs and outputs
- Pipeline Run: Runtime representation of an execution of a pipeline
- Conditions: Conditional tasks in pipeline
Pipeline Workflow#
Continuous Integration/Delivery#
For Continuous Integration/Delivery we can use triggers and webhooks:
- Webhook: Send payload to event-listener whenever a push event or a pull request is created. More on webhooks
- Triggers:
- Event Listeners: Listen to events over a route
- Trigger Templates: Template generated PipelineResources & PipelineRun based on event
- Trigger Bindings: Extract info out of payload to be used in trigger templates
- Interceptors: Filtration of events and payload