github tektoncd/pipeline v0.39.0
Tekton Pipeline release v0.39.0 "Burmese Minion"

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

🎉 Parameterize onError, finally task results in pipeline results, and many more 🎉

-Docs @ v0.39.0
-Examples @ v0.39.0

Installation one-liner

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

Attestation

The Rekor UUID for this release is 362f8ecba72f43268e217c4700290e118237bd958b73e4b539da850cfacd12ff6719e20dcde99540

Obtain the attestation:

REKOR_UUID=362f8ecba72f43268e217c4700290e118237bd958b73e4b539da850cfacd12ff6719e20dcde99540
rekor-cli get --uuid $REKOR_UUID --format json | jq -r .Attestation | 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.39.0/release.yaml
REKOR_UUID=362f8ecba72f43268e217c4700290e118237bd958b73e4b539da850cfacd12ff6719e20dcde99540

# Obtains the list of images with sha from the attestation
REKOR_ATTESTATION_IMAGES=$(rekor-cli get --uuid "$REKOR_UUID" --format json | jq -r .Attestation | jq -r '.subject[]|.name + ":v0.39.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

  • ✨ build entrypoint image for Windows ltsc2019 and ltsc2022 (#5333)

Tekton support for Windows includes support for ltsc2019 in addition to ltsc2022

  • ✨ support parameterization in onError (#5307)

Support variables in steps[].onError, for example, $(params.CONTINUE)

  • ✨ Make pipeline cancel robust to missing resources (#5288)

A PipelineRun can be cancelled even if some of its owned resources have been deleted.

  • ✨ Add TopologySpreadConstraints in PodTemplate (#5204)

Added TopologySpreadConstraints in PodTemplate to enable spread Pods across clusters among topology domains.

  • ✨ TEP-0116: Referencing Finally Task Results in Pipeline Results (#5170)

Allow users to use results from finally in PipelineResults using $(finally.<pipelinetask-name>.results.<result-name>)

  • ✨ [TEP-0075]Add more setdefaults features for taskresults (#5142)

taskresults is inferred as object if Properties is set, and Properties's value by default is string

  • ✨ [TEP-0104] Populate Task-level Resource Requirements from PipelineRun to TaskRun (#5212)

  • ✨ Add validation for results object properties types (#5169)

  • ✨ [TEP-0104] Update Pod with Task-level Resource Requirements (#5082)

Deprecation Notices

  • 🚨 Rename ArrayOrString to ParamValues (#5304)

Rename ArrayOrString to ParamValues, NewArrayOrString to NewStructuredValues

This deprecation notice is applicable to the projects such CLI, Dashboard, Chains, etc which are dependent on the go types defined in the Pipeline.

Fixes

  • 🐛 TEP-0090: Matrix - Retries (#5305)

Each retry for each matrixed TaskRun is completed before it is reattempted; failure in one matrixed TaskRun no longer affects retries for other matrixed TaskRuns from the same PipelineTask.

  • 🐛 Move validation from to when propagating parameters (#5291)

Move parameter validation from pipelinespec to pipelinerunspec when propagating parameters

  • 🐛 Add a status_msg field to fix issue 5150. (#5224)

Users can now differentiate if a TaskRun was cancelled by the user or by cancellation of a PipelineRun of which the TaskRun was a part of, by looking at the TaskRun's spec.StatusMessage field.

  • 🐛 Fix the Tekton controller panic for Metrics (#5166)

Fix the Tekton controller panic for Metrics.

  • 🐛 Move parameter validation from to when propagating parameters (#5143)

Move parameter validation from taskspec to taskrunspec when propagating parameters

  • 🐛 Make update-reference-docs.sh OSX compatible. (#5326)
  • 🐛 Uncomment tests in v1 task_validation_test.go (#5323)
  • 🐛 Modified test to allow for validation (#5284)
  • 🐛 Skip validation for deletion of v1 task (#5231)
  • 🐛 Fail taskrun when results validation fails (#5198)
  • 🐛 Fix ApplyTaskResultsToPipelineResults missing object validation (#5167)
  • 🐛 Implement stderr/stdout copying with exec pipes. (#5261)
  • 🐛 Bump TestSidecarTaskSupport test timeout to 2m. (#5260)

Misc

  • 🔨 Convert Step OnError from string to OnErrorType type (#5322)

Convert step.OnError from string to type: OnErrorType

  • 🔨 Determine changeset from build information (#5311)

Version informaiton added to workload labels is determined from information embedded by Go, instead of relying on symlinks to Git information in our build process.

  • 🔨 Rename ArrayOrString to ParamValues (#5304)

Rename ArrayOrString to ParamValues, NewArrayOrString to NewStructuredValues

  • 🔨 [TEP-0075] Add variable usage and links to examples in docs (#5222)

Update docs

  • 🔨 Do not validate anything on delete ✂ (#5210)

Do not try to convert object on deletion, and do not validate names on deletion as well.

  • 🔨 TEP-0075: Add a pipeline run example with both object param and result (#5197)

Add a pipeline run example with both object param and result

  • 🔨 Bump knative/pkg to release-1.6 (#4928)

Bump knative/pkg dependency to 1.15.
action required: this will bring up the minimum version for Kubernetes to 1.22

  • 🔨 Move pod template to pod package (#5329)
  • 🔨 Move version validation tests into separate package (#5319)
  • 🔨 Reformat CustomTask within Test (#5314)
  • 🔨 Refactor compute resources compare functions (#5257)
  • 🔨 Bump github.com/cloudevents/sdk-go/v2 from 2.10.1 to 2.11.0 (#5321)
  • 🔨 Test feature flags (#5312)
  • 🔨 Bump golangci-lint to v1.47.2 to support Go 1.18.x (#5310)
  • 🔨 Fix typo in tekton/publish.yaml (#5301)
  • 🔨 Bump go.uber.org/zap from 1.21.0 to 1.22.0 (#5293)
  • 🔨 Add tests for limitrange transformer (#5279)
  • 🔨 Fix task conversion test typo (#5277)
  • 🔨 Fix a typo in 5080-entrypoint-init-regression.yaml (#5276)
  • 🔨 Fix conversion related typos (#5272)
  • 🔨 Add conversion for v1 Pipeline (#5258)
  • 🔨 V1: Add conversion for Task.Resources (#5253)
  • 🔨 TEP-0115: Update Git Resolver example to use revision and pathInRepo fields (#5238)
  • 🔨 Make sure that OpenAPI rules violations errors show up in Prow build logs (#5237)
  • 🔨 Add V1 version to Task CRD (#5234)
  • 🔨 Rename tests in TestPipelineTaskList_Deps (#5228)
  • 🔨 Add V1 Pipeline Golang structs (#5219)
  • 🔨 Bump go-scm to 1.11.19 (#5213)
  • 🔨 Bump containerd to 1.5.13 (#5209)
  • 🔨 Update docs with matrix csi workspace release number (#5207)
  • 🔨 Add conversion for v1 Task (#5202)

Docs

  • 📖 Results Lifecycle (#5070)

Documenting the results lifecycle.

  • 📖 Update a few missing versions in the README (#5299)
  • 📖 Updates Default Fields When Creating a GKE Cluster (#5273)
  • 📖 Docs: Updated installation customizations link (#5244)
  • 📖 Add instructions for creating a new API version (#5235)
  • 📖 Remove not supported results and params variables doc (#5227)
  • 📖 Add Tep 75&76 to install doc (#5216)
  • 📖 Add v0.38.0, v0.37.1, and v0.37.2 to README (#5206)
  • 📖 Update release cheat sheet (#5205)
  • 📖 Make container docs more tailored to Tekton (#5124)

Thanks

Thanks to these contributors who contributed to v0.39.0!

Extra shout-out for awesome release notes:

Don't miss a new pipeline release

NewReleases is sending notifications on new releases.