github tektoncd/pipeline v0.21.0
Tekton Pipeline release v0.21.0 "Savannah Ash"

latest releases: v0.59.0, v0.50.6, v0.47.9...
3 years ago

🎉 WhenExpressions and Results in Finally Tasks 🎉

-Docs @ v0.21.0
-Examples @ v0.21.0

Installation one-liner

kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.21.0/release.yaml

Upgrade Notices

  • Requires Kubernetes 1.17+ to run
  • The controller now requires that the SYSTEM_NAMESPACE environment variable is set. This was set by default before, but is now required.

Features

  • ✨ WhenExpressions in Finally Tasks (#3738)

    WhenExpressions are supported in Finally Tasks not only to provide efficient guarded execution but also to improve the
    reusability of Tasks in Finally

  • ✨ Allow pipeline results to use custom task results (#3694)

    Pipeline results now can refer to pipeline tasks that run custom tasks and produce results.

  • ✨ Support multiple secrets of type dockercfg and dockerconfigjson (#3659)

    Adds support for multiple secrets of type dockercfg or dockerconfigjson

  • ✨ add sparse checkout to git (#3646)

  • ✨ Implement Pending PipelineRun status (TEP-0015) (#3522)

    Added PipelineRunPending setting to PipelineRun Spec Status to allow creating PipelineRuns in a Pending state.

  • ✨ consuming task results in finally (#3242)

    Final tasks can be configured to consume results of PipelineTasks from tasks section.

Deprecation Notices

N/A

Backwards incompatible changes

N/A

Fixes

  • 🐛 Make volume mount names RFC1123 DNS label strict (#3740)

    Fixed a bug where a secret name with dots (e.g. gcr.io) led to a TaskRun creation failure, because the secret name was used internally as part of a volume mount name. These volume mount name have the be RFC1123 DNS label conform and therefore disallow dots as part of the name.

  • 🐛 Validate Context Variables in Finally Tasks (#3733)

    Added validation for Context variables in Finally Tasks

  • 🐛 Change to use the FilteredPodInformer to only watch Tekton relevant pods (#3725)

    Performance improvement: Only watch Pods managed by Tekton, instead of all Pods on the cluster

  • 🐛 Fix duplicate Pods when TaskRun or Pod labels are changed (#3708)

    Fix duplicate Pods when TaskRun or Pod labels are changed

  • 🐛 Fix stuck PipelineRun caused by optional workspace (#3702)

    Fixed bug where PipelineRun that didn't provide an optional workspace to the Pipeline would stall until timing out.

  • 🐛 taskrun: fix log message (#3689)

  • 🐛 Fix bug where step status ordering did not match step container ordering (#3679)

    Fixed bug where sorted order of step statuses did not match order of step containers.

  • 🐛 set task as failed (#3571)

    Declare task failure when it hits CreateContainerConfigError instead of setting it to unknown i.e. running.

  • 🐛 Move resolution of Pipeline Results to end of completed/successful reconcile (#3684)

Misc

  • 🔨 Use crane cp to move images, instead of gcloud (#3755)

    Release: Copy and re-tag images using crane, instead of gcloud

  • 🔨 Update TOC in Pipelines documentation (#3743)

  • 🔨 Refactor IsFinallySkipped Tests (#3729)

  • 🔨 Document deprecation of the build-gcs PipelineResource type (#3728)

    Deprecate the build-gcs sub-type of the storage PipelineResource

  • 🔨 bump deps - k8s to 1.19.7 (#3724)

  • 🔨 Issue #3553 reduce unit test execution time (#3652)

  • 🔨 Remove pkg/system. (#3177)

    The controller now requires that the SYSTEM_NAMESPACE environment variable is set. This was set by default before, but is now required.

  • 🔨 tekton controller logger key (#3752)

    The controller logger key is now set to "tekton-pipelines-controller" instead of "tekton" which is consistent with the webhook service name "tekton-pipelines-webhook".

  • 🔨 promoting webhook service name in the logger (#3741)

    Promoting webhook service name in the logger instead of always defaulting to "webhook-pipeline". The service name is read from the env. variable WEBHOOK_SERVICE_NAME if specified else defaults to "tekton-pipelines-webhook"

  • 🔨 Add nonroot user to pipeline's build-base image (#3727)

    Added non-root user 65532 to pipelines' build-base image. Git-init can now be used to clone repositories as a non-root user.

  • 🔨 release: publish only on a given list of platforms 💻 (#3717)

    Publish images for a finite list of architecture instead of all the one supported by base images. The current list is : linux/amd64 (supported) and linux/arm64, linux/s390x, linux/ppc64le.

  • 🔨 Validate dependencies between resolved resources in a PipelineRun (#3711)

    Added extra validations before PipelineRun can start: all result variables in the Pipeline must be valid and optional workspaces from a pipeline can only be passed to tasks expecting optional workspaces.

  • 🔨 Fix replace go mod of client-go (#3668)

  • 🔨 Use main branch for community repository 🧙 (#3747)

  • 🔨 bump ggcr & k8schain module versions (#3736)

  • 🔨 Add kustomize.yaml to the Tekton folder (#3754)

  • 🔨 Small updates for s390x tests (#3714)

  • 🔨 Ignore generated openapi code when running golangci-lint (#3685)

  • 🔨 adding unit tests for pipelineTaskList.Deps (#3597)

  • 🔨 Fix TestPipelineLevelFinally_OneDAGTaskFailed test to avoid false negative error (#3722)

  • 🔨 Skip the dropNetworking test if it doesn't have the correct privileges. (#3653)

Docs

  • 📖 Correct workspace doc on behaviour of mountPath (#3719)

    Fixed doc issue: relative workspace mountPaths are not prepended with "/workspace/" and never have been.

  • 📖 Fix typo in auth.md (#3709)

  • 📖 Update taskruns.md doc (#3696)

    Fix wrong path in the taskruns.md document.

  • 📖 Fix the broken link of pipeline previous yaml file (#3671)

  • 📖 updating doc - pipelineResult referencing results of a finally task (#3753)

  • 📖 Add docs about cloud events structure (#3735)

  • 📖 Add comment to PipelineRunSpecStatusPending (#3723)

  • 📖 updating readme with 0.20.1 (#3698)

  • 📖 Add link to docs and exmples for v0.20.0 (#3686)

Thanks

Thanks to these contributors who contributed to v0.21.0!

Extra shout-out for awesome release notes:

Don't miss a new pipeline release

NewReleases is sending notifications on new releases.