Skip to content

Tekton Pipeline release v0.37.0 "Foldex Frost"

Compare
Choose a tag to compare
@tekton-robot tekton-robot released this 21 Jun 21:19

πŸŽ‰ TaskRun Matrices, Indexing of Array Results and many fixes and improvements! πŸŽ‰

-Docs @ v0.37.0
-Examples @ v0.37.0

Installation one-liner

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

Attestation

The Rekor UUID for this release is c0d23d6ad406973f9559f3ba2d1ca01f84147d8ffc5b8445c224f98b9591801d

🚨 There is a temporary issue with Rekor, which means the attestation cannot be retrieved from Rekor right now. The attestation is available in the OCI registry 🚨

Obtain the attestation:

cosign download attestation gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/controller@sha256:2a5239e0e458134870db8541008f358618a35d24247044a0041ab9ecb9ab2413 | jq -r .payload | base64 -D | jq .

Upgrade Notices

  • 🚨 Action required: Deprecated Conditions has been removed. Existing pipelines using Conditions will need to be updated.

  • ⚠️ The nightly git-init base image is no longer build, it is deprecated in favor of ghcr.io/distroless/git.

Changes

Features

  • ✨ TEP-0090: Fan Out (#4990)

A PipelineTask with a Matrix is fanned out into parallel TaskRuns which are executed in parallel.

  • ✨ Complete implementation of image pull failure handling (#4952)

The TaskRunImagePullFailed logic now covers sidecars, and the error message includes the step name and the image

  • ✨ TEP-0090: Matrix - Concurrency Control (#4947)

The default maximum count of TaskRuns or Runs from a given Matrix is 256. Users can configure this value for their installations.

  • ✨ TEP-0090: Add Matrix Package (#4934)

  • ✨ [TEP-0076]Support Results Array Indexing (#4911)

Support indexing array results substitution as an alpha feature.

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)

and we can refer to the array results elements via index in param like:
params:
- name: foo
value: "$(tasks.task1.results.array-results[1])"

This feature is part of the TEP-0076.

  • ✨ [TEP-0075] Validate task result variable of object type (#4878)

  • ✨ [TEP-0075] Validate against using the whole object in task steps (#4861)

  • ✨ TEP-0090: Matrix - Implement isRunning (#4981)

  • ✨ TEP-0090: Matrix - Implement isSuccessful (#4980)

  • ✨ TEP-0090: Failure Strategies - Remove Fail Fast (#4972)

  • ✨ TEP-0090: Get Names of TaskRuns (#4958)

  • ✨ TEP-0090: Add TaskRuns to ResolvedPipelineRunTask and implement isFailure (#4951)

  • ✨ TEP-0090: Indicate Resolved PipelineRunTask is Matrixed (#4945)

  • ✨ TEP-0090: Split up ResolvePipelineRunTask (#4943)

Backwards incompatible changes

In current release:

  • 🚨 Remove deprecated field. (#4988)

Removes deprecated PipelineRun.Spec.ServiceAccountNames field; use PipelineRun.Spec.TaskRunSpecs instead.

  • 🚨 Remove deprecated field (#4977)

Removes deprecated TaskRun.Status.ResourceResults.ResourceRef field; use TaskRun.Status.ResourceResults.ResourceName instead.

  • 🚨 Remove deprecated Conditions CRD/functionality (#4942)

action required: Deprecated conditions in pipelines removed. Existing pipelines using conditions will need to be updated.

Fixes

  • πŸ› LimitRange calculation should only split Requests for Step Containers (#4996)

Only use step containers for limitrange default request calculations

  • πŸ› Validation for invalid Task Result expressions in Pipeline Result (#4956)

Fixed a bug where invalid expressions were not invalidated in Pipeline Results.

  • πŸ› Validation for Task Result expressions in Pipeline Result (#4941)

Fixed a bug where static strings where not invalidated in Pipeline Results.

  • πŸ› Cleanup: remove potential goroutine leakages in taskrun (#4936)

  • πŸ› Terminate TaskRun when Pod fails due to ImagePullBackOff. (#4921)

  • πŸ› Assume task not skipped if the run is associated (#4583)

Fixes controller with the high value of ThreadsPerController to report the correct status of PipelineRun, which contains Finally tasks.

Misc

  • πŸ”¨ TEP-0090: Refactor GetChildReferences (#4940)

  • πŸ”¨ TEP-0090: Refactor GetTaskRunsStatus (#4939)

  • πŸ”¨ TEP-0090: Refactor ResolvePipelineRunTask (#4938)

  • πŸ”¨ Clean up the git-init base Dockerfile and Task. (#4765)

The nightly git-init base image is no longer build, it is deprecated in favor of ghcr.io/distroless/git.

  • πŸ”¨ Add dependabot config. (#4915)

  • πŸ”¨ Fix test cases for validatePipelineParameterVariables function (#4901)

  • πŸ”¨ Use informer for pod get/list instead of talking to API server. (#4740)

Use informer instead of API server for Pod Get/List.

  • πŸ”¨ Fix typo in embedded statuses listing in alpha features (#4995)
  • πŸ”¨ Add details to isFailure docstring (#4970)
  • πŸ”¨ Sort slice of TaskRunNames in tests (#4969)
  • πŸ”¨ TaskRunName is not used in getTaskRunStatus (#4967)
  • πŸ”¨ GetTaskRunName/GetRunName: Use constants to check Kind (#4959)
  • πŸ”¨ Clarify naming in resolution tests (#4950)
  • πŸ”¨ Unexport RPRT member functions used within resources pkg only (#4949)
  • πŸ”¨ Remove Conditions from deprecations table (#4946)
  • πŸ”¨ Fix the release pipeline (#5004)
  • πŸ”¨ Add wlynch to entrypoint OWNERS (#4999)
  • πŸ”¨ Add the release-note-none to dependabot (#4997)
  • πŸ”¨ Propagated Parameters replaced Implicit Parameters (#4994)
  • πŸ”¨ PipelineRun timeouts is in Beta (#4993)
  • πŸ”¨ Add Andrew Bayer as a Pipeline Maintainer (Welcome Back!) (#4991)
  • πŸ”¨ Test isRunning (#4975)
  • πŸ”¨ Test isSuccessful (#4974)
  • πŸ”¨ isFailure includes isCancelled (#4973)
  • πŸ”¨ dependabot: remove vendor keys (#4948)
  • πŸ”¨ Fix TestTaskRunRetry for k8s 1.22.9 and later (#4944)
  • πŸ”¨ Add label dependabot PRs ok-to-test… (#4935)
  • πŸ”¨ tekton: remove build-base-image from pipeline (#4932)
  • πŸ”¨ .github: update pull-request template (#4929)
  • πŸ”¨ Add tests for failing remote resolution of Pipelines and Tasks (#4886)
  • πŸ”¨ Remove duplicate code for validating params types and defaults (#4872)
  • πŸ”¨ [TEP-0075] Extract out the validation of object keys (#4867)

Docs

  • πŸ“– Add local private registry setup doc with kind (#4606)

Thanks

Thanks to these contributors who contributed to v0.37.0!

Extra shout-out for awesome release notes: