Tekton Pipeline release v0.38.0 "Ocicat Ava"
-Docs @ v0.38.0
-Examples @ v0.38.0
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.38.0/release.yaml
Attestation
The Rekor UUID for this release is 362f8ecba72f432699509b8cc1664c3bb7f29f406bf9d81e24049d1d33735511ef14ae9f533a4885
Obtain the attestation:
REKOR_UUID=362f8ecba72f432699509b8cc1664c3bb7f29f406bf9d81e24049d1d33735511ef14ae9f533a4885
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.38.0/release.yaml
REKOR_UUID=362f8ecba72f432699509b8cc1664c3bb7f29f406bf9d81e24049d1d33735511ef14ae9f533a4885
# 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.38.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
Upgrade Notices
- Action required: v1alpha1 versions of Task, ClusterTask, TaskRun, Pipeline, and PipelineRun have been removed. Please use v1beta1 versions of these CRDs instead.
Changes
Features
-
β¨ [TEP-0075] Object Params and Results
- [TEP-0075]Pipeline results support object (#5088)
Support object results and object element reference for pipeline level as an alpha feature.
A pipeline can specify a type to create object result, and the task script can populate result in an array form. The pipeline results can refer to task results to collect them. - [TEP-0075] Support Object Results substitution (#5083)
Support object results substitution as an alpha feature.
A task can specify a type to produce array result, and the task script can populate result in an object form. We can refer to the object results in params. - TEP-0075: Implement object var replacement on task&taskrun level (#4904)
Added implementation for object variables replacement on task/taskrun level where only individual object keys can be referenced in the format of$(params.<param_name>.<key_name>)
Users need to enabled alpha feature flag to have this pr's change applied.
- [TEP-0075]Pipeline results support object (#5088)
-
β¨ [TEP-0076] Array Params and Results
- [TEP-0076] Add indexing into array for taskrun params reference (#5132)
Indexing into array for taskrun params is now an alpha feature, element of array params can be accessed via$(params.param-name[i]
). - [TEP-0076]Validate Pipeline results array index (#5139)
pipelinerun will fail if pipelineresults array index is out of bound - [TEP-0076]Pipeline results support array (#4965)
Support array results and indexing array for pipeline level as an alpha feature.
A pipeline can specify a type to create array result, and the task script can populate result in an array form. The pipeline results can refer to task results to collect them.
*[TEP-0076]Validate Results type and object properties (#4920)
Add Properties for TaskResult so user can define what keys are needed for object type TaskResult and leverage this Properties for validation. - [TEP-0076]Support Array Results substitution (#4908)
Support array results substitution as an alpha feature.
A task can specify a type to produce array result, and the task script can populate result in an array form. We can refer to the array results in params.
*[TEP-0076] Add indexing into array for pipeline params reference (#4855)
Indexing into array for pipeline params is now an alpha feature, element of array params can be accessed via $(params.param-name[i]).
- [TEP-0076] Add indexing into array for taskrun params reference (#5132)
-
β¨ Add support for projected volumes as workspace type (#5085)
Add support for projected volumes as workspace type
- β¨ Publish Pipeline Results from successful TaskRuns in Failed PipelineRuns (#5060)
Pipeline results are now initialized even when a pipelineRun fails. The task results from all the successful tasks are propagated to the pipelineRun.
- β¨ Add support for the CSI workspace type (#5030)
Add support to use any CSI volume driver as a workspace
-
β¨ TEP-0090: Matrix
- TEP-0090: Matrix - Consume Results (#5063)
Matrix
supports Results of type String. - TEP-0090: Support both
matrix
andparams
in aPipelineTask
(#5050)
Users can specify bothmatrix
andparams
fields. Thematrix
is used to fan out thePipelineTask
and theparams
are the same in all theTaskRuns
. - TEP-0090: Fan Out (#5049)
APipelineTask
with aMatrix
andCustom Task
is fanned out into parallelRuns
which are executed in parallel. - TEP-0090: Matrix - Implement
isSuccessful
forRuns
(#5035)
MatrixedPipelineTasks
withCustom Tasks
are successful when allRuns
have completed successfully. - TEP-0090: Matrix - Minimal Status is Required (#5019)
Theembedded-status
feature flag must be set to"minimal"
to specifyMatrix
in aPipelineTask
. - TEP-0090: Matrix - Max Matrix Combinations Count is 256 (#5012)
The default maximum count ofTaskRuns
orRuns
from a givenMatrix
is 256. - TEP-0090: Matrix - Get Names of
Runs
(#5037) - TEP-0090: Matrix -
ChildReferences
forTaskRuns
(#5008)
- TEP-0090: Matrix - Consume Results (#5063)
-
β¨ Only create & mount Downward API volume when necessary (#4953)
Added an await-sidecar-readiness
feature flag, which can be used to remove the of DownwardAPI volumes in TaskRun pods. (#4953, @hWorblehat)
- β¨ TEP-0011: Add StdoutConfig and StderrConfig to steps. (#4882)
Users can specify stdoutConfig
and stderrConfig
in steps to capture steps' stdout and stderr to local files. This feature can be used to capture stdout and stderr into task results.
- β¨ [TEP-0104] Support Task-level Resource Requirements for TaskRun: Part #1 Fields Addition & Validation w/ Docs Updates (#4877)
Fixes
- π Add TerminationMessagePolicy in container conversion (#5201)
Apply the TerminationMessagePolicy field for container types
- π Fix the issue with empty array replacement (#5162)
After the replacement with an empty array, the original array will be empty.
Example:
params:
- name: myarray
value: "$(params.anEmptyArray[*])"
- π Update log keys to match logstream (#5159)
Binary file (standard input) matches
- π Reject embedded s with and/or specified (#5018)
Fail PipelineTask validation if a normal, non-custom embedded task is specified along with apiVersion
and/or kind
- π Validation for Finally Task Results referenced in Pipeline Results (#5000)
Fixed a bug where Finally
Task
Result
's where being referenced in Pipeline
Result
's.
Fixed a bug where Finally Task Result's are being referenced in Pipeline Result's.
- π remove spec.replicas from tekton-pipelines-webhook Deployment (#4894)
Unset replicas:1 in the webhook Deployment; HPA will autoscale the deployment (1-5 replicas by default). First reapplication after this change will cause scaling down to 1 replica, but subsequent reapplications will not change the HPA-set replica number.
- π Fix task pod creation failure with duplicate serviceaccount secrets (#4743)
Fix task pod creation failure when duplicate secrets present in service account.
- π Non terminal pod exists (#4742)
If for some reason between getting the pod with a list and creation it already exists, do not
treat it as a terminal failure.
- π Fail steps on Windows with StdoutPath or StderrPath set (#5180)
- π Include Windows image builds in CI build tests (#5178)
- π Fix context.background() in workspaceBinding validation (#5101)
- π Clarify error message for PipelineRun alpha fields (#5045)
- π Fix flaky test by sorting slices (#5171)
- π TEP-0090: Sort
ChildReferences
in tests (#5020)
Misc
- π¨ TEP-0075: Validate object name and key name have no dots (#5090)
Dots are not allowed in object param names and key names.
- π¨ Remove deprecated (#5022)
Deprecated PipelineRunCancelled
status string removed; use Cancelled
instead.
- π¨ Remove v1alpha1 Pipeline, PipelineRun, Task, TaskRun, and ClusterTask (#5005)
action required: v1alpha1
Pipeline
, PipelineRun
, Task
, TaskRun
removed. Please switch to v1beta1
for those types.
- π¨ TEP-0075: Add examples with object params and results (#5144)
Add taskrun & pipelinerun examples that use object param and result.
- π¨ Export ValidateObjectKeys function (#5073)
ValidateObjectKeys function is now available for usage outside the v1beta1 package.
- π¨ TEP-0090: Matrix - Add example and document expected PipelineRun status (#5033)
Fanning out PipelineTasks
into parallel TaskRuns
with substitutions from combinations of Parameters
in a Matrix
is fully supported. The ChildReferences
of the fanned out TaskRuns
will be added to the PipelineRun
status.
- π¨ Use ghcr.io/distroless/static as base image (#5009)
Images are based on ghcr.io/distroless/static, and the entrypoint image is updated to use nanoserver:ltsc2022 instead of :1809
- π¨ Bump github.com/cloudevents/sdk-go/v2 from 2.5.0 to 2.10.1 (#4968)
Binary file (standard input) matches
-
π¨ TEP-0075: Validate Pipeline object variables in value, matrix and when (#4902)
-
π¨ [TEP-0075] Validate object keys, PipelineRunSpec -> PipelineSpec (#4883)
Make sure keys of an object param declared in PipelineSpec are all provided with a value when the PipelineRunSpec provides values for the object param. In other words, the value provider - PipelineRunSpec can't miss keys. i.e. the following example will be invalid since the key commit
is missed.
Example:
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
generateName: test-case
spec:
params:
- name: myObject
value:
url: "abc.com"
pipelineSpec:
params:
- name: myObject
properties:
url: {}
commit: {}
- π¨ Extract parameter name without any pattern. (#4857)
- π¨ Move step and sidecar replacements to new package (#5179)
- π¨ Prepare tests for impending knative/pkg version bump (#5145)
- π¨ Move two feature flag related functions to config pkg (#5113)
- π¨ Move pipelinespec functions into a separate package (#5079)
- π¨ TEP-0075: Remove log statement (#5057)
- π¨ Move API version validation into separate package (#5053)
- π¨ Clean up validation for task and pipeline refs (#5046)
- π¨ TEP-0090: Get Names of TaskRuns from ChildReferences only (#5036)
- π¨ ResolvePipelineRunTask to ResolvePipelineTask π§Ή (#5029)
- π¨ Cleanup unused arguments - mostly removing unused ctx π§Ή (#5028)
- π¨ Finish up removal of
Conditions
π§Ή (#5027) - π¨ TEP-0090: Use Constants in ChildReferences (#5026)
- π¨
ResolvedPipelineRunTask
toResolvedPipelineTask
(#5025) - π¨ Fix formatting of deprecation table (#5017)
- π¨ TEP-0090:
GetChildReferences
checks for non-nilTaskRuns
(#5016) - π¨ TEP-0090: Check for non-nil
TaskRun
inGetTaskRunsResults
(#5015) - π¨ TEP-0090: Refactor
GetChildReferences
(#5006) - π¨ Refactor LimitRange package (#4992)
- π¨ Add StdoutConfig and StderrorConfig to v1 Step (#5199)
- π¨ Update GCR IAM settings in Tekton development doc (#5195)
- π¨ Add V1 Task Golang structs (#5125)
- π¨ Exclude managed fields from e2e test failure object YAML dumps (#5119)
- π¨ Document leader-election configuration (#5104)
- π¨ Simplify Release Notes section of the PR checklist (#5094)
- π¨ Bump github.com/jenkins-x/go-scm from 1.10.10 to 1.11.16 (#5089)
- π¨ Add env files for Kind-in-Prow integration test jobs (#5077)
- π¨ TEP-0090: Matrix - implement
isRunning
forRuns
(#5062) - π¨ TEP-0090: Matrix - implement
getNextTasks
(#5061) - π¨ Add almost-empty v1 package (#5055)
- π¨ TEP-0090: Resolve
PipelineTask
withCustom Task
(#5048) - π¨ TEP-0090: Get
ChildReferences
forRuns
(#5047) - π¨ TEP-0090: Matrix - Implement
isFailure
forRuns
(#5042) - π¨ TEP-0090: Allow setting embedded status feature flag to minimal in tests (#5032)
- π¨ TEP-0090: Test reconciled
PipelineRun
fromPipeline
withMatrix
(#5031) - π¨ Switch to
cmpopts.SortSlices
rather than explicitly sorting in tests when possible (#5023) - π¨ TEP-0090: Update PipelineRun Status from Child Refs (#5014)
- π¨ Bump github.com/hashicorp/errwrap from 1.0.0 to 1.1.0 (#4963)
Docs
- π Update docs for ResourceQuota and QoS (#5051)
- π Add links to docs and examples for v36 and v37 (#5011)
- π Cut PipelineResources from some examples (#4971)
Thanks
Thanks to these contributors who contributed to v0.38.0!
- β€οΈ @0xFelix
- β€οΈ @JeromeJu
- β€οΈ @QuanZhang-William
- β€οΈ @Yongxuanzhang
- β€οΈ @abayer
- β€οΈ @afrittoli
- β€οΈ @austinzhao-go
- β€οΈ @bradbeck
- β€οΈ @chitrangpatel
- β€οΈ @chuangw6
- β€οΈ @dependabot[bot]
- β€οΈ @dibyom
- β€οΈ @hWorblehat
- β€οΈ @imjasonh
- β€οΈ @jerop
- β€οΈ @lbernick
- β€οΈ @manojbison
- β€οΈ @sellitforcache
- β€οΈ @timonwong
- β€οΈ @vaikas
- β€οΈ @vsinghai
Extra shout-out for awesome release notes:
- π @0xFelix
- π @JeromeJu
- π @QuanZhang-William
- π @Yongxuanzhang
- π @abayer
- π @austinzhao-go
- π @bradbeck
- π @chitrangpatel
- π @chuangw6
- π @dependabot[bot]
- π @hWorblehat
- π @imjasonh
- π @jerop
- π @lbernick
- π @sellitforcache
- π @timonwong
- π @vaikas
- π @vsinghai