github tektoncd/pipeline v0.28.0
Tekton Pipeline release v0.28.0 "Siberian Hadaly"

latest releases: v0.60.1, v0.60.0, v0.59.0...
2 years ago

๐ŸŽ‰ 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 or PipelineRun to taskRef Pipeline Tasks. Mapping should only occur from top-level resource to Pipeline Tasks with in-line taskSpec. This issue only affects users with enable-api-fields: alpha in the feature-flags ConfigMap stored in the tekton-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 from fail to stopAndFail. #4151. Note: this only affects user of v0.27.0 as this behavior change was backported into v0.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 in git_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.

  • ๐Ÿ”จ Converts ResultType from string to int enum (#4186)

  • ๐Ÿ”จ cleaning up label keys ๐Ÿงน (#4154)

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!

Extra shout-out for awesome release notes:

Don't miss a new pipeline release

NewReleases is sending notifications on new releases.