Tekton Triggers is a Tekton component that allows you to detect and extract information from events from a variety of sources and deterministically instantiate
and execute TaskRuns
and PipelineRuns
based on that information. Tekton Triggers can also pass information extracted from events directly to TaskRuns
and PipelineRuns
. You install Tekton Triggers on your Kubernetes
cluster as an extension to Tekton Pipelines.
Tekton Triggers consists of a controller service that runs on your Kubernetes cluster as well as the following Kubernetes Custom Resource Definitions (CRDs) that extend the functionality of Tekton Pipelines to support events:
-
EventListener
- listens for events at a specified port on your Kubernetes cluster. Specifies one or moreTriggers
. -
Trigger
- specifies what happens when theEventListener
detects an event. ATrigger
specifies aTriggerTemplate
, aTriggerBinding
, and optionally, anInterceptor
. -
TriggerTemplate
- specifies a blueprint for the resource, such as aTaskRun
orPipelineRun
, that you want to instantiate and/or execute when yourEventListener
detects an event. It exposes parameters that you can use anywhere within your resource's template. -
TriggerBinding
- specifies the fields in the event payload from which you want to extract data and the fields in your correspondingTriggerTemplate
to populate with the extracted values. You can then use the populated fields in theTriggerTemplate
to populate fields in the associatedTaskRun
orPipelineRun
. -
ClusterTriggerBinding
- a cluster-scoped version of theTriggerBinding
, especially useful for reuse within your cluster. -
Interceptor
- a "catch-all" event processor for a specific platform that runs before theTriggerBinding
enabling you to perform payload filtering, verification (using a secret), transformation, define and test trigger conditions, and other useful processing. Once the event data passes through an interceptor, it then goes to theTrigger
before you pass the payload data to theTriggerBinding
.
As an example, you can implement the following CI/CD workflow with Triggers:
-
Triggers listens for a git commit or a git pull request event. When it detects one, it executes a unit test
Pipeline
on the committed code. -
Triggers listens for a git push event indicating the test finished successfully. When it detects one, it validates the test's outcome and executes a
Pipeline
that builds the tested code. -
When the associated
PipelineRun
completes execution, Triggers checks the outcome of the build, and if it's successful, executes aTask
that uploads the build artifacts to the Docker registry of your choice. -
Finally, the Docker registry sends an event to Pub/Sub, which triggers a
Pipeline
that pushes the build artifacts to a staging environment.
To get started with Tekton Triggers, see the following: