Releases: tektoncd/triggers
Tekton Triggers v0.12.1
-Docs @ v0.12.1
-Examples @ v0.12.1
Changes
Fixes 🐛
- Fix reconcile failures when creating Knative service (#995)
How to upgrade from v0.12.0 :up_arrow:
kubectl apply -f https://storage.googleapis.com/tekton-releases/triggers/previous/v0.12.1/release.yaml
Thanks
Thanks to these contributors who contributed to v0.12.1!
Tekton Triggers v0.12.0
-Docs @ v0.12.0
-Examples @ v0.12.0
Changes
Features
-
Switch to UUID for event IDs (#926)
Change the event ID representation from a 5 character random string to a UUID.
-
Add support for custom object to triggers eventlistener (#958)
Introduced new field customResource to support Knative Service for EventListener
apiVersion: triggers.tekton.dev/v1alpha1 kind: EventListener metadata: name: github-listener-interceptor-customresource spec: ... resources: customResource: apiVersion: serving.knative.dev/v1 kind: Service metadata: spec: template: spec: serviceAccountName: tekton-triggers-example-sa containers: - resources: requests: memory: "64Mi" cpu: "250m" limits: memory: "128Mi" cpu: "500m"
-
Validate Event Body for Json Format (#969)
We now throw http.BadRequest status code(400) if event payload isn't json.
Backwards incompatible changes 🚨
In current release:
-
Remove deprecated field template.Name in favour of template.Ref (#919)
Deprecated field template.Name in has been removed in favor of template.Ref
-
Switch to UUID for event IDs (#926)
Change the event ID representation from a 5 character random string to a UUID.
Fixes 🐛
- Send Tekton installation namespace to EL (#927)
- Add validation to the length of EventListener name (#935)
- Use generateName instead of $(uid) for metadata.name (#939)
- Fix container name in Deployment for interceptors (#956)
Misc 🔨
- Add links to versioned docs for v0.11.1 (#918)
- Remove deprecated field template.Name in favour of template.Ref (#919)
- Add links to versioned docs for v0.11.2 (#930)
- Make test names consistent in reconciler (#937)
- K8s dependency bump to v0.19.7(#934)
- Add kustomize.yaml to the Tekton folder (#950)
- Adding tests for cel expressions demonstrating use of has (#947)
- Use tekton beta resources for build (#957)
- Use golang-build-legacy and golang-test-legacy. (#965)
Docs 📖
- Update min K8s version for Triggers (#922)
- Add link to godoc reference (#933)
- Add some documentation around debugging EventListeners. (#954)
- doc: template inside a Trigger is not optional (#963)
- Rewrite the Tekton Triggers installation instructions for clarity and flow (#966)
- Write a new Tekton Triggers Overview (#972)
- Update to match the new /docs/README.md Triggers Overview from PR 972 (#975)
How to upgrade from v0.11.2 :up_arrow:
kubectl apply -f https://storage.googleapis.com/tekton-releases/triggers/previous/v0.12.0/release.yaml
Thanks
Thanks to these contributors who contributed to v0.12.0!
- ❤️ @MarcelMue
- ❤️ @afrittoli
- ❤️ @bigkevmcd
- ❤️ @dibyom
- ❤️ @dprotaso
- ❤️ @jmcshane
- ❤️ @khrm
- ❤️ @rudeigerc
- ❤️ @savitaashture
- ❤️ @sergetron
Extra shout-out for awesome release notes:
Tekton Triggers v0.11.2
-Docs @ v0.11.2
-Examples @ v0.11.2
Changes
Fixes 🐛
- Send Tekton installation namespace to EL (#929)
The EventListener did not have knowledge of which namespace Triggers was installed in. Instead it always assumed it was tekton-pipelines
leading to the bug described in #923.
This PR fixes by having the Reconciler send the installation namespace as a environment variable set on the EventListener's pod.
How to upgrade from v0.11.1 :up_arrow:
kubectl apply -f https://storage.googleapis.com/tekton-releases/triggers/previous/v0.11.2/release.yaml
Thanks
Thanks to these contributors who contributed to v0.11.2!
- ❤️ @dibyom
Tekton Triggers v0.11.1
-Docs @ v0.11.1
-Examples @ v0.11.1
Changes
Features
NOTE: Please check v0.11.0 release notes for all the new features and bug fixes
Deprecation Notices 🚨
-
Revert removal of template.Name field and handle Deprecation of template.Name field (#912)
Deprecate template.Name in favor of
template.Ref
Fixes 🐛
- Add missing namespace to core-interceptors role (#917)
Docs 📖
- Add links to versioned docs for v0.11.0 (#908)
How to upgrade from v0.10.2 :up_arrow:
Note:
- Users can skip
v0.11.0
and directly upgrade tov0.11.1
fromv0.10.2
to avoid issue withtemplate.Name
field. - Upgrading to
v0.11.1
will get all the features and bug fixes fromv0.11.0
. Please check v0.11.0 release notes for all the new features and bug fixes.
kubectl apply -f https://storage.googleapis.com/tekton-releases/triggers/previous/v0.11.1/release.yaml
Thanks
Thanks to these contributors who contributed to v0.11.1!
- ❤️ @dibyom
- ❤️ @savitaashture
Extra shout-out for awesome release notes:
- 😍 [@savitaashture]
Tekton Triggers v0.11.0
-Docs @ v0.11.0
-Examples @ v0.11.0
Changes
Features ✨
-
Migrate GitLab, BitBucket, GitHub interceptors to new interface (#832)
-
Implement marshalJSON CEL function (#842)
New CEL functionmarshalJSON
that can encode a JSON object or array to a string. -
Add a server for serving core interceptors (#858)
Add a HTTP handler for serving core interceptors and this packages all 4 core interceptors into a single HTTP server.
Each interceptor is available at a different path e.g. /cel for CEL etc. -
Add SecurityContext to reconciled Deployment (#862)
Add a security context on event listener deployments to prevent issues with restrictive default PSPs.
-
Add flag to disable security context on EL Deployment (#865)
Add a flag to disable SecurityContext on the reconciled eventlistener Deployment
-
Change InterceptorRequest.Body to string (#877)
InterceptorRequest.Body is now of type string. No immediate action is required but once #271 is fully implemented, interceptor authors will have to parse the Body separately as a JSON object.
-
Move core interceptors to their own server (#878)
Deprecation Notices 🚨
-
Deprecate PodTemplate and ServiceType in favour of Resource (#897)
Deprecate PodTemplate and ServiceType in favour of Resource.
Backwards incompatible changes 🚨
- Remove the template.Name field (#898)
Action required: The Template.Name field has been removed from the Trigger Spec. Please use Template.Ref instead. - Remove deprecated spec style embedded bindings (#900)
BREAKING CHANGE:
TheSpec
field has been removed from theTriggerSpecBinding
.
Fixes 🐛
-
Fix example SA permissions (#848)
The example service account has been updated to include access to clustertriggerbindings.
-
refactor: Do not use %w unless in fmt.Errorf (#855)
-
Merge extensions into body for webhook interceptors (#859)
Extensions added by a CEL Interceptor will be passed on to webhook interceptors by merging the extension fields into the event body under a
extensions
field. See docs/eventlisteners.md for more details. -
Bind admin role so that SA can use PSP (#863)
-
Update tekton eventlistener portname owing to istio naming conventions (#880)
Event listener port should be called
http-listener
instead oflistener
. -
Update TLS example (#885)
-
Use system.DefaultNamespace for interceptor urls (#891)
-
Add core interceptors image to created images (#895)
Misc 🔨
-
Use a test helper for rawExtension objects in tests (#843)
-
Remove deprecated fields podTemplate and serviceType (#852)
-
Use own Status type for InterceptorResponse (#854)
-
Update CRD to apiextensions.k8s.io/v1 (#872)
-
Add @savitaashture as an OWNER 🎉 (#873)
-
Refactor flags to improve unit tests (#876)
Pass a config struct to the reconciler instead of using flags directly.
-
Fix behaviour which allows EL ports to be configured (#881)
-
Refactor sink test (#882)
-
Update service account name for TLS example (#884)
-
Add https-listener service port name (#887)
-
Improve the TriggerTemplate message (#899)
Improve the error message when parsing the results of rendering a TriggerTemplate.
-
Bump knative to release-0.20 and pipeline to v0.20.0 (#903)
This bumps the minimum supported version of kubernetes to 0.17
Docs 📖
-
Add links to versioned docs for v0.10.1 (#851)
-
Remove mention of dep in dev docs (#866)
-
Add docs for installing nightly release (#874)
-
Fixed link in EventListener secure connection docs (#905)
Link fixed in the docs for the EventListener example with secure connection.
-
Add links to versioned docs for v0.10.2 (#907)
How to upgrade from v0.10.2 :up_arrow:
kubectl apply -f https://storage.googleapis.com/tekton-releases/triggers/previous/v0.11.0/release.yaml
Note: Tekton Triggers v0.11.0 requires Kubernetes 1.17+ to run.
Thanks
Thanks to these contributors who contributed to v0.11.0!
- ❤️ @MarcelMue
- ❤️ @bigkevmcd
- ❤️ @dibyom
- ❤️ @fiunchinho
- ❤️ @khrm
- ❤️ @savitaashture
- ❤️ @shuheiktgw
- ❤️ @siamaksade
- ❤️ @sravankumar777
- 😍 @ljupchokotev
Extra shout-out for awesome release notes:
- 😍 [@MarcelMue]
- 😍 [@dibyom]
- 😍 [@khrm]
- 😍 [@savitaashture]
- 😍 [@sravankumar777]
- 😍 [@siamaksade]
- 😍 [@bigkevmcd]
- 😍 [@ljupchokotev]
Tekton Triggers v0.10.2
-Docs @ v0.10.2
-Examples @ v0.10.2
Changes
Fixes 🐛
- Merge extensions into body for webhook interceptors (#860)
Extensions added by a CEL Interceptor will be passed on to webhook interceptors by merging the extension fields into the event body under aextensions
field. See docs/eventlisteners.md##chaining-interceptors for more details.
How to upgrade from v0.10.1 :up_arrow:
kubectl apply -f https://storage.googleapis.com/tekton-releases/triggers/previous/v0.10.2/release.yaml
Thanks
Thanks to these contributors who contributed to v0.10.1!
- ❤️ @dibyom
Tekton Triggers v0.10.1
-Docs @ v0.10.1
-Examples @ v0.10.1
Features
NOTE: Please check the v0.10.0 release notes for all the new features and bug fixes
Fixes 🐛
- Fix example SA permissions (#848)
The example service account has been updated to include access to clustertriggerbindings.
How to upgrade from v0.10.0 :up_arrow:
kubectl apply -f https://storage.googleapis.com/tekton-releases/triggers/previous/v0.10.1/release.yaml
Thanks
Thanks to these contributors who contributed to v0.10.1!
- ❤️ @dibyom
Tekton Triggers v0.10.0
-Docs @ v0.10.0
-Examples @ v0.10.0
Changes
Features
-
Add timestamps in logs (#802):sparkles:
Add timestamp in the logs of the pipelines controller, webhook, and eventlisteners.
-
Improve the error message when URL form encoding is received (#806)
The GitHub interceptor now detects form-encoded hook requests and returns an explicit error for this case rather than the generic JSON parsing error.
-
Allow users to set resources as part of podtemplate (#815)
Now trigger allow users to specify their resource information in eventlistenerapiVersion: triggers.tekton.dev/v1alpha1 kind: EventListener metadata: name: github-listener-interceptor spec: ... resources: kubernetesResource: spec: template: spec: serviceAccountName: tekton-triggers-github-sa containers: - resources: requests: memory: "64Mi" cpu: "250m" limits: memory: "128Mi" cpu: "500m"
-
Use Listers to fetch data in the Sink(#821)
EventListener ServiceAccounts now need to have "list" and "watch" verbs in addition to "get" for all triggers resources. See examples at https://github.com/tektoncd/triggers//tree/v0.10.0//examples/role-resources/triggerbinding-roles/role.yaml and https://github.com/tektoncd/triggers/tree/v0.10.0//examples/role-resources/clustertriggerbinding-roles/clusterrole.yaml
-
Add Timeout for EventListener Server (#747)
Add Read, Write, and Idle timeout for connections to the EventListener.
-
TEP-0022: Switch to immutable input event bodies (#828)
Migrate CEL to new Interceptor Interface -
Add EventListener Selector For TriggerCRD (#773)
Added Namespace Selector field for EventListener which enables EventListener to serve across the namespace.namespaceSelector
field withmatchNames
need to be provided to enable selector.namespaceSelector: matchNames: - nsName1 - nsName2
If namespace selector is used, the service account for the EventListener will need a clusterRole. See the example at https://github.com/tektoncd/triggers/tree/v0.10.0/examples/selectors/01_rbac.yaml
- Allow secure connection to eventlistener pod (#819)
HTTPS connection to eventlistener can be configured by tweaking eventlistener configurationapiVersion: triggers.tekton.dev/v1alpha1 kind: EventListener metadata: name: github-listener-interceptor spec: ... resources: kubernetesResource: spec: template: spec: serviceAccountName: tekton-triggers-github-sa containers: - env: - name: TLS_CERT valueFrom: secretKeyRef: name: tls-key-secret key: tls.crt - name: TLS_KEY valueFrom: secretKeyRef: name: tls-key-secret key: tls.key
- Drop escaping of strings in the JSON (#823)
Change the escaping of parameters into TriggerTemplates.
Backwards incompatible changes 🚨
In the current release:
-
TEP-0022: Switch to immutable input event bodies (#828)
action required: If you are using
overlays
in the CEL Interceptor, please update your bindings to use$(extensions.) instead of $ (body.)BREAKING CHANGE:
CEL overlays now add fields to a new top levelextensions
field instead of the modifying the incoming event body. TriggerBindings can access values within this newextensions
field using$(extensions.<key>)
syntax. -
Drop escaping of strings in the JSON (#823)
Previously, parameters were escaped as they were being replaced into a TriggerTemplate, by replacing double-quotes " with an escaped version ", this functionality has been removed, as it was breaking quoted strings, and in some cases, rendering the resulting output unparseable.
action required: If you were relying on the escaping, you can retain the old behaviour by adding an annotation to an affected TriggerTemplate,
triggers.tekton.dev/old-escape-quotes: "true"
Fixes 🐛
- Don't log Fatal when handling events in the eventlistener (#810)
- Fix apiVersion for test triggerbinding (#826)
- Change the webhook name to triggers-webhook (#829)
Fix an issue that caused the webhook, under certain conditions, to fail to acquire a lease and not function correctly as a result. - Fix EL Container Arguments in Reconciler (#838)
Misc 🔨
- Add multi-arch builds for triggers (#812)
- Fix GitHub and GitLab capitalization (#811)
- Update Tekton Pipeline Dependency Version to v0.18.0 (#825)
- Separate SAs for controller/webhook deployment to allow for different permission sets (#818)
- Switch webhook apiVersions to v1 (#830)
- Use zaptest logger in tests (#833)
Docs 📖
- Fixing broken link to pipeline repo (#814)
- Update README for trigger selector based examples (#839)
- Update tls example yaml (#834)
How to upgrade from v0.9.1 :up_arrow:
kubectl apply -f https://storage.googleapis.com/tekton-releases/triggers/previous/v0.10.0/release.yaml
Thanks
Thanks to these contributors who contributed to v0.10.0!
- ❤️ @Alan-Cha
- ❤️ @afrittoli
- ❤️ @barthy1
- ❤️ @bigkevmcd
- ❤️ @dibyom
- ❤️ @gabemontero
- ❤️ @khrm
- ❤️ @psschwei
- ❤️ @savitaashture
- ❤️ @yaoxiaoqi
Extra shout-out for awesome release notes:
- 😍 [@afrittoli]
- 😍 [@bigkevmcd]
- 😍 [@dibyom]
- 😍 [@khrm]
- 😍 [@savitaashture ]
- 😍 [@gabemontero]
Tekton Triggers v0.9.1
-Docs @ v0.9.1
-Examples @ v0.9.1
Changes
Features
NOTE: Please check the v0.9.0 release notes for all the new features and bug fixes
Fixes 🐛
- Revert "dibyo's point about only EL sink/interceptors reading secrets" (#804)
Allow webhook to create secrets (for TLS certs)
How to upgrade from v0.9.0 :up_arrow:
kubectl apply -f https://storage.googleapis.com/tekton-releases/triggers/previous/v0.9.1/release.yaml
Thanks
Thanks to these contributors who contributed to v0.9.1!
- ❤️ @dibyom
Tekton Triggers v0.9.0
-Docs @ v0.9.0
-Examples @ v0.9.0
Changes
Features
-
Enhance existing eventlistener to support PodTemplate for Deployment using duck type (#734) ✨
A new field
resources
has been introduced as part of EventListener specapiVersion: triggers.tekton.dev/v1alpha1 kind: EventListener metadata: name: github-listener-interceptor spec: triggers: ... resources: kubernetesResource: serviceType: NodePort spec: template: metadata: labels: key: "value" annotations: key: "value" spec: serviceAccountName: tekton-triggers-github-sa nodeSelector: app: test tolerations: - key: key value: value operator: Equal effect: NoSchedule
As of now the
resources
field supportskubernetesResource
which helps us use PodSpecable ducktype. For backward compatibility both ways are supported andresources
are optional. -
cel-go with string upper and lower-casing. (#766)
Updated version of cel-go with new functionality for upper and lower-casing ASCII strings. e.g.
body.upperMsg.lowerAscii()
-
Adds support for name/value embedded Bindings (#768)
TriggerBindings can now be embedded by using just name/value fields inside a Trigger or a EventListener.
BREAKING CHANGE: With this change, users cannot specify both
name
andref
for a single binding. Useref
to refer to a TriggerBinding resource and
name
for embedded bindings.# NEW SYNTAX: bindings: - ref: some-name - name: commit_id # embedded binding value: "$(body.head_commit_id)" # OLD SYNTAX: bindings: - name: some-name spec: params: - name: commit_id # embedded binding value: "$(body.head_commit_id)
-
PodSecurityPolicy Config fixes to allow runnning in restricted envs (#707)
The PodSecurityPolicy configuration was updated so that container must run as non-root, and the RBAC for utilizing the PSP was moved from cluster scoped to namespace scoped to better ensure triggers can not utilize other PSPs unrelated to this project
-
Add support for embedded trigger templates (#783)
Users can now specify embed a TriggerTemplate spec inside a Trigger.
-
Use template.ref instead of template.name (#787)
Use template.ref to refer to trigger templates in a Trigger instead of template.name. The name field is deprecated and will be removed in a future release.
-
Enhance validation code for triggers (#785)
Triggers validation now reports all the error at once with more detailed information.
Deprecation Notices 🚨
-
Use template.ref instead of template.name (#787)
The template.name field is deprecated (in favor of template.ref) and will be removed in a future release.
-
Adds support for name/value embedded Bindings (#768)
The old syntax for embedded TriggerBindings (using
spec.params
) is deprecated. Use the newname
/value
fields instead:
Backwards incompatible changes 🚨
In current release:
-
Bump Knative/K8s dependencies. (#784)
action required: Users of the generated clients will need to conform to the K8s 1.18 style breaking changes (namely passing context.Context to all calls)
-
Adds support for name/value embedded Bindings (#768)
BREAKING CHANGE: users cannot specify both
name
andref
for a single binding. Useref
to refer to a TriggerBinding resource andname
for embedded bindings. -
remove interceptor cross namespace secret references (#748)
BREAKING CHANGE: any interceptors that attempt to reference a Secret outside of the EventListener's namespace will have to change to have those Secrets reside in the EventListener's namespace.
-
Apply triggertemplate param default value if triggerbinding param missing from body/header (#761)
Triggers now applies the default value of a trigger template param if it's value cannot be resolved from a TriggerBinding. This is a BREAKING CHANGE. Previously, Triggers would throw an error saying that the binding value could not be resolved (See #568)
Fixes 🐛
-
Apply triggertemplate param default value if triggerbinding param missing from body/header (#761)
Triggers now applies the default value of a trigger template param if it's value cannot be resolved from a TriggerBinding. This is a BREAKING CHANGE. Previously, Triggers would throw an error saying that the binding value could not be resolved (See #568)
-
Set runAsUser uid for nonroot distroless image (#789)
Fix inconsistent uid for the controller and webhook deployment, resulting in failure of installing tekton pipeline on minikube (and other platforms.)
-
Fix Binding test builder to only use ref (#769)
-
remove interceptor cross namespace secret references (#748)
BREAKING CHANGE: any interceptors that attempt to reference a Secret outside of the EventListener's namespace will have to change to have those Secrets reside in the EventListener's namespace.
-
Add Clusterrole Aggregate View and Edit for Trigger CRD (#790)
-
Remove explicit pinning of golang version (#794)
-
Fix TestTrigger_Error using deterministic inputs (#798)
Misc 🔨
-
Add release links to versioned docs for v0.8.1 (#756)
-
Refactor to not use logger from pipeline (#760)
-
Use refs instead of name to refer to Bindings (#757)
-
Un-indent release note blocks in PR template (#763)
-
Cleanup exported methods which are used in the same package (#764)
-
Add the pod resource to the test controller (#780)
-
Update submitter checklist to have release notes block (#786)
-
Bump pipeline version to v0.16.3 (#767)
-
Bump Knative/K8s dependencies. (#784)
action required: Users of the generated clients will need to conform to the K8s 1.18 style breaking changes (namely passing context.Context to all calls)
Docs 📖
- Update README.md to fix outdated kubectl command (#770)
How to upgrade from v0.8.1 :up_arrow:
kubectl apply -f https://storage.googleapis.com/tekton-releases/triggers/previous/v0.9.0/release.yaml
Thanks
Thanks to these contributors who contributed to v0.9.0!
- ❤️ @T0MASD
- ❤️ @bigkevmcd
- ❤️ @bobcatfish
- ❤️ @dibyom
- ❤️ @gabemontero
- ❤️ @khrm
- ❤️ @mattmoor
- ❤️ @piyush-garg
- ❤️ @savitaashture