π 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 usingConditions
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.
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
toResolvedPipelineRunTask
and implementisFailure
(#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 ingetTaskRunStatus
(#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 ImplicitParameters
(#4994) - π¨
PipelineRun
timeouts is in Beta (#4993) - π¨ Add Andrew Bayer as a Pipeline Maintainer (Welcome Back!) (#4991)
- π¨ Test
isRunning
(#4975) - π¨ Test
isSuccessful
(#4974) - π¨
isFailure
includesisCancelled
(#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!
- β€οΈ @SaschaSchwarze0
- β€οΈ @Yongxuanzhang
- β€οΈ @abayer
- β€οΈ @afrittoli
- β€οΈ @chitrangpatel
- β€οΈ @chuangw6
- β€οΈ @devholic
- β€οΈ @jerop
- β€οΈ @kerthcet
- β€οΈ @lbernick
- β€οΈ @mattmoor
- β€οΈ @skaegi
- β€οΈ @vaikas
- β€οΈ @vdemeester
- β€οΈ @vsinghai
- β€οΈ @wlynch
Extra shout-out for awesome release notes:
- π @SaschaSchwarze0
- π @Yongxuanzhang
- π @abayer
- π @chitrangpatel
- π @chuangw6
- π @devholic
- π @jerop
- π @kerthcet
- π @mattmoor
- π @skaegi
- π @vaikas
- π @vsinghai
- π @wlynch