-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