Skip to content

Releases: tektoncd/triggers

Tekton Triggers v0.13.0

14 Apr 18:54
Compare
Choose a tag to compare

Tekton Triggers v0.13.0

-Docs @ v0.13.0
-Examples @ v0.13.0

Installation

kubectl apply -f https://storage.googleapis.com/tekton-releases/triggers/previous/v0.13.0/release.yaml
kubectl apply -f https://storage.googleapis.com/tekton-releases/triggers/previous/v0.13.0/interceptors.yaml

Upgrade Notices

  1. As of this release, the Triggers release will contain two YAML files. release.yaml contains the core release artifacts while interceptors.yaml contain the 4 core interceptors (GitHub, GitLab, BitBucket, and CEL).

  2. The EventListener ServiceAccount will now need a ClusterRole (and corresponding ClusterRoleBinding) to use the new ClusterInterceptor types (example)

How to upgrade from v0.12.1 :up_arrow:

  • Apply the new releases
kubectl apply -f https://storage.googleapis.com/tekton-releases/triggers/previous/v0.13.0/release.yaml
kubectl apply -f https://storage.googleapis.com/tekton-releases/triggers/previous/v0.13.0/interceptors.yaml
  • Update your EventListener's ServiceAccount so that it can access ClusterInterceptors:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: tekton-triggers-example-clusterrole
rules:
  # EventListeners need to be able to fetch any clustertriggerbindings
- apiGroups: ["triggers.tekton.dev"]
  resources: ["clustertriggerbindings", "clusterinterceptors"]
  verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: tekton-triggers-example-clusterbinding
subjects:
- kind: ServiceAccount
  name: tekton-triggers-example-sa
  namespace: default
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: tekton-triggers-example-clusterrole

Changes

Features

  • ✨ Adding label selector for triggers (#970)

    Users can now configure triggers for an EventListener using labels

  • ✨ Added URL field to WebhookInterceptor (#1002)

    Users can now configure webhook interceptors by referencing a URL

  • ✨ Add ClusterInterceptor CRD for registering interceptors (#960)

    A new CRD called ClusterInterceptor has been added that allows for users to register new pluggable Interceptor types

  • ✨ Add API to configure Interceptors from a Trigger (#1001)

    Trigger spec authors can now configure interceptors using a new API that includes a ref field to refer to a ClusterInterceptor, and
    a params field to add parameters to pass on to the interceptor for processing

  • ✨ Migrate core interceptors to use InterceptorType CRD (#976)

    The four bundled interceptors (CEL, GitHub, GitLab, BitBucket) are now implemented using the new ClusterInterceptor CRD

  • ✨ Migrate core interceptors to new format (#1029)

    Any new Triggers created using the old style syntax for core interceptors is now automatically switched to the new refs/params
    based syntax.

Deprecation Notices

  • 🚨 Move replicas to KubernetesResource from eventlistener spec (#1021)

    Deprecated replicas from EventListener spec level and added replicas to KubernetesResource.

  • 🚨 Migrate core interceptors to new format (#1029)

    Interceptors in a Trigger are now configured using a new ref and params based syntax as described in #1001, and in #976 we
    have implemented the core interceptors using the new ClusterInterceptor CRD. So, these core interceptors can now be configured
    using the new syntax. The old way of configuring these interceptors is now deprecated but it will continue to work until it is removed
    in a future release. The defaulting webhook will automatically switch any usages of the old syntax to the new for any new Triggers.

Fixes

  • πŸ› Forcing eventlistener sink to resolve eventlistener before startup (#977)
  • πŸ› resources: Fail on non-string template labels. (#1030)
  • πŸ› Resolving file read issue with binding-eval (#1039)
  • πŸ› Resolving cache sync issues (#1037)
  • πŸ› Fixes Triggers release pipeline and tasks (#1024)
  • πŸ› Cleanup existing k8s resources after updating to customeResources (#1022)
  • πŸ› Update selector RBAC to include ClusterInterceptor (#1016)
  • πŸ› Sync lister informers before serving traffic (#1013)
  • πŸ› fix: Cron task needs to post json body (#989)

Misc

  • πŸ”¨ Update triggers, community and cli reference to use main… (#987)
  • πŸ”¨ Use v1 API for RoleBinding 🦝 (#1046)
  • πŸ”¨ Add separate interceptors file result to release pipeline (#1044)
  • πŸ”¨ Update publish task to include core interceptors (#1007)
  • πŸ”¨ Update Release Pipeline and associated Task πŸ§‘β€πŸ’» 😺 (#1000)
  • πŸ”¨ Add links to versioned docs for v0.12.1 (#999)

Docs

  • πŸ“– Rewrite the Triggers tutorial for clarity and flow (#1018)
  • πŸ“– Delete obsolete file (#1011)
  • πŸ“– Replace debugging-eventlisteners.md with the new Troubleshooting page (#1010)
  • πŸ“– Rewrite debugging-eventlisteners.md for clarity and flow (#1004)
  • πŸ“– Rewrite triggers.md for clarity and flow (#992)
  • πŸ“– Update descriptions for TriggerTemplates and TriggerBindings (#991)
  • πŸ“– Rewrite triggerbindings.md for clarity and flow (#988)
  • πŸ“– Rewrite triggertemplates.md for clarity and flow (#981)
  • πŸ“– Update examples to use both old and new syntax (#1028)
  • πŸ“– Update eventlisteners.md (#993)
  • πŸ“– Correct eventlistener docs to properly set service account for a trigger (#984)
  • πŸ“– Add link to versioned docs for v0.12.0 (#982)
  • πŸ“– fix a typo (#979)
  • πŸ“– Fix broken link to Getting Started (#978)

Thanks

Thanks to these contributors who contributed to v0.13.0!

Extra shout-out for awesome release notes:

To Be Done: Deprecation Notices, Backward Incompatible Changes

Tekton Triggers v0.12.1

15 Mar 22:17
Compare
Choose a tag to compare

-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

03 Mar 22:21
Compare
Choose a tag to compare

-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!

Extra shout-out for awesome release notes:

Tekton Triggers v0.11.2

27 Jan 17:49
Compare
Choose a tag to compare

-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!

Tekton Triggers v0.11.1

20 Jan 07:01
Compare
Choose a tag to compare

-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 to v0.11.1 from v0.10.2 to avoid issue with template.Name field.
  • Upgrading to v0.11.1 will get all the features and bug fixes from v0.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!

Extra shout-out for awesome release notes:

Tekton Triggers v0.11.0

18 Jan 15:22
Compare
Choose a tag to compare

-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 function marshalJSON 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:
    The Spec field has been removed from the TriggerSpecBinding.

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 of listener.

  • 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!

Extra shout-out for awesome release notes:

Tekton Triggers v0.10.2

15 Dec 10:22
Compare
Choose a tag to compare

-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 a extensions 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!

Tekton Triggers v0.10.1

03 Dec 07:36
Compare
Choose a tag to compare

-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!

Tekton Triggers v0.10.0

23 Nov 17:51
Compare
Choose a tag to compare

-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 eventlistener

    apiVersion: 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 with matchNames 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 configuration
     apiVersion: 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 level extensions field instead of the modifying the incoming event body. TriggerBindings can access values within this new extensions 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!

Extra shout-out for awesome release notes:

Tekton Triggers v0.9.1

15 Oct 22:05
Compare
Choose a tag to compare

-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!