Skip to content

Tekton Pipeline release v0.11.0-rc1 "Ragdoll Norby"

Pre-release
Pre-release
Compare
Choose a tag to compare
@afrittoli afrittoli released this 04 Mar 19:26

πŸŽ‰ Beta Release Candidate 1 πŸŽ‰

With this release Tekton Pipelines introduces a new apiVersion, v1beta1. While the v1alpha1 version is continuing to be supported at this time we'd like to encourage anyone integrating with Pipelines to be aware of the upcoming API change and begin thinking about migrating over to the beta API. Documentation on migrating will be forthcoming, this release simply introduces the new version and allows us to publicise it.

Over the coming weeks we'll be working with the other Tekton projects to migrate their integrations to v1beta1 and fixing problems as they arise in subsequent Release Candidates.

🚨 If you are upgrading from an older version of Tekton you may need to delete your existing tekton-pipeline deployments before applying the 0.11 release candidates.

🚨 Submitting v1alpha1 Tasks more than once can now result in errors. Submitting a v1alpha1 Task once will work but submitting the same Task again will fail. To work around this problem first delete the Task and then reapply it.

This is a side-effect of the way Tekton internally upgrades Tasks from v1alpha1 to v1beta1. This issue will affect any Task that includes inputs.params or inputs.resources. On submission Kubernetes will return an error such as error when applying patch [...] validation failed: expected exactly one, got both: inputs.params, params.

🚨 Please also note that the minimum version of Kubernetes required to run Tekton is now 1.15.

Changes

