Releases: tektoncd/triggers
Tekton Triggers v0.4.0-rc1
-Docs @ v0.4.0-rc1
-Examples @ v0.4.0-rc1
Changes
Features ✨
- Allow creating v1beta1 resources (#490)
Triggers can now create both v1alpha1 and v1beta1 Pipeline resources. - Implement constant-time secret comparisons in CEL. (#492)
New CEL interceptor functioncompareSecrets
for securely comparing strings to secrets in CEL expressions. - introduce authentication/authorization at the EventListenerTrigger level (with default back to existing EventListener level) (#454)
The specification of a ServiceAccount on the EventListener Trigger is now available as an override of the ServiceAccount of the EventListener to facilitate permissions changes with respect to creating Tekton resources as the result of the sink receiving an event.
Backwards incompatible changes 🚨
In current release:
-
Switch API group for triggers to triggers.tekton.dev (#497)
All Triggers resources now use the triggers.tekton.dev API Group.
BREAKING CHANGE: Users will have to delete and recreate resources after updating the API Group. Users will also have to update their EventListener Role resource to point to the triggers.tekton.dev API Group for Triggers resources. -
Update pipeline version to 0.11-rc1 (#469)
Triggers now requires kubernetes version 1.15 or higher.
Fixes 🐛
- Support JSON double values being reencoded in the CEL interceptor (#470)
- Cleanup cluster resources when test fails (#503)
- Use static selector labels for EL svc/deployments (#513)
Misc 🔨
- Stop marking dynamic client as generated code (#489)
- Add 2020 roadmap 🛣️ (#498)
- [master] Fix spelling errors (#511)
- Bump pipeline version to 0.11.0 (#512)
- Fix instructions in README (#471)
- Add links to v0.3.1 in README (#464)
- Clean up sink_test.go (#413)
- Format markdown (#465)
- Update release README (#466)
Docs 📖
- Fix inaccurate docs about TriggerTemplate (#477)
- Add additional documentation. (#475)
- Adds "commented" website front matter to docs (#500)
- Change api version (#502)
How to upgrade from v0.3.1 ⬆️
Once you have updated your cluster with the 0.4.1-rc1 release:
-
First, get all existing Trigger resources and store the yaml locally if you do not already have them locally.
-
Next, delete all of the existing Triggers resources:
kubectl delete triggertemplates --all kubectl delete triggerbindings --all kubectl delete clustertriggerbindings --all kubectl delete eventlisteners --all
-
Update the Role resource used by each EventListener's ServiceAccount to use the new APIGroups
-
Change the
apiVersion
field totriggers.tekton.dev
for each resource yaml and reapply the yaml -
Delete the old CRDs:
kubectl delete crd triggerbindings.tekton.dev kubectl delete crd clustertriggerbindings.tekton.dev kubectl delete crd triggertemplates.tekton.dev kubectl delete crd eventlisteners.tekton.dev
If you are using the Triggers Client in your go code, then update TriggersClient.TektonV1alpha1()
to TriggersClient.TriggersV1alpha1()
(here is a link to the relevant clientset code).
Thanks
Thanks to these contributors who contributed to v0.4.0-rc1!
- ❤️ @akihikokuroda
- ❤️ @bigkevmcd
- ❤️ @bobcatfish
- ❤️ @devholic
- ❤️ @dibyom
- ❤️ @gabemontero
- ❤️ @loafyloaf
- ❤️ @mattmoor
- ❤️ @ncskier
- ❤️ @skaegi
Extra shout-out for awesome release notes:
- 😍 @bigkevmcd
- 😍 @dibyom
- 😍 @gabemontero
Tekton Triggers v0.3.1
-Docs @ v0.3.1
-Examples @ v0.3.1
Changes
Fixes 🐛
Docs 📖
How to upgrade from v0.2.1 ⬆️
- Update your Webhook Interceptors to receive HTTP POST requests (if they were not already doing so).
Thanks
Thanks to these contributors who contributed to v0.3.1!
- ❤️ @akihikokuroda
- ❤️ @bobcatfish
- ❤️ @dibyom
- ❤️ @ncskier
Tekton Triggers v0.3.0
-Docs @ v0.3.0
-Examples @ v0.3.0
Changes
Features ✨
-
Use
tekton
instead of all as categories 🎿(#360)Remove the category
all
for our CRD and have atekton
category that is shared with other tektoncd projects. -
Add support for ClusterTriggerBinding (#358)
New ClusterTriggerBinding resource which is similar to TriggerBinding but cluster-scoped.
To use a ClusterTriggerBinding in an EventListener's
bindings
, you must specify thekind
field asClusterTriggerBinding
. By default, thekind
field isTriggerBinding
, and it can be omitted. -
CEL Interceptor improvements
-
Add support for adding additional fields to the body. (#329)
The CEL Interceptor can now add new derived fields to the request body that can be picked up in a TriggerBinding.
-
Add support for splitting strings to CEL expressions. (#411)
This adds a CEL expression function for splitting strings.
-
Add CEL function canonical. (#410)
This adds a new canonical function on the header, making it easy to fetch a request header by name.
-
Add decodeb64 function to CEL expressions. (#404)
This adds a
decodeb64
function to the CEL expressions usable by the overlay mechanism.
-
-
Add Liveness Probe for EventListener Deployment (#432)
Add a Liveness Probe for EventListener Deployment at URL /live
-
Add Version Label to Triggers Deployment & Service (#428)
Adds the
version
andtriggers.tekton.dev/release
labels with version information.
Backwards incompatible changes 🚨
In current release:
-
Ensure Interceptor request uses HTTP POST. (#438)
BREAKING CHANGE: Interceptors now receive HTTP POST requests regardless of the type of request the EventListener receives.
-
validate ObjectMetadata for TriggerTemplate (#435)
TriggerTemplates must have a metadata field.
-
Remove deprecated binding (#424)
-
Remove deprecated Interceptor (#425)
-
Remove deprecated Params field from EventListener (#444)
Misc 🔨
- Add .gitattributes information on generated files 🍥 (#381)
- Fix lint issue (#398)
- Fix e2e tests (#401)
- Bump tektoncd-pipeline to 0.10.1 (#396)
- Delete clusterscoped resource in teardown (#420)
- Move GH-Validate Interceptor code to example (#429)
- Increase waiting timeout (#433)
- Allow keeping namespaces after running tests for investigation (#431)
- Use k8s types and validation code with the TriggerResourceTemplate type (#422)
- Fixes for the nightly release process (#421)
- Add Regression test for large number of Triggers (#449)
- Fix broken symbolic links in cron example (#451)
Docs 📖
- Format markdown (#395)
- Replace doc links to v0.2.0 with links to v0.2.1 (#402)
- Update CEL docs (#407)
- Format markdown (#414)
- cel langdef doc links (#416)
- Fix yaml formatting (#417)
- Format markdown (#423)
- Format markdown (#430)
- Format markdown (#443)
- Add our go report card to the README (#445)
- Update EventListener docs format (#426)
- Fix typo cel interceptor example. (#446)
- Format markdown (#448)
- correct a misspelling (#452)
- Update gcloud command to use dogfooding cluster (#453)
- Replace gitlab-eventlistener with a working example (#434)
How to upgrade from v0.2.1 ⬆️
- Update your Webhook Interceptors to receive HTTP POST requests (if they were not already doing so).
- Delete and re-create your EventListeners (this has been fixed in the Triggers v0.3.1 release).
Thanks ❤️
Thanks to these contributors who contributed to v0.3.0!
Tekton Triggers v0.2.1
-Docs @ v0.2.1
-Examples @v0.2.1
Fixes
- Fix interceptor panic (#357)
- Allow brackets in TriggerBinding expressions (#376)
- Fix crashloop when upgrading EventListeners from 0.1 to 0.2 (#369)
- Disallow non label compliant names for Triggers (#383)
- Fix bug running multiple Triggers (#388)
- Fix webhook Interceptor header bug #393 (#399)
Upgrading from v0.1.0
- Give any ServiceAccount used by an EventListener permission to
get
,list
, andwatch
ConfigMaps. If you are using GitHub/GitLab interceptors to do payload verification, the ServiceAccount needsget
on Secrets as well. - Update TriggerBindings to use JSONPath syntax instead of gjson syntax.
- Move any EventListener
params
into a TriggerBinding. - Update EventListener Interceptors to use the Webhook Interceptor syntax.
- Update any trigger names or EventListener names that do not adhere to the Kubernetes syntax and character set requirements for label values.
Thanks
Thanks to these contributors who contributed to v0.2.1!
[DRAFT] Tekton Triggers v0.2.1-preview
Fixes
- Fix interceptor panic
- Allow nested brackets in TriggerBinding expressions
- Fix crashloop when upgrading ELs from 0.1 to 0.2
- Fix webhookInterceptor Bug
- Disallow non label compliant names for Triggers
Upgrading from v0.1.0
- Give any ServiceAccount used by an EventListener permission to
get
,list
, andwatch
ConfigMaps. If you are using Github/Gitlab interceptors to do payload verification, the ServiceAccount needsget
on Secrets as well. - Update TriggerBindings to use JSONPath syntax instead of gjson syntax.
- Move any EventListener
params
into a TriggerBinding. - Update EventListener Interceptors to use the Webhook Interceptor syntax.
- Update any trigger names or EventListener names that do not adhere to the Kubernetes syntax and character set requirements for label values.
Tekton Triggers v0.2.0
Tekton Triggers v0.2.0
Head over to the docs to get started:
https://github.com/tektoncd/triggers/tree/v0.2.0#tekton-triggers and https://github.com/tektoncd/triggers/tree/v0.2.0/docs
Notable Changes
Interceptors
- Triggers now support user configurable interceptors to allow modification and filtering of events. Included in this release are the following interceptors:- GitHub: Allows for validation of GitHub webhooks
- GitLab: Allows for validation of GitLab webhooks
- CEL: Allows for user configurable filtering expressions based on the incoming event payload. See https://opensource.google/projects/cel for more details.
- Webhook: Allows for user configurable interceptor extensions by calling out to the configured Kubernetes Service.
- Resources generated by Triggers are labelled with the trigger name, EventListener name, and event ID.
- Triggers now support multiple TriggerBindings.
- TriggerBindings now use JSONPath query syntax.
- EventListeners support dynamic clients to allow creation of custom resources.
- EventListeners return JSON responses including trace information.
- EventListener pods use a logger configured by a ConfigMap.
Breaking Changes
- gjson syntax for TriggerBindings was removed in favor of JSONPath.
EventListenerTrigger.params
is removed in favor of multiple bindings.- Trigger names and EventListener names must adhere to the Kubernetes syntax and character set requirements for label values.
Deprecation Warnings
EventListenerTrigger.interceptor
is deprecated in favor ofinterceptors
.EventListenerTrigger.binding
is deprecated in favor ofbindings
.
Upgrading from v0.1.0
- Give any ServiceAccount used by an EventListener permission to
get
,list
, andwatch
ConfigMaps. If you are using Github/Gitlab interceptors to do payload verification, the ServiceAccount needsget
on Secrets as well. - Update TriggerBindings to use JSONPath syntax instead of gjson syntax.
- Move any EventListener
params
into a TriggerBinding. - Update EventListener Interceptors to use the Webhook Interceptor syntax.
- Update any trigger names or EventListener names that do not adhere to the Kubernetes syntax and character set requirements for label values.
Thanks
Thanks to these contributors who contributed!
@afrittoli
@akihikokuroda
@bigkevmcd
@bobcatfish
@CarolynMabbott
@castlemilk
@cccfeng
@chmouel
@dibyom
@dlorenc
@Fabian-K
@iamejboy
@imjasonh
@khrm
@mattmoor
@ncskier
@nvoskuilen
@piyush-garg
@soulseen
@ston1th
@vdemeester
@vtereso
@wlynch
@zhangtbj
Tekton Triggers release v0.1.0
🎉 First Tekton Triggers Release! 🎉
This is the very first release of Tekton Triggers, which has built on the original tekton listener design, allowing users to extract information from events payloads (a "trigger") to create Kubernetes resources.
Head over to the docs to get started: https://github.com/tektoncd/triggers/tree/v0.1.0#tekton-triggers and https://github.com/tektoncd/triggers/tree/v0.1.0/docs
Features
-
TriggerTemplate
- Templates resources to be created (e.g. Create PipelineResources and PipelineRun that uses them) -
TriggerBinding
- Validates events and extracts payload fields -
EventListener
- Connects TriggerBindings and TriggerTemplates into an addressable endpoint (the event sink). It uses the extracted event parameters from each TriggerBinding (and any supplied static parameters) to create the resources specified in the corresponding TriggerTemplate. It also optionally allows an external service to pre-process the event payload via the interceptor field.
Thanks
Thanks to these contributors who contributed!