Triggers is a Kubernetes Custom Resource Definition (CRD) controller that allows you to extract information from events payloads (a "trigger") to create Kubernetes resources.
The contents of this repo originated from implementing this design (visible to members of the Tekton mailing list).
Tekton is a Kubernetes-native, continuous integration and delivery (CI/CD) framework that enables you to create containerized, composable, and configurable workloads declaratively through CRDs. Naturally, CI/CD events contain information that should:
- Identify the kind of event (GitHub Push, Gitlab Issue, Docker Hub Webhook, etc.)
- Be accessible from and map to particular pipelines (Take SHA from payload to use it in pipeline X)
- Deterministically trigger pipelines (Events/pipelines that trigger pipelines based on certain payload values)
The Tekton API enables functionality to be separated from configuration (e.g. Pipelines vs PipelineRuns) such that steps can be reusable, but it does not provide a mechanism to generate the resources (notably, PipelineRuns and PipelineResources) that encapsulate these configurations dynamically. Triggers extends the Tekton architecture with the following CRDs:
TriggerTemplate
- Templates resources to be created (e.g. Create PipelineResources and PipelineRun that uses them)TriggerBinding
- Validates events and extracts payload fieldsEventListener
- ConnectsTriggerBindings
andTriggerTemplates
into an addressable endpoint (the event sink). It uses the extracted event parameters from eachTriggerBinding
(and any supplied static parameters) to create the resources specified in the correspondingTriggerTemplate
. It also optionally allows an external service to pre-process the event payload via theinterceptor
field.ClusterTriggerBinding
- A cluster-scoped TriggerBinding
Using tektoncd/triggers
in conjunction with tektoncd/pipeline
enables you to
easily create full-fledged CI/CD systems where the execution is defined
entirely through Kubernetes resources.
You can learn more by checking out the docs
Install Triggers, check out the
installation guide, examples or
follow the getting started guide to become
familiar with the project. The getting started guide walks through setting up an
end-to-end image building solution, which will be triggered from GitHub push
events.
Hooray!
- See CONTRIBUTING.md for an overview of our processes
- See DEVELOPMENT.md for how to get started
- Look at our good first issues and our help wanted issues