github tektoncd/pipeline v0.36.0
Tekton Pipeline release v0.36.0 "Turkish-Angora Tony"

latest releases: v0.65.1, v0.62.5, v0.65.0...
2 years ago

🎉 Params and Workspace propagation, Task Remote resolution, Dictionary in Params, Array in Results and Minimal status 🎉

-Docs @ v0.36.0
-Examples @ v0.36.0

Installation one-liner

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

Attestation

The Rekor UUID for this release is 0c2001385a53e34162b7370fbe72fc99f464a8de78fb1d134e93e9bb99d076c2

Obtain the attestation:

REKOR_UUID=0c2001385a53e34162b7370fbe72fc99f464a8de78fb1d134e93e9bb99d076c2
rekor-cli get --uuid $REKOR_UUID --format json | jq -r .Attestation | base64 --decode | jq

Verify that all container images in the attestation are in the release file:

RELEASE_FILE=https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.36.0/release.yaml
REKOR_UUID=0c2001385a53e34162b7370fbe72fc99f464a8de78fb1d134e93e9bb99d076c2

# Obtains the list of images with sha from the attestation
REKOR_ATTESTATION_IMAGES=$(rekor-cli get --uuid "$REKOR_UUID" --format json | jq -r .Attestation | base64 --decode | jq -r '.subject[]|.name + ":v0.36.0@sha256:" + .digest.sha256')

# Download the release file
curl "$RELEASE_FILE" > release.yaml

# For each image in the attestation, match it to the release file
for image in $REKOR_ATTESTATION_IMAGES; do
  printf $image; grep -q $image release.yaml && echo " ===> ok" || echo " ===> no match";
done

Changes

