github tektoncd/pipeline v0.25.0
Tekton Pipeline release v0.25.0 "Black-Footed Throb"

latest releases: v0.65.1, v0.62.5, v0.65.0...
3 years ago

🎉 Hermetic Execution, Embedded Custom Tasks and Graceful Termination & Timeouts 🎉

-Docs @ v0.25.0
-Examples @ v0.25.0

Installation one-liner

kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.25.0/release.yaml

Upgrade Notices

N/A

Features

  • ✨ Add ConfigMap which can contain pipelines info and RBAC to access this ConfigMap (#3971)

  • ✨ Add support for experimental hermetic execution mode to TaskRuns (#3956)

    Add support for experimental hermetic execution mode to TaskRuns

  • ✨ Graceful Pipeline Run Termination (#3915)

    The new PipelineRun spec statuses have been added to control the way who a PipelineRun is being canceled or stopped.

    • "StoppedRunFinally" - To stop (i.e. let the tasks complete, then execute finally tasks) a PipelineRun
    • "CancelledRunFinally" - To cancel (i.e. interrupt any executing non finally tasks, then execute finally tasks)
    • "Cancelled" - replaces today's "PipelineRunCancelled" - i.e. interrupt any executing tasks without running finally tasks

    Support for existing statuses has been left unchanged. The status "PipelineRunCancelled" is deprecated and replaced by "Cancelled" (it would be removed in v1). The new states are released as alpha API features. Read more in TEP#0058.

  • ✨ TEP-0061, Allow custom task to be embedded. (#3901)

    It is now possible to embed the spec of a custom task in a Run resource, whether stand-alone or embedded in a Pipeline.

    • API changes, This PR adds new APIs i.e. adds a field Spec *EmbeddedRunSpec to RunSpec
    • An embedded task will accepts new field Spec with type runtime.RawExtension in addition to
      ApiVersion and Kind fields of type string (as part of runtime.TypeMeta)
    • Validation changes, in addition to adding support for Run.RunSpec.Spec the validations will be changed
      to support "One of Run.RunSpec.Spec or Run.RunSpec.Ref " only and not both as part of a single
      API request to kubernetes.

    action required: Developers of custom controllers (existing and new), who would like to support
    embedded spec for their custom task, need to implement the logic required to extract, validate
    and use the custom task spec from the new RunSpec.Spec field. Please review the documentation
    on upgrading, for more details and some examples.

  • ✨ Add a Timeouts optional field to pipelinerun (#3843)

    • API changes
      • Added field Timeouts to PipelineRun spec. It is a dict with the following sub-fields
        • pipeline, to control the pipeline failure timeout
        • tasks, to control the pipeline tasks failure timeout
        • finally, to control the pipeline finally tasks failure timeout
    • Changes in behavior
      • When supplied, a timeouts field combination permits deciding which part of the pipeline runtime is allocated to tasks and finally tasks.
  • ✨ Add variables context.pipelineTask.retries and context.task.retry-count (#3770)

Deprecation Notices

  • 🚨 "PipelineRunCancelled" is deprecated

    The status "PipelineRunCancelled" is deprecated and replaced by "Cancelled" (it would be removed in v1) (#3915)

Backwards incompatible changes

N/A

Fixes

  • 🐛 Fix Windows image entrypoint paths for parity with Linux (#4018)

  • 🐛 A custom task check could be true, even though the Provided Spec is invalid. (#4005)

  • 🐛 Fix Workspaces in Sidecar to be serialized as workspaces not Workspaces (#3966)

  • 🐛 Encode scripts as base 64 to avoid k8s mangling 40 (#3963)

    Scripts in Tasks are now written into the Task's pod using base64 to avoid kubernetes' built-in arg processing. This means they're a little larger than they were prior to this release but otherwise should continue working as expected.

  • 🐛 Only fetch the definitions once 🧙 (#3941)

    Only fetch the definition once, and then used the spec stored in the status as source of truth.
    This reduce the probable race condition when a PipelineRun or a TaskRun refers to a Pipeline or Task that changes during its execution.

  • 🐛 Skip heavy validation on deletion 🙃 (#3937)

    Skip heavy validation on deletion in the webhook

  • 🐛 Validate run for both ref and spec as nil. (#3977)

Misc

  • 🔨 Revert Fix issue with 69 in Script blocks (#3938)

    Revert fix for instances of "$$" in script blocks. Kubernetes replaces "$$" with a single "$" and your scripts need to deal appropriately with these instances.

  • 🔨 Cleanup integraton tests for multi-arch case (#3998)

  • 🔨 Fix list of proposed kind labels for PRs (#3987)

  • 🔨 Use tektoncd/results repo for git-init symbolic ref tests (#4038)

  • 🔨 Add Dockerfiles for Windows entrypoint and nop images (#3996)

  • 🔨 Add hermetic test running as non-root user (#3973)

  • 🔨 Change the way we run e2e tests with feature gates in pipelines (#3930)

Docs

  • 📖 Update api-spec.md to fix some formatting (#4030)

  • 📖 Add v0.24.2 to the README (#4015)

  • 📖 Fix minor typo in auth docs (#3992)

  • 📖 Document how to use the kind tool and the Tekton/plumbing convenience script (#3972)

    Documenting how to use the kind tool to setup the development environment.

  • 📖 Organize DEVELOPMENT.md, provide consistent examples & reflect go mod support (#3955)

    Organized DEVELOPMENT.md to provide more consistent examples and instructions.

  • 📖 Link to docs and examples for v0.24.3 (#4031)

  • 📖 Update docs to use Kubernetes 1.18 as the minimum version (#3986)

  • 📖 docs(pipelines): specify how to reference an array parameter (#3967)

  • 📖 Document the safe-to-evict annotation on the webhook deployment (#3961)

  • 📖 Add missing frontmatter to some docs (#3958)

  • 📖 Update pipelines.md (#3946)

  • 📖 Link to docs and examples for v0.24.1 (#3944)

  • 📖 Format code blocks with prettier (#3911)

Thanks

Thanks to these contributors who contributed to v0.25.0!

Extra shout-out for awesome release notes:

Don't miss a new pipeline release

NewReleases is sending notifications on new releases.