github tektoncd/pipeline v0.29.0
Tekton Pipeline release v0.29.0 "Abyssinian Atom"

latest releases: v0.59.0, v0.50.6, v0.47.9...
2 years ago

🎉 🪟 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 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

  • ✨ 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: $(param.myparam), $(param['myparam']), and $(param["myparam"]). Bracket notation has the additional benefit of allowing users to work with parameter names containing conflicting characters like "." (e.g. $(param['my.param']) or $(param["my.param"]).

  • ✨ 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 in TestGitPipelineRunFail (#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 and Pipeline implement kmeta.OwnerRefable. (#4295)
  • 🔨 Generate reconcilers for [Cluster]Tasks and Pipelines. (#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!

Extra shout-out for awesome release notes:

Don't miss a new pipeline release

NewReleases is sending notifications on new releases.