Triggers and EventListeners
Tekton Triggers
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.
How does Triggers work?
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 theEventListenerdetects an event. ATriggerspecifies aTriggerTemplate, aTriggerBinding, and optionally, anInterceptor. -
TriggerTemplate- specifies a blueprint for the resource, such as aTaskRunorPipelineRun, that you want to instantiate and/or execute when yourEventListenerdetects 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 correspondingTriggerTemplateto populate with the extracted values. You can then use the populated fields in theTriggerTemplateto populate fields in the associatedTaskRunorPipelineRun. -
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 theTriggerBindingenabling 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 theTriggerbefore you pass the payload data to theTriggerBinding.
What can I do with Triggers?
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
Pipelineon 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
Pipelinethat builds the tested code. -
When the associated
PipelineRuncompletes execution, Triggers checks the outcome of the build, and if it’s successful, executes aTaskthat uploads the build artifacts to the Docker registry of your choice. -
Finally, the Docker registry sends an event to Pub/Sub, which triggers a
Pipelinethat pushes the build artifacts to a staging environment.
Further Reading
To get started with Tekton Triggers, see the following:
- Setting Up Tekton Triggers
- Getting Started with Tekton Triggers
- Tekton Triggers code examples
- Troubleshooting Tekton Triggers
Feedback
Was this page helpful?