github tektoncd/pipeline v0.14.0
Tekton Pipeline release v0.14.0 "Javanese Multivac"

latest releases: v0.59.5, v0.62.6, v0.65.2...
4 years ago

πŸŽ‰ Finally, more events in the cloud, and no default "master" πŸŽ‰

-Docs @ v0.14.0
-Examples @ v0.14.0

Installation one-liner

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

Upgrade Notices

Users need to pass in default parameter values or provide the required parameters in PipelineΒ spec as they now get validated by the controller.
The creds-init step is gone and its behavior is now handle by the entrypoint. This shouldn't have any impact except running as the same user as the step.

Changes

Features

  • ✨ Add expansion of context.(pipeline|pipelinerun|task|taskRun).name and add tests (#2880)
    $context.(task|taskRun|pipeline|pipelineRun).name can be used to reference the appropriate name when in pipelineRuns and taskRuns

  • ✨ Finish setting up events for pipeline runs (#2874)
    The pipeline run controller now emits a k8s event every time that a pipeline is started.

  • ✨ Start emitting CloudEvents for TaskRuns (#2837)
    Add a new configuration option default-cloud-events-sink in the defaults config map. This options allows setting a default sink for cloud events. If the default sink is setup, cloud events are sent, else they're disabled.

    Send cloud events (when enabled) from the task run and controller, for all non-error events that are already notified via k8s events.

  • ✨ Set pipeline status when all tasks complete (#2774)
    In case of task run failure or cancellation, the pipeline run stops scheduling new tasks like before. The status is marked as failed however only once all the task runs already scheduled are complete.

    A new reason "PipelineRunStopping" indicate that the pipeline run has found a failure and is waiting for task runs to complete.

  • ✨ Migrate the PipelineRun controller to genreconciler. (#2760)

  • ✨ Validate PipelineRun Parameters (#2719)

    • PipelineRun parameters are validated to ensure that all the parameters required by the Pipeline are provided by the PipelineRun.
    • PipelineRun parameters validation allows PipelineRuns to provide extra parameters in addition to the required parameters.
    • Warning: backwards incompatible change that will force users to pass in default parameter values or provide the required parameters.
  • ✨ Add support for more cloud events (#2677)
    The cloudevent message type strings change from "dev.tekton.event.task." to "dev.tekton.event.taskrun." for events produced by the CloudEventPipelineResource.

  • ✨ implementing pipeline level finally (#2661)
    Users can now specify Tasks within a Pipeline that will always execute, even if Tasks fail, via the new finally clause

  • ✨ adding finally type (without implementation) at the pipeline level (#2650)
    Introducing a new clause under pipeline named finally where users can specify a list of tasks that will always execute, even if pipeline tasks fail. Adding a new type and its validation here, stay tuned for this functionality. Without implementing the functionality, a list of tasks under finally are validated but not executed at all.

  • ✨ Introduce config map watcher for feature flags (#2637)

Deprecation Notices

  • 🚨 The TaskRun.Status.ResourceResults.ResourceRef field is deprecated and will be removed.

    From Fix PipelineResource name handling. (#2697)
    The TaskRun.Status.ResourceResults field now contains a new field called "ResourceName" that points to the name of the PipelineResourceBinding.

    The TaskRun.Status.ResourcesResults.ResourceRef.Name field points to this same object. This field is now redundant and will be removed in a future release.

    The ClusterResource has been updated to write it's kubeconfig to the correct location on disk. Previously it was written to a location under /workspace/input/, instead of the correct /workspace/input/. If you hardcode resource paths in your tasks, you will need to update these. If you refer to paths by interpolation ( $(resources.inputs.) ), you do not need to make any changes.

Backwards incompatible changes

In current release:

  • 🚨 Validate PipelineRun Parameters (#2719)

    Warning: backwards incompatible change that will force users to pass in default parameter values or provide the required parameters.

Fixes

  • πŸ› cloudevent: make sure we enter the channel before… (#2895)

  • πŸ› Emit event only once (#2860)

  • πŸ› Fix pipelinerun_taskrun_duration_seconds metric (#2849)

  • πŸ› Activate SA creds before running ko (#2847)

  • πŸ› Add the missing RBAC for leaderelection (#2841)

  • πŸ› Fix git-init in case master is not the default branch (#2835)
    The Git PipelineResource now inspects remote repository to determine the correct default branch to use when no revision has been specified.

  • πŸ› Don't require pointer to binding (#2834)

  • πŸ› Return error if there are multiple same name params (#2817)
    After this change it is not allowed to have multiple parameters with the same name within pipeline spec.

  • πŸ› Pass port to ssh-keyscan when known_hosts not provided (#2803)
    Specifying a git ssh server url with custom port previously failed during credentials initialization if a known_hosts field was not specified in the Secret. This has been fixed.

  • πŸ› Remove tag+digest on shell-image 🍢 (#2781)
    Fix shell-image reference to not include the tag in addition to the digest in order to fix the *.notags.yaml release files

  • πŸ› StatefulSet is sensitive to long names - use a hashed name (#2768)
    There was a problem with long names for WorkspaceName+PipelineRunName, it could only be up to 33 chars. This commit uses a hashed name for the Affinity Assistant with a consistent length.

  • πŸ› Disentangle metric reporting from the actual reconciler. (#2762)

  • πŸ› Fix PipelineResource name handling. (#2697)
    The TaskRun.Status.ResourceResults field now contains a new field called "ResourceName" that points to the name of the PipelineResourceBinding.

    The TaskRun.Status.ResourcesResults.ResourceRef.Name field points to this same object. This field is now redundant and will be removed in a future release.

    The ClusterResource has been updated to write it's kubeconfig to the correct location on disk. Previously it was written to a location under /workspace/input/, instead of the correct /workspace/input/. If you hardcode resource paths in your tasks, you will need to update these. If you refer to paths by interpolation ( $(resources.inputs.) ), you do not need to make any changes.
    Both paths will work for this release, but you will need to update your Task definitions by a future release.

  • πŸ› Remove creds-init initContainer (#2671)
    Tekton's creds-init initContainer has been removed and will no longer show up in TaskRun Pods. Credentials from annotated Secrets will continue to be mounted and placed in Step containers' home directory.

  • πŸ› Refactoring in sidecar test (#2733)

Misc

  • πŸ”¨ refactor - dropping named return value from IsDone() functions (#2870)
  • πŸ”¨ refactor GetPipelineConditionStatus - drop unexported function isdagstopped (#2869)
  • πŸ”¨ Update to the latest release of the CloudEvents SDK - 2.1 (#2868)
  • πŸ”¨ Cleanup logic for API convertion errors (#2818)
  • πŸ”¨ Define a common function to exit ReconcileKind (#2805)
  • πŸ”¨ Use permanent errors in the taskrun reconciler (#2802)
  • πŸ”¨ Clarify the API compatibility policy and improve the deprecations table. (#2799)
  • πŸ”¨ Use permanent errors in the pipelinerun reconciler (#2798)
  • πŸ”¨ Various reconciler cleanups (#2784)
  • πŸ”¨ Migrate the TaskRun controller to genreconciler. (#2771)
  • πŸ”¨ Improve performance of pipeline results (#2690)
  • πŸ”¨ [master] Fix spelling errors (#2884)
  • πŸ”¨ .github: add multiple issues template (#2879)
  • πŸ”¨ [master] Fix spelling errors (#2873)
  • πŸ”¨ [master] Fix spelling errors (#2866)
  • πŸ”¨ adding unit tests (#2853)
  • πŸ”¨ Fix typos in docs, examples file and unit test. (#2788)
  • πŸ”¨ Fix typo in conditional examples (#2782)
  • πŸ”¨ Add OWNERS_ALIASES to define teams πŸ₯œ (#2778)
  • πŸ”¨ Fix typo in install.md (#2776)
  • πŸ”¨ Fix missing apostrophe in tasks.md (#2775)
  • πŸ”¨ Externalize Affinity Assistant image (#2751)
  • πŸ”¨ Lower the CPU request for the Affinity Assistant (#2745)
  • πŸ”¨ Run CI YAML Example tests using go test (#2685)

Docs

  • πŸ“– Fixing typo in DEVELOPMENT.md (#2881)
  • πŸ“– Add missing quotation marks (#2878)
  • πŸ“– Add credentials to pipelines' roadmap (#2858)
  • πŸ“– Fix link to "why arent pipelineresources in beta" (#2845)
  • πŸ“– Add bumping catalog dependency to process of creating a release (#2833)
  • πŸ“– Fix an internal link to point to correct volume variable example (#2824)
  • πŸ“– Add checklist item for release notes βœ… (#2820)
  • πŸ“– Add docs on creating a patch release (#2811)
  • πŸ“– Add links to 0.13.1 and 0.13.2 releases (#2809)
  • πŸ“– Add links to 0.13 tagged docs (#2780)
  • πŸ“– Updates to release docs πŸ“ (#2765)

Thanks

Thanks to these contributors who contributed to v0.14.0!

Extra shout-out for awesome release notes:

  • 😍 @afrittoli for all the events PRs
  • 😍 @pritidesai for the time and effort on the finally feature πŸ€—

Don't miss a new pipeline release

NewReleases is sending notifications on new releases.