Skip to content

Tekton Triggers v0.10.0

Compare
Choose a tag to compare
@tekton-robot tekton-robot released this 23 Nov 17:51

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