Features

  • ✨ Introduce the v1beta1 API Version

    Tekton Pipelines has introduced a new API version, v1beta1, with improvements to some of its APIs and Types.

    Add ClusterTask to v1alpha2 (#1946)
    Port TaskResults and TaskRunResults to v1alpha2 (#1948)
    Port Workspace in pipeline support to v1alpha2 (#1949)
    Add PipelineRun types to v1alpha2 (#1955)
    Add LimitRangeName to v1alpha2.PipelineRun tulip (#2009)
    Task, ClusterTask and Pipeline auto-conversion from v1alpha1 to v1alpha2 (#2002)
    TaskRun, and PipelineRun auto-conversion from v1alpha1 to v1alpha2 (#2025)
    Expose v1beta1 to the world (#2035)

  • ✨ Improved LimitRange support

    Tekton Pipelines now plays more nicely with LimitRanges in a namespace when creating new Pods for TaskRuns.

    Leave Max Container Request Values at Original Indices (#1937)
    Check for LimitRange Minimum for TaskRun Container Requests (#1991)
    Add LimitRange Examples for PipelineRun and TaskRun (#2004)
    Pods created by TaskRuns will now respect any LimitRange minimums that exist in the namespace that the Pod runs in (#2020).

  • ✨ Pipeline Resources can now be marked as optional

    PipelineResources can now be declared as optional, allowing Tasks to be more flexible in their handling of input resources.

    Enabling Pipeline Resources to be marked as Optional (#1910)

  • ✨ Data can now be shared between Tasks using Task Results and Task Params

    A Pipeline can now feed Task Results into other Tasks through their Params. It is now much easier to pass small pieces of data through a Pipeline.

    Update task run status with results (#1921)
    Adding substitution for result path variable (#2018)
    Adding pipeline results (#2042)
    Make results folder writable (Fix for #2131) (#2143)

  • ✨ Tekton Pipelines can be configured to no longer overwrite the HOME environment variable and workingDir of Steps

    In the next release of Tekton this behaviour will become the default!

    Allow disabling implicit HOME overwrite (#2044)
    Add handling of working directory (#2115)

  • ✨ Sidecars now support Script mode, just like in Task Steps

    Add Script Support to Sidecars (#1987)

  • ✨ TaskRuns can now specify a different Scheduler Name in their podTemplate

    Add SchedulerName to TaskRunSpec (#1790)

  • ✨ JSONPath-like Star Array Notation can now be used in variable substitutions

    Adds Basic Support for Star Array Notation (#2085)

  • ✨ The Tekton Controller can now be configured to monitor an individual namespace

    Allow controller to watch a specified namespace (#2144)

Deprecation Notices

  • 🚨 PipelineResources are not moving to Beta with Tekton's other types

    PipelineResources have been a source of some contention within the Tekton community over the past several months. While the abstraction they expose does provide some value they can often be difficult to understand, hard to debug when they go wrong, and are far too limited in number and scope. For these reasons and more we do not plan to promote PipelineResources into Beta and will instead provide a documented migration path for users that does not use the type at all. Towards this goal we have already introduced a git-clone Task to the Tekton Catalog that provides exactly the same behaviour as the Git PipelineResource and we plan to introduce similar Tasks for all of the other existing PipelineResource types as well.

    See the git-clone Task in the catalog.

  • 🚨 The $HOME env var and workingDir of Steps will change in the next release

    Tekton currently overwrites the HOME environment variable in a Step's container to always be /tekton/home and the workingDir field of the Step's image to always be /workspace. This behaviour is problematic when a container depends on those values to be something specific for it to run correctly.

    In this release we are leaving Tekton's default behaviour alone but have introduced a new ConfigMap, named feature-flags, that allows you to disable it. In the next release we plan to flip this behaviour so that it is opt-in rather than opt-out. At some point in the future we plan to remove support for this overwriting behaviour entirely. (#2044).

Backwards incompatible changes

In current release:

  • 🚨 The minimum required version of Kubernetes is now 1.15

    Bump kubernetes to 1.16.5 and knative/pkg to release-0.12 (#1894)

  • 🚨 Submitting v1alpha1 Tasks more than once can now result in errors. Submitting a v1alpha1 Task once will work but submitting the same Task again will fail. To work around this problem first delete the Task and then reapply it.

Fixes

  • πŸ› Fix redundant type conversion (#2142)
  • πŸ› Fail step-script if param value is not applied (#1934)
  • πŸ› Fix params-applied example (#1925)
  • πŸ› Make pipelinerun as "cancelled" when taskrun is "cancelled" (#1935)
  • πŸ› Fix release yaml for openshift install (#1959)
  • πŸ› Remove Code Comment From v1alpha2 taskrun_types_test.go (#1967)
  • πŸ› Correct message of Pipelinerun when timeout (#2024)
  • πŸ› Enhance reconcile of taskrun to avoid extra pod creation (#2022)
  • πŸ› Add random suffix when make volumn from secret (#2048)
  • πŸ› Validate PipelineTask name as Task names (#2099)
  • πŸ› Fixes Steps container spec serialization/deserialization (#2151)

Misc

  • πŸ”¨ Update dind example to connect to daemon using TCP+TLS (#1932)
  • πŸ”¨ Add tekton.dev/release annotation to the webhook (#1942)
  • πŸ”¨ Use named field in test tables taco (#1954)
  • πŸ”¨ Add e2e test to cover TaskRun retries (#1975)
  • πŸ”¨ Increase timeout for e2e test_retry test (#1985)
  • πŸ”¨ Prepend tekton-bucket resource name with pipeline pill (#1982)
  • πŸ”¨ Remove messages about kodata in task logs (#2000)
  • πŸ”¨ Correct the number of expected pods created in e2e test case of "retry" (#1996)
  • πŸ”¨ Remove deprecated fields from PipelineResourceResult sweet_potato (#2011)
  • πŸ”¨ Make testcase of "retry" raise error rather than just log (#2033)
  • πŸ”¨ update cloudevents dependency and clean up deps (#2014)
  • πŸ”¨ Add symlink in kodata link (#2032)
  • πŸ”¨ Add a description field to pipeline workspace declarations (#2054)
  • πŸ”¨ Add jsonpath expand library (#1951)
  • πŸ”¨ Use vendor folder to speed up CI spoon (#2040)
  • πŸ”¨ Adding a version label to controller and webhook (#2064)
  • πŸ”¨ Refining status when Condition failed (#1696)
  • πŸ”¨ Add ContainerState and ContainerName for Sidecars (#2075)
  • πŸ”¨ Move Resources implementation to their package (#2103)
  • πŸ”¨ Update the kaniko executor image version to 0.17.1 (#2136)

Docs

  • πŸ“– Adding Documentation on PipelineTask Timeout (#2130)
  • πŸ“– Fix Install Guide formatting. (#2149)
  • πŸ“– Rewrite the Tekton Pipelines overview for clarity and flow (#2030)
  • πŸ“– Document default-managed-by-label (#1964)
  • πŸ“– fix wrong default pod template example (#1997)
  • πŸ“– Updating to include Tekton installtion (#2012)
  • πŸ“– Linking to conditions-doc insteadof self (#2046)
  • πŸ“– Indicate minimum cluster version is now 1.15 police_car (#2052)
  • πŸ“– Add authority for resource deployments.apps to tutorial-role (#2034)
  • πŸ“– Correct the wrong MD format for document: podTemplates (#2090)
  • πŸ“– Fix Broken Link and Typo for LimitRange Docs (#2108)
  • πŸ“– Installation: Added example for GoogleCloudStorage backend (#2123)
  • πŸ“– Rewrite Install Guide for clarity and flow. (#2146)
  • πŸ“– Fix Install Guide formatting. (#2149)

Thanks

Thanks to these contributors who contributed to v0.11.0-rc1!