Features

  • ✨ TEP-0108: Mapping Workspaces (#4887)

Users can specify the Workspace to use for PipelineTask in the name label to reduce verbosity when the names of the Workspaces declared in the Pipeline and PipelineTask are the same. Users can continue to explicitly map Workspaces.

  • ✨ Add taskRef remote resolution support (#4859)

Allow taskRefs to be resolved directly from public git repos, using the tektoncd/resolution project.

  • ✨ [TEP-0100] Add status helper functions for minimal embedded status (#4850)

Added helper functions for retrieving full TaskRun and Run statuses when using embedded-status=minimal.

  • ✨ TEP-0107: Implement Parameter Propagation (#4845)

Parameters are propagated in embedded specifications without mutations.

  • ✨ TEP-0106: Support Specifying Metadata per Task in Runtime (#4834)

Support Specifying Metadata per Task in Runtime (PipelineRun)

  • ✨ [TEP-0075] Support Dictionary in Params (#4786)

Add support for dictionary in Params values (and Results as well). This should affect backward compatibilities but it will break forward compatibilities in some cases (a.k.a. old client with new pipeline version)
action required: This changes the ArrayOrStruct structure, which will have effect on project using the go API as a library.

  • ✨ Extract full parameter name when using dots in bracket notation. (#4880)

Extract full parameter name when using dots inside single/double quotes.

  • ✨ Added validation for parameters with bracket notation (#4833)

Added validation for parameters with bracket notation

  • ✨ TEP-0103: Skipping Reason - Add SkippingReason to SkippedTasks field of PipelineRunStatus (#4829)

Add SkippingReason to SkippedTasks field of PipelineRunStatus. This enables users to know the exact reason why a given PipelineTask was skipped.

  • ✨ [TEP-0076] Add array support for emitting results (#4818)

Support array type for emitting results from a task as an alpha feature.

The type of the result is changed from string to ArrayOrString.

A task can specify a type to produce array result, such as:

  results:
    - name: array-results
      type: array
      description: The array results

And the task script can populate result in an array form with:

echo -n "[\"hello\",\"world\"]" | tee $(results.array-results.path)

This feature is part of the TEP-0076 and its in progress to index into the array result while consuming that result.

  • ✨ Add validation for duplicated param names in TaskSpec (#4806)

Add validation for duplicated param names in TaskSpec.

  • ✨ [TEP-0076]Add type for results (#4779)

Add Type for TaskRunResult and TaskResult.

Deprecation Notices

  • 🚨 Deprecate timeout and promote timeouts in PR (#4813)

Deprecate timeout field in PipelineRuns and promote PipelineRun.Timeouts field from alpha to stable

Backwards incompatible changes

  • 🚨 TEP-0107: Deprecated implicit parameters (#4906)

Implicit Parameters is deprecated and removed. A replacement feature will be included in the same release. This only affect users who enable alpha api feature gate

Fixes

  • 🐛 Allow PipelineTaskRunSpec.Metadata to be optional. (#4914)

  • 🐛 Update PipelineSpec and TaskSpec fields of PipelineRun and TaskRun Status fields (#4891)

  • 🐛 Fix the potential data race with RWLock (#4876)

  • 🐛 Stop using GO111MODULE=off in builds (#4868)

SBOM generated during the release process now works and is available along with released images.
SBOM can be retrieved for instance using "cosign download bom "

  • 🐛 Don't PATCH Ready annotation if it's already marked ready (#4865)

Pods will not be unconditionally PATCHed to set the ready annotation, avoiding some API server traffic.

  • 🐛 Resolve Entrypoint and Cmd if there is no command and no args (#4832)

he entrypoint resolve will now reslove Entrypoint and Cmd in case
the steps has no command and no args specified.

  • 🐛 Merge place-tools and step-init together (#4826)

place-tools and step-init init containers are merged together to reduce the number of container in each Task's Pod.

  • 🐛 Fix variable interpolation on (#4803)

Variable are now correctly interpolated on stepTemplate field for Task

  • 🐛 fix: debug scripts are not mounted to steps with no scripts (#4776)

  • 🐛 Omit init containers from limitrange default request calculations (#4769)

Omit init containers from limitrange default request calculations

  • 🐛 Add constant backoff for TaskRun retry (#4881)
  • 🐛 Add singular to Tekton CRDs. (#4875)
  • 🐛 Bubble up the image related error reason to taskrun status (#4846)
  • 🐛 Set explicit parallelism for e2e tests, increase Kaniko e2e test timeouts (#4871)
  • 🐛 Fix validateNoDuplicateNames (#4815)
  • 🐛 Validate parameter name format (#4799)
  • 🐛 Fix Metric tekton_pipelines_controller_pipelinerun_count (#4468)

Fix tekton_pipelines_controller_pipelinerun_count which was increasing without any new addition of pipelinerun.

Misc

  • 🔨 Rename deprecated Step and StepTemplate fields (#4866)

Add deprecated Step/StepTemplate fields to deprecation table

  • 🔨 Deprecate unusable Step/StepTemplate fields (#4851)

Deprecate unusable/unsupported fields of Step and StepTemplate

  • 🔨 Refactor duplicate code in task_validation_test.go (#4836)
  • 🔨 Enable automatic SBOM creation with spdx format (#4848)

SBOM built by "ko" in SPDX format is published along Tekton container images

  • 🔨 Add Tekton-owned Step, StepTemplate, and Sidecar (#4778)

[Change to Go libraries]: Task.Step, Task.StepTemplate, and Task.Sidecar use Container fields directly instead of embedding the Container struct

  • 🔨 Update gopkg.in/yaml.v3 to v3.0.1 (#4919)
  • 🔨 Update gopkg.in/yaml.v3 to v3.0.0 (#4905)
  • 🔨 double MaximumBundleObjects and update tests (#4899)
  • 🔨 Add @lbernick to pipeline approvers list (#4843)
  • 🔨 Create codeql-analysis.yml (#4591)

Docs

  • 📖 fix typo about ths I think maybe it should be this (#4775)
  • 📖 Add missing field to pipelineruns doc (#4853)
  • 📖 adding latest release - 0.35 (#4796)
  • 📖 Revamp compute resources documentation (#4770)

Thanks

Thanks to these contributors who contributed to v0.36.0!

Extra shout-out for awesome release notes:

Don't miss a new pipeline release

NewReleases is sending notifications on new releases.