Releases: tektoncd/pipeline
Tekton Pipeline release v0.31.0 "Birman Bors"
π Fix for the debug mode, retry task resolution on transient error, and taskRun annotations updated to include the release version π
-Docs @ v0.31.0
-Examples @ v0.31.0
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.31.0/release.yaml
β οΈ Known Issues
- #4483 Implicit parameter mapping incorrectly passes params from the top-level
Pipeline
orPipelineRun
totaskRef
Pipeline Tasks. Mapping should only occur from top-level resource to Pipeline Tasks with in-linetaskSpec
. This issue only affects users withenable-api-fields: alpha
in thefeature-flags
ConfigMap
stored in thetekton-pipelines
namespace.
Changes
Fixes
- π Explicitly annotate TaskRuns with release version. (#4424)
More consistently apply the pipeline.tekton.dev/release annotation to TaskRun resources.
- π make debug scripts comply with new /tekton/run (#4416)
Debug scripts were unusable due to addition of the new /tekton/run behavior. This commit makes them usable again.
- π Retry TaskRef resolution on etcd errors (#4392)
Retry Task resolution on transient etcd errors
-
π Fix
TestDAGPipelineRun
flakiness. (#4419) -
π Refactor CloudEvent related tests to use common set of helpers (#4387)
-
π Put workspace-in-sidecar example into no-ci (#4380)
Misc
- π¨ Move Events test helpers to test package (#4405)
Docs
-
π Document that k8s 1.20 is the minimum required (#4414)
-
π Add v0.30.0 to the README (#4413)
-
π Fix conflicting docs for /tekton/steps API Compatibility. (#4395)
action required: Users should not assume the directory/file structure of /tekton/steps. Use $(steps.step-.exitCode.path) instead.
- π docs: add myself as topical owner for debug (#4390)
Thanks
Thanks to these contributors who contributed to v0.31.0!
Extra shout-out for awesome release notes:
- π @jerop
- π @lbernick
- π @mattmoor
- π @waveywaves
- π @wlynch
Tekton Pipeline release v0.30.0 "Serval Viv"
π PipelineResources Deprecated, Retries in Custom Tasks Added, and Linux Arm Supported π
-Docs @ v0.30.0
-Examples @ v0.30.0
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.30.0/release.yaml
Upgrade Notices
Deprecation Notices
- π¨
PipelineResources
are deprecated. Consider using replacement features, such asTasks
, instead. (#4376)
Backwards incompatible changes
N/A
β οΈ Known Issues
- #4483 Implicit parameter mapping incorrectly passes params from the top-level
Pipeline
orPipelineRun
totaskRef
Pipeline Tasks. Mapping should only occur from top-level resource to Pipeline Tasks with in-linetaskSpec
. This issue only affects users withenable-api-fields: alpha
in thefeature-flags
ConfigMap
stored in thetekton-pipelines
namespace.
Changes
Features
-
β¨ Add variable expansion in the workspaces.subPath (#4351)
Users are able to use variable substitution in the subPath field of a Workspace within a Task in Pipeline
-
β¨ Build images for linux/arm (arm32v7) (#4331)
Images are built for linux/arm (arm32v7)
-
β¨ TEP-69, Implementation. Support retry for custom tasks. (#4327)
A custom task specification can be created with
Retries
as follows:apiVersion: tekton.dev/v1alpha1 kind: Run metadata: generateName: simpleexample spec: retries: 3 # set retries params: - name: searching value: the purpose of my existence ref: apiVersion: custom.tekton.dev/v1alpha1 kind: Example name: exampleName
Fixes
-
π Breakout sidecar stopping if TaskSpec has no sidecar (#4372)
The reconciliation of a completed TaskRun has been optimized so that it does not anymore try to stop sidecars for TaskRuns who have
no sidecars in their TaskSpec. -
π Use kmeta.ChildName for child resources (#4361)
Name of
Pods
andTaskRuns
created by Tekton controllers are now generated withkmeta.ChildName
:ChildName generates a name for the resource based upon the parent resource and suffix. If the concatenated name is longer than K8s permits the name is hashed and truncated to permit construction of the resource, but still keeps it unique. If the suffix itself is longer than 31 characters, then the whole string will be hashed and
parent|hash|suffix
will be returned, where parent and suffix will be trimmed to fit (prefix of parent at most of length 31, and prefix of suffix at most length 30).The name of the
Pods
owned by aTaskRun
is univocally associated to the owning resource. If aTaskRun
resource is deleted and created with the same name, the childPod
will be created with the same name as before.
The base format of the name is<taskrun-name>-pod
. The name may vary as described above if it becomes too long.
In case of retries, starting from the first retry, the base format of the name is<taskrun-name>-retry<N>
whereN
is the retry number.The name of the
TaskRuns
andRuns
owned by aPipelineRun
are univocally associated to the owning resource. If aPipelineRun
resource is deleted and created with the same name, the childTaskRuns
will be created with the same name as before.
The base format of the name is<pipelinerun-name>-<pipelinetask-name>
. The name may vary as described above if it becomes too long. -
π Escape git usernames with backslashes in .gitconfig (#4337)
Git credential usernames containing a backslash will have that backslash escaped with an additional backslash in .gitconfig.
-
π Stop using milli-quantities for memory and ephemeral storage (#4335)
Adjusting the pod transformation code based on limit ranges to only use milli-quantities for CPU, but not for memory and ephemeral store and half bytes do not exist.
-
π Use cmpopts.IgnoreFields instead of IgnoreType. (#4328)
-
π TestTaskRunTimeout: Reduce timeout 30s -> 1s. (#4360)
-
π Set explicit timeoutSeconds on example's readinessProbe (#4371)
-
π Fix ignore annotation for gosec (#4345)
-
π Rewrite flakey workspace-in-sidecar example (#4349)
Misc
-
π¨ Updates helm task e2e test to use v1 rbac api (#4369)
-
π¨ Bump Alpine base images from 3.11 to 3.14 (current latest) (#4332)
Bump base image for git-init and pullrequest-init from alpine:3.11 to alpine:3.14
-
π¨ Bump the distroless image. (#4329)
Update the distroless image to one that has been signed with cosign and Fulcio.
-
π¨ Deprecate
PipelineResources
(#4376)action required:
PipelineResources
are deprecated. Consider using replacement features, such asTasks
, instead. -
π¨ Remove experimental disable resolution controller flag (#4346)
An experimental controller flag was added in Pipelines v0.28.0 to disable resolution of taskrefs and pipelinerefs. This flag has now been removed.
-
π¨ Minor refactoring of taskRef validation. (#4370)
-
π¨ Improve test coverage for pkg/git (#4367)
-
π¨ Turn on most of golangci-lint's
exclude-use-default
rules, address problems (#4315) -
π¨ Bump to release-1.0 of knative.dev/pkg (#4354)
-
π¨ Reduce integration test run times (#4353)
-
π¨ Makefile: allow override
ko
binary⦠(#4287) -
π¨ Expose metrics and pprof ports on Pod and pprof on Service (#4233)
Docs
-
π Add docs for missing variable substitution fields (#4359)
-
π updating release cheat sheet (#4322)
Updated the release cheat sheet to include creating a GitHub release branch such as release-v0.28.x as part of the release creation process.
-
π Fix structure and enable toc autogenerate (#4319)
Fix structure and enable toc autogenerate
-
π document how to verify tekton pipelines release (#4257)
Document step-by-step process of how to verify Tekton Pipelines release.
-
π Add instructions for replacing CloudEvent PipelineResource to pipeline docs (#4379)
-
π docs: fixing my name in topical-ownership π (#4363)
-
π Fix broken links and clarify GCR setup instructions in DEVELOPMENT.md (#4336)
-
π Adding note regarding whitespace sensitivity of
when
expressions (#4333) -
π adding entry for the latest release 0.29 π (#4325)
-
π Fix link to API compatibility policy (#4323)
Thanks
Thanks to these contributors who contributed to v0.30.0!
- β€οΈ @SaschaSchwarze0
- β€οΈ @ScrapCodes
- β€οΈ @abayer
- β€οΈ @afrittoli
- β€οΈ @bigfleet
- β€οΈ @chenbh
- β€οΈ @dalbar
- β€οΈ @imjasonh
- β€οΈ @jerop
- β€οΈ @koneko096
- β€οΈ @lbernick
- β€οΈ @mattmoor
- β€οΈ @pritidesai
- β€οΈ @sbwsg
- β€οΈ @sm43
- β€οΈ @squee1945
- β€οΈ @vdemeester
- β€οΈ @vinamra28
- β€οΈ @wlynch
Extra shout-out for awesome release notes:
- π @SaschaSchwarze0
- π @ScrapCodes
- π @abayer
- π @afrittoli
- π @imjasonh
- π @jerop
- π @koneko096
- π @mattmoor
- π @pritidesai
- π @sbwsg
- π @sm43
- π @vinamra28
- π @wlynch
Tekton Pipeline release v0.29.0 "Abyssinian Atom"
π πͺ Windows TaskRuns! πͺ π
-Docs @ v0.29.0
-Examples @ v0.29.0
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.29.0/release.yaml
Attestation
The Rekor UUID for this release is 8ba5dcc45b9fad4d879a8b6815cdaa85fdee1d9fc24cf8811f103d537c602908
Obtain the attestation:
rekor-cli get --uuid 8ba5dcc45b9fad4d879a8b6815cdaa85fdee1d9fc24cf8811f103d537c602908 --format json | jq -r .Attestation | base64 --decode | 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.29.0/release.yaml
REKOR_UUID=8ba5dcc45b9fad4d879a8b6815cdaa85fdee1d9fc24cf8811f103d537c602908
# Obtains the list of images with sha from the attestation
REKOR_ATTESTATION_IMAGES=$(rekor-cli get --uuid "$REKOR_UUID" --format json | jq -r .Attestation | base64 --decode | jq -r '.subject[]|.name + ":v0.29.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
β οΈ Known Issues
- #4483 Implicit parameter mapping incorrectly passes params from the top-level
Pipeline
orPipelineRun
totaskRef
Pipeline Tasks. Mapping should only occur from top-level resource to Pipeline Tasks with in-linetaskSpec
. This issue only affects users withenable-api-fields: alpha
in thefeature-flags
ConfigMap
stored in thetekton-pipelines
namespace.
Changes
Features
- β¨ Build entrypoint image for Windows (#4260)
The entrypoint multi-arch image now includes an image built for Windows, allowing TaskRuns to execute on Windows nodes.
Notes:
- πͺ There is a Windows page in the docs folder which outlines some important details about running Windows workloads in Tekton
- πͺ If a Windows task and a Linux task are both sharing a PersistentVolumeClaim workspace, the affinity assistant may need to be disabled (those two tasks cannot run on the same node).
- πͺ PipelineResources have not been tested for Windows tasks and probably won't work.
- πͺ Windows TaskRuns require - at least for now - privileged mode
Thanks for all the contributors for making this possible. We look forward to users feedback!
- β¨ Support for single-quote bracket notation for params (#4268)
Params and result can now be referenced with bracket notation using both single and double quotes in addition to dot notation. For example, the following are equivalent:
- β¨ Promoting "onError" to beta π (#4251)
Announcement: onError in a step is now stable and available to include in your task definition without any flag.
Fixes
- π Verify failure of
PipelineRun
inTestGitPipelineRunFail
(#4273) - π release: Drop windows from pipeline-wide platforms (#4308)
- π Don't pass the pipeline's default platforms value to the publish-image task (#4305)
- π release: Include windows in pipeline default platforms (#4304)
- π nightly: Configure auth before pushing combined base image (#4302)
- π Fix nightly release process (#4301)
- π Updates webhook cluster role to work with Owner References (#4269)
- π Ignore env var ordering in taskrun reconciler tests (#4286)
Misc
- π¨ Remove unused error type CannotConvertError (#4281)
Remove unused error type CannotConvertError
- π¨ Split /tekton/run directories into separate volumes. (#4278)
- π¨ Remove upgrade via defaulting (#4275)
Use only the conversion webhook to upgrade types, remove upgrade mechanism in the defaulter
- π¨ Removing internal/builder/v1alpha1 and all usages (#4270)
- π¨ Only add gcr.io images to publish results (#4283)
Due to a technical limitation, only images published to gcr.io
, which are included in the release.yaml
, are signed.
Images on eu.gcr.io
, us.gcr.io
and asia.gcr.io
are not signed yet.
- π¨ Fix unreachable code in
TestReconcileCancelledFailsTaskRunCancellation
(#4312) - π¨ Clean up a bunch of exported comments to actually match the element (#4311)
- π¨ Update comment for
dag.GetSchedulable
(#4310) - π¨ Remove last lingering unnecessarily exported functions (#4296)
- π¨ Switch
test/*.go
to using YAML rather than structs (#4288) - π¨ Convert test/cluster_resource_test.go's Tekton structs to YAML (#4284)
- π¨ Removing internal/builder completely (#4277)
- π¨ pkg/pod: extract overrideHomeEnv/WorkingDir outside (#4250)
- π¨ pkgs: move affinity assistant to a pod transformer (#4245)
- π¨ pkg/pod: simplify orderContainers returns (#4244)
- π¨ Bump some stale dependencies in go.mod. (#4243)
- π¨ Mount entrypoint volume as read-only. (#4242)
- π¨ Mark Downward API VolumeMount as readonly. (#4236)
- π¨ Have
[Cluster]Task
andPipeline
implementkmeta.OwnerRefable
. (#4295) - π¨ Generate reconcilers for
[Cluster]Tasks
andPipelines
. (#4293) - π¨ Make sure images stored in registry mirrors are signed (#4262)
- π¨ Remove sbwsg from OWNERS_ALIAS file (#4249)
Docs
- π Add reference to authoring recommendations (#4318)
- π fix couple of small typos (#4292)
- π Fix Example in Service Account Documentation (#4274)
- π Update ToC in TaskRuns documentation (#4265)
- π Document Alpha Features (#4246)
- π links to the patch release v0.28.2 (#4314)
- π adding an entry for v0.28.1 π’ (#4267)
- π adding links to pipeline release 0.28 (#4252)
- π Revamp Tekton developer docs for /tekton paths. (#4238)
Thanks
Thanks to these contributors who contributed to v0.29.0!
- β€οΈ @abayer
- β€οΈ @afrittoli
- β€οΈ @dlorenc
- β€οΈ @guillaumerose
- β€οΈ @imjasonh
- β€οΈ @jerop
- β€οΈ @mattmoor
- β€οΈ @nbaudis
- β€οΈ @pritidesai
- β€οΈ @priyawadhwa
- β€οΈ @sbwsg
- β€οΈ @skaegi
- β€οΈ @vaikas
- β€οΈ @vdemeester
- β€οΈ @wlynch
Extra shout-out for awesome release notes:
- π @abayer
- π @afrittoli
- π @guillaumerose
- π @imjasonh
- π @jerop
- π @nbaudis
- π @pritidesai
- π @skaegi
- π @vaikas
- π @wlynch
Tekton Pipeline release v0.28.2 "Siberian Hadaly"
π Fix panic when pending pipelinerun is failed π
-Docs @ v0.28.2
-Examples @ v0.28.2
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.28.2/release.yaml
β οΈ Known Issues
- #4483 Implicit parameter mapping incorrectly passes params from the top-level
Pipeline
orPipelineRun
totaskRef
Pipeline Tasks. Mapping should only occur from top-level resource to Pipeline Tasks with in-linetaskSpec
. This issue only affects users withenable-api-fields: alpha
in thefeature-flags
ConfigMap
stored in thetekton-pipelines
namespace.
Fixes
- π Fix panic when pending pipelinerun is failed (#4306)
Fixed an issue where the PipelineRun reconciler could panic if a PipelineRun with spec.status set to PipelineRunPending was placed into a failed state before execution was able to begin.
Thanks
Thanks to these contributors who contributed to v0.28.2!
- β€οΈ @sbwsg
- β€οΈ @pritidesai
Extra shout-out for awesome release notes:
- π @sbwsg
- π @pritidesai
Tekton Pipeline release v0.28.1 "Siberian Hadaly"
π onError
with workspaces, enforcing step timeout
, and documentation for disabling ref resolution π
-Docs @ v0.28.1
-Examples @ v0.28.1
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.28.1/release.yaml
Backwards incompatible changes
In current release:
- π¨ Breaking change in the controller signatures
Breaking signature change in taskrun.NewController
and pipelinerun.NewController
to take advantage of pipeline.NewFlagOptions(flag.CommandLine)
to reduce churn due to flag changes:
New Signature:
func NewController(opts *pipeline.Options) func(context.Context, configmap.Watcher) *controller.Impl {...}
Old signature:
func NewController(namespace string, conf ControllerConfiguration) func(context.Context, configmap.Watcher) *controller.Impl {...}
Fixes
-
π V0.28 Cherry-Pick: disable resolution flag, onError with workspaces, enforce step timeout, and refactor controllers (#4263)
-
Fixing a bug where the specified step timeout was lost and not propagated to the entrypoint. This fix enforces the step timeout.
-
Fixing a bug where
onError
was not honored in presence of a workspace. Now,onError
can be set tocontinue
to ignore a step error in a task with a workspace. -
Documented a controller flag that disables ref resolution in pipelineruns and taskruns.
-
(New in v0.28.1, will be part of v0.29.0) Downstream consumers of
taskrun.NewController
andpipelinerun.NewController
will have to fix a breaking signature change; however, they can now take advantage ofpipeline.NewFlagOptions(flag.CommandLine)
to reduce churn due to flag changes.
-
Thanks
Thanks to these contributors who contributed to v0.28.1!
- β€οΈ @pritidesai
- β€οΈ @sbwsg
- β€οΈ @mattmoor
Extra shout-out for awesome release notes:
- π @pritidesai
- π @sbwsg
- π @mattmoor
Tekton Pipeline release v0.28.0 "Siberian Hadaly"
π Metrics options, better LimitRange
support, marking Pod
as Terminating and implicit parameters π
-Docs @ v0.28.0
-Examples @ v0.28.0
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.28.0/release.yaml
β οΈ Known Issues
- #4483 Implicit parameter mapping incorrectly passes params from the top-level
Pipeline
orPipelineRun
totaskRef
Pipeline Tasks. Mapping should only occur from top-level resource to Pipeline Tasks with in-linetaskSpec
. This issue only affects users withenable-api-fields: alpha
in thefeature-flags
ConfigMap
stored in thetekton-pipelines
namespace.
Changes
Features
- β¨ Support activeDeadlineSeconds for Tekton pods π¦ (#4217)
Set activeDeadlineSeconds
on Tekton's Pod so that they are considered Terminating for Kubernetes.
This helps supporting ResourceQuota a bit better as now Tekton Pipeline's pod are considered terminating and thus can be using a specific scoped ResourceQuota for those.
- β¨ Allow in param/result names via subscript. (#4215)
Parameter and result names may now contain .
and be referenced via the subscript operator (e.g. $(params["foo.bar"])
- β¨ Add Configuration for Metrics Cardinality Simplification (#4201)
Metrics tags/labels type on taskrun/pipelinerun and task/pipeline can be eliminated metrics using configmap. Also, the type of metrics for duration - histogram or gauge/last value, can also be configured.
- β¨ Attempt to lookup cached entrypoint by digest, if possible (#4188)
Attempt to avoid incurring a rate limited image pull to lookup cached image entrypoints, if we can avoid it.
- β¨ Revamp how pipeline supports Limitranges (#4176)
Support fully LimitRange by taking into account the Min
, Max
, Default
and DefaultRequest
fields as well as the MaxLimitRequestRatio
) to define the coherent Requests and Limits on the Pod.
- β¨ Add Cancelled Pipelinerun metrics (#4144)
Add Cancelled Pipelinerun metrics
- β¨ Add script mode support to windows tasks (#4128)
Add script mode support for windows Tasks/Pipelines
-
β¨ Implement implicit parameter resolution. (#4127)
- Tasks can now accept more parameters than are actually used.
- Parameters can now be implicitly propagated to inlined specs (alpha feature flag must be enabled) -
e.g. an inlined Task can access parameters of its parent PipelineRun without
needing to explicitly define each param.
Backwards incompatible changes
In current release:
-
π¨ The default value for the new Step
onError
alpha feature has changed its name fromfail
tostopAndFail
. #4151. Note: this only affects user ofv0.27.0
as this behavior change was backported intov0.27.1
. -
π Patch vendor/ apimachinery to work on 1.22 (#4164)
Backport adding Subresource field to ManagedField entries in our vendor/
folder to make tektoncd/pipeline work on k8s 1.22
- π Propagate Pipeline name label to PipelineRun (#4163)
pipeline name label is propagated to pipelinerun, even when the pipelinerun is pending or cancelled
- π Set the scripts dir to readonly after init (#4161)
Mount script workspace as readonly
- π Fix Concurrency issue in the metrics (#4222)
- π Un-randomize TestConvertScripts_WithBreakpoint_OnFailure (#4197)
- π Configure
user.name
ingit_test.go
run
method. (#4192) - π Don't modify the lister cache's copy. (#4180)
- π Switch from -Z to -w (#4178)
Misc
- π¨ Remove the pkg/jsonpath library. (#4208)
The package pkg/jsonpath
has been removed. This does not effect anyone using tektoncd/pipeline directly, but may break users importing this code as a library during an update. We're unaware of any usage of this package right now.
The constants defined for the Tekton specific labels now include GroupName(tekton.dev) in the definition, for example:
Before this change:
const TaskLabelKey = "/task"
After this change:
const TaskLabelKey = GroupName + "/task"
If you are importing these constants in your application from the pipeline source, you don't need to add GroupName anymore.
-
π¨ (cleanup) use skipping reason instead of existence of variables (#4147)
-
π¨ Poll for the status of Runs (#4213)
-
π¨ Add controller flag to turn off built-in resolution (#4168)
Introduce experimental flag to disable built-in resolution behaviour of the taskrun and pipelinerun reconcilers.
- π¨ Add metadata to our publish task for Tekton Chains to observe & sign (#4156)
Tekton Pipelines releases are now signed by Tekton Chains.
- π¨ Use an Informer to list LimitRanges π₯Ό (#4234)
- π¨ Remove unnecessary replace directives in go.mod (#4229)
- π¨ Skipping the CI secret sauce π¦ (#4221)
- π¨ Bump github.com/cloudevents/sdk-go to v2.5.0 (#4216)
- π¨ Switch the linter from golint to revive, and fix warnings. (#4212)
- π¨ Make
NewRecorder
a proper singleton (#4210) - π¨ Don't rely on condition ordering. (#4209)
- π¨ Remove the gosec Makefile target. (#4207)
- π¨ Bump golangci-lint to v1.42.0 from v1.30.0. (#4206)
- π¨ Bump the go-scm, docker/cli and docker/docker libraries. (#4205)
- π¨ Adjust the way
{pipeline,task}run
metrics are surfaced. (#4204) - π¨ Bump the version of K8s clients and knative/pkg (#4198)
- π¨ Improve the logging in pkg/git testing (#4191)
- π¨ Deduplicate timeout constants. (#4189)
- π¨ Add CE Client to dynamic injection (#4183)
- π¨ Adjust several log lines (#4182)
- π¨ Fix a small copy/pasta typo (#4181)
- π¨ pkg/entrypoint: clean after running tests (#4175)
- π¨ Remove confusing comment (β_β (#4171)
- π¨ Update to latest knative.dev/pkg (#4170)
- π¨ Replace snooze with NewRequeueKey (#4131)
Docs
- π Document Pipeline's use of Pod termination messages (#4226)
Our developer docs now include more details on how Tekton Pipelines uses Pod termination messages to communicate information between Task pods and the Tekton Pipelines controller.
- π Add docs and examples for Windows (#4138)
- π Docs for Metrics Configuration (#4218)
- π Add doc links for 0.27.2 and 0.27.3 (#4203)
- π Update readme with release 0.27.1 links (#4162)
- π Update docs with 0.27.0 info (#4152)
Thanks
Thanks to these contributors who contributed to v0.28.0!
- β€οΈ @06kellyjac
- β€οΈ @DrWadsy
- β€οΈ @aiden-deloryn
- β€οΈ @bobcatfish
- β€οΈ @dlorenc
- β€οΈ @imjasonh
- β€οΈ @jerop
- β€οΈ @khrm
- β€οΈ @mattmoor
- β€οΈ @pritidesai
- β€οΈ @sbwsg
- β€οΈ @sm43
- β€οΈ @vdemeester
- β€οΈ @wlynch
Extra shout-out for awesome release notes:
- π @06kellyjac
- π @DrWadsy
- π @aiden-deloryn
- π @bobcatfish
- π @dlorenc
- π @imjasonh
- π @jerop
- π @khrm
- π @mattmoor
- π @pritidesai
- π @sbwsg
- π @sm43
- π @vdemeester
- π @wlynch
Tekton Pipeline release v0.27.3 "Tonkinese Talos"
π Support for Kubernetes 1.22 π
-Docs @ v0.27.3
-Examples @ v0.27.3
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.27.3/release.yaml
Upgrade Notices
This is the first Tekton Pipelines release with support for Kubernetes 1.22. There are no other changes.
Changes
Fixes
- π Patch vendor/ apimachinery to work on 1.22 (#4164)
Backport adding Subresource field to ManagedField entries in our vendor/
folder to make tektoncd/pipeline work on k8s 1.22.
Thanks
Thanks to these contributors who contributed to v0.27.3!
- β€οΈ @vdemeester
Tekton Pipeline release v0.27.2 "Tonkinese Talos"
π Bug Squashed in PipelineRun<->Pipeline Labelling π
-Docs @ v0.27.2
-Examples @ v0.27.2
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.27.2/release.yaml
Changes
Fixes
- π: Propagate Pipeline name label to PipelineRun (#4163)
This bug fix allows PipelineRuns started in a Pending or Cancelled state to be identified using label queries for the associated Pipeline name.
Thanks
Thanks to these contributors who contributed to v0.27.2!
- β€οΈ @jerop
Tekton Pipeline release v0.27.1 "Tonkinese Talos"
π Tekton Pipelines' images now signed by Tekton Chains π
-Docs @ v0.27.1
-Examples @ v0.27.1
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.27.1/release.yaml
Changes
Features
- β¨ Tekton Pipelines' images are now being signed by Tekton Chains with Tekton's public key. Verify them with
cosign
).
Backwards incompatible changes
In current release:
- π¨ The default value for the new Step
onError
alpha feature has changed its name fromfail
tostopAndFail
. #4151
Thanks
Thanks to these contributors who contributed to v0.27.1!
- β€οΈ @bobcatfish
- β€οΈ @pritidesai
- β€οΈ @priyawadhwa
- β€οΈ @sbwsg
Tekton Pipeline release v0.27.0 "Tonkinese Talos"
π Step onError
Handling, Skipping Strategies and Custom Task Timeouts! π
-Docs @ v0.27.0
-Examples @ v0.27.0
Installation one-liner
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.27.0/release.yaml
Upgrade Notices
Changes
Features
-
β¨ TEP-0040 Specifying
onError
behaviour for Steps (#4106)
This is a brand new Alpha feature: Use onError: continue
for a Step if you would like to ignore any errors and continue executing the rest of the Steps in a Task. When onError
is set to continue
, the Step's exit code is recorded and made available to subsequent Steps via two new variables in Tasks. A Step with onError
set to continue
does not fail a TaskRun and continues executing the rest of the steps in a task.
The default value for the onError
field is fail
, which matches existing Step behavior: an error results in the Task stopping and entering a failed state. π¨ NOTE The name of the default value may change in a subsequent release from fail
to stopAndFail
to make this behaviour more explicit. Follow tektoncd/community#497 to keep informed about this potential change. A Backwards Incompatibility note will be included with the release if this change moves ahead. π¨
-
β¨ TEP-0059 Skipping Strategies (#4085)
When Expressions
are changing scope: in a future release (and today, if you enable the flag) a when
stanza will guard only the Task it is attached to instead of the Task and all of its dependents. To guard both a Task and its dependents the when
stanza will need to be attached to each dependent Task as well. This change will roll out for all users of v1beta1
resources in 9 months, per our beta deprecation policy, and will be the default behaviour for When Expressions
in any new apiVersions
of Tekton's resources going forward.
New Feature Flag: scope-when-expressions-to-task
Default Value: "false"
To guard a Task
only and unblock execution of its dependent Tasks
, set the scope-when-expressions-to-task
feature flag to "true".
Action Required: when
expressions guarding a Task
and its dependent Tasks
is deprecated and will be removed - migrate by setting scope-when-expressions-to-task
feature flag to "true"
and updating your Pipelines to cascade when
expressions to subsequent Tasks
as needed.
For the rationale and use-cases that inspired this change please see TEP-0059.
-
β¨ Implement timeout for custom tasks. (#3976)
Custom Tasks can now include a timeout
as part of their spec. Custom Task controllers can add support for responding to this field with new behaviour such as cleanup processes. Here's an example usage in a Run
leveraging the TaskLoop
Custom Task controller:
apiVersion: tekton.dev/v1alpha1
kind: Run
metadata:
generateName: simpletasklooprun
spec:
timeout: 10s # set timeout here.
params:
- name: word
value:
- jump
- land
- roll
- name: suffix
value: ing
ref:
apiVersion: custom.tekton.dev/v1alpha1
kind: TaskLoop
name: simpletaskloop
-
β¨ A new label for TaskRuns to identify their place in Pipelines (#4121)
TaskRuns and Runs in a Pipeline will now receive an additional label, tekton.dev/memberOf
. The value of this label will be: tekton.dev/memberOf=tasks
for entries in the "tasks" section of a Pipeline and tekton.dev/memberOf=finally
for entries in the "finally" section of a Pipeline.
-
β¨ Add variable expansion in the
workspaces.mountPath
field of Tasks (#3934)
Users are now able to utilize variable substitution in the mountPath
field of a Workspace within a Task. This is useful, for example, to parameterize the directory under which source code from a Workspace should appear in a Task's filesystem.
Deprecation Notices
-
π¨ Early Warning: When Expressions will change their scope in a future release
Please see the "Skipping Strategies" feature description above for fuller information. In short: When Expressions currently guard both a Task and all of that Task's dependents. In future this behaviour will be changed so that When Expressions only guard the Task they are attached to. As part of this release a new feature flag has been added called scope-when-expressions-to-task
. The default value is "false"
, indicating no immediate change to behaviour. In 9 months, per our beta deprecation policy, this value will be changed to "true"
by default and eventually the flag will be removed completely. It is strongly advised that you assess your current suite of Pipelines for any impact this change might have on you and your teams. (#4085).
Fixes
- π Graceful Termination: Cancelled Task is Failed (even with Retries) (#4136)
PipelineTasks with retries that were "gracefully cancelled" could result in a PipelineRun being left in a hung state. This has been fixed.
- π Invalidate passing Results between Finally Tasks (#4132)
Pipelines that attempted to pass results from one Finally Task to another were not being caught during validation. This is not supported because Finally Tasks are not allowed to have dependencies among themselves. This has been fixed.
In addition this bug fix also dramatically improves the validation of Finally Tasks by ensuring that all validation errors are returned to the user at once rather than only the first error that was encountered.
- π Mark webhook and controller as safe-to-evict (#4124)
By default, controller components are now marked as safe-to-evict by the cluster autoscaler. See docs/enabling-ha.md for more details.
- π Passes pipelines/tasks from bundles through defaulting before execution (#4117)
Pipelines and Tasks fetched from Tekton Bundles were not being passed through a defaulting step before being validated, which could result in spurious validation errors. This has been fixed.
-
π Loosen permission checks on TestCp to handle umasks. (#4100)
-
π support referencing array params in when expression values (#4075)
When expression values can now use array parameter references, for example: values: [$(params.arrayParam[*])]
Misc
- π¨ Update to latest knative.dev/pkg (#4129)
- π¨ Fix Example with Completed and Succeeded Execution Status (#4140)
- π¨ Add e2e tests for Windows (#4139)
- π¨ Get default sa from configmap defaultconfigs (#4095)
- π¨ Small entrypoint unit test fixes prior to 0.27 release (#4149)
- π¨ Switch
Errorf
toFatalf
in retry tests. (#4133) - π¨ Use
knative.dev/pkg/changeset
(#4126) - π¨ Use
controller.FilterController(&v1beta1.TaskRun{})
(#4113) - π¨ Drop the tracker. (#4111)
- π¨ Take advantage of
kmeta.OwnerRefable
. (#4110) - π¨ cleanup -
homeDir
constant and hardcoded path (#4079) - π¨ Cleanup multi-arch tests (#4045)
Docs
- π GoogleContainerTools/skaffold mainline branch is called 'main' rather than 'master' (#4120)
- π docs: rename to expressions (#4104)
- π Add WhenExpressions to variable substitution documentation (#4091)
- π updating readme to include 0.26 (#4089)
- π minor doc fix (#4109)
- π Fix misplaced fields in API spec (#4094)
- π Always refer to "finally" tasks π (#4090)
- π Add issue link to comment in controller yaml (#4088)
Thanks
Thanks to these contributors who contributed to v0.27.0!
- β€οΈ @ScrapCodes
- β€οΈ @aiden-deloryn
- β€οΈ @barthy1
- β€οΈ @bobcatfish
- β€οΈ @imjasonh
- β€οΈ @jerop
- β€οΈ @khalkie
- β€οΈ @kim-fitness
- β€οΈ @mattmoor
- β€οΈ @praveen4g0
- β€οΈ @pritidesai
- β€οΈ @sbwsg
- β€οΈ @sm43
- β€οΈ @wlynch
Extra shout-out for awesome release notes:
- π @ScrapCodes
- π @aiden-deloryn
- π @imjasonh
- π @jerop
- π @khalkie
- π @kim-fitness
- π @mattmoor
- π @praveen4g0
- π @pritidesai
- π @sm43
- π @wlynch