Skip to content

Releases: tektoncd/triggers

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!

Tekton Triggers v0.9.0

15 Oct 03:30
Compare
Choose a tag to compare

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

    apiVersion: 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 supports kubernetesResource which helps us use PodSpecable ducktype. For backward compatibility both ways are supported and resources 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 and ref
    for a single binding. Use ref 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 new name/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 and ref for a single binding. Use ref to refer to a TriggerBinding resource and name 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!