Skip to content

Releases: tektoncd/pipeline

Tekton Pipeline release v0.10.2 "Bombay Robbie"

19 Mar 15:28
Compare
Choose a tag to compare

-Docs @ v0.10.2
-Examples @ v0.10.2

Fixes

  • πŸ› Fix panic in controller related to image digest exporter (#2222)]

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

11 Mar 15:42
Compare
Choose a tag to compare

πŸŽ‰ Beta Release Candidate 2 πŸŽ‰

This is the second release towards Beta and includes bug fixes for issues discovered after RC1 went out. There will be at least one more release candidate before the actual Beta.

🚨 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 use kubectl replace instead of apply or first delete the Task and then re-apply 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.

-Docs @ v0.11.0-rc2
-Examples @ v0.11.0-rc2

Changes

Features

  • ✨ Add description field to Spec (#2089)

Deprecation Notices (Same as RC1)

  • 🚨 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 (Same as RC1)

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.

Fixes

  • πŸ› Remove result initcontainer (#2175)
  • πŸ› SetDefaults for embedded specs (Pipeline, Task) πŸ₯„ (#2162)
  • πŸ› Fix to FieldError fields name for duplicate param names and associated unit tests (#2195)
  • πŸ› Fixes Task workspaces marshalling (#2200)
  • πŸ› Handle the case of multiple versions of a status (#2194)

Misc

  • πŸ”¨ Invalid Sink URI CloudEvent test sometimes includes quotes (#2166)

Docs

  • πŸ“– Rewrite the Pipelines tutorial for clarity and flow. (#2068)
  • πŸ“– Update some more example links and move task results example (#2148)
  • πŸ“– Document Task Results maximum size (#2167)
  • πŸ“– Update install instructions on OpenShift (#2169)
  • πŸ“– Add params section to Pipelinerun doc (#2173)
  • πŸ“– Fix pipeline spelling bug in developers/readme.md (#2184)
  • πŸ“– Update docs to use v1beta1
  • πŸ“– Remove MiniShift from install documentation (#2189)
  • πŸ“– Fix broken markdown links in our doc (#2205)
  • πŸ“– Spelling fixes in our doc (#2206)

Thanks

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

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

04 Mar 19:26
Compare
Choose a tag to compare

πŸŽ‰ 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!

Read more

Tekton Pipeline release v0.10.1 "Bombay Robbie"

30 Jan 07:11
Compare
Choose a tag to compare

-Docs @ v0.10.1
-Examples @ v0.10.1

Fixes

  • πŸ› Ensure taskRef is non nil before setting defaults as this is an optio… #1966 (#1970)
  • πŸ› Avoid a panic when sorting container statuses #1927 (#1943)
  • πŸ› Add tekton.dev/release annotation to the webhook πŸ‹ #1942 (#1945)
  • πŸ› leave max container request values at original index #1937 (#1962)
  • πŸ› Fix release yaml for openshift install 🐸 #1959 (#1963)
  • πŸ› Revert "Don't rely on .status.podName to find Pod associated with a T… #1971 (#1973)

Thanks

Thanks to these contributors who contributed to v0.10.1!

Tekton Pipeline release v0.10.0 "Bombay Robbie"

23 Jan 11:46
Compare
Choose a tag to compare

πŸŽ‰ Happy new year release with a lot of gift πŸŽ‰

Go modules switch, Enhancements of scripts (no shebang required, Condition support, …), workspace addition, embedded TaskSpec in PipelineSpec, More PodTemplate (and defaults support), Optional and allowing unused PipelineResources.

Note: starting from this release, there will be a release.notags.yaml in addition to the usual release.yaml. This file (release.notags.yaml) is meant to be used if the container runtime used by your kubernetes distribution is not compatible with the image reference notation name:tag@digest (which is currently the case for cri-o and thus for OpenShift 4.x).

-Docs @ v0.10.0
-Examples @ v0.10.0

Changes

Features

  • ✨ Script enhancements

    Task steps that use script mode no longer need to specify a shebang line. Scripts that do not start with a shebang will use a default value of "#!/bin/sh". (#1691)
    Allow args with script mode (#1656)
    Script mode will now insert set -xe to scripts that don't include a shebang #!, which will in turn fail scripts with commands that error our and also print the command that is about to run. This default behaviour can be disabled by simply specifying your own #! at the top of the script. (#1736)
    Add script mode for Conditions (#1798)

  • ✨ Add workspace support to Task{,Run} and Pipeline{,Run}

    Adds the concept of "workspaces" to Tasks. This allows Task authors to declare directories they expect to be provided via Volumes at runtime. At runtime, TaskRuns can provide PVCs or EmptyDirs to use for these directories. (#1639)
    A Task's workspaces can be declared as readOnly: true. When this is set, the underlying volume mount will likewise be marked as read-only and the task will not be able to write to the volume. (#1760)
    A ConfigMap can be bound to a workspace. This allows users to easily expose the contents of a ConfigMap as a volume in Task containers. (#1800)
    Secrets can now be used for the contents of task workspaces. Users can now more easily declare and expose a secret as a volume for tasks to use in their step containers. (#1801)
    Pipelines and PipelineRuns can now declare workspaces to more easily thread shared storage through the tasks in a pipeline (#1866)

  • ✨ PipelineResource enhancements

    Do not error out in case of extra, unused resource (#1679)
    PullRequestResource: Adds read-only pr.json to include other various pull request information. (#1685)
    Introducing a new key called optional as part of the PipelineResourceDeclaration by default a resource is required (as is - no change in behavior). (#1601)

  • ✨ Adding support for taskSpec with pipelineSpec
    Allow embedding task specification with taskSpec under pipelineSpec (#1554)

  • ✨ Add Go module support for pipelines. (#1607)

  • ✨ PodTemplates enhancements

    Support the automountServiceAccountToken, dnsPolicy, dnsConfig, and enableServiceLinks fields in pod templates (#1781)
    Add support for default pod template (#1901)

  • ✨ Use tekton instead of all as categories 🎿

    Remove the category all for our CRD and have a tekton categorie that is shared with other tektoncd projects (#1884)

  • ✨ Changes to add results to a task

    Add results to the task spec and handle all changes in the entrypoint code. (#1888)

  • ✨ Don't hard-code too much 😝
    The webhook service and deployment can have a name specified by the user. (#1724)
    ConfigMaps used to configure artifact storage can have a name specified by the user (#1723)

  • ✨ Reflect tektoncd/pipeline release version as an annotation on pod
    tekton.dev/release annotation will be added to all pods created by the controller which would let us know what release of tekton is running. (#1758)

  • ✨ Add support for from usage in Pipeline Conditions

    Resources in Pipeline Conditions can now declare that they depend on the output of previous tasks using the from clause. (#1527)

  • ✨ Issue 1182: Add sslVerify flag to pipelineresource type git

    The sslVerify parameter is now available on PipelineResource's of type git. This property defines whether http.sslVerify should be set to true or false in the global git config. Setting the property to false will disable certificate validation during the running of the git fetch against the git server and will be of use to people hosting git servers with self signed certificates. The parameter sslVerify defaults to true if omitted. (#1752)

  • ✨ Add Description to ResourceDeclaration (#1875)

  • ✨ Make default managed-by label configurable

    The default app.kubernetes.io/managed-by label value is configurable in a ConfigMap (#1893)

  • ✨ Add gitlab support to the PR resource. (#1550)

Additionaly there has been ground work on the next API version, v1alpha2:

  • ❇️ Add Task to v1alpha2 πŸŽ‹ (#1651)
  • ❇️ Port workspace and script without shebang to v1alpha2 (#1841)
  • ❇️ Add TaskRun to v1alpha2 πŸŽ‹ (#1725)
  • ❇️ Add Pipeline to v1alpha2 πŸŽ‹ (#1864)

Deprecation Notices

  • 🚨 Removes unused status fields from Pipeline and PipelineResource.

    Those fields stays in v1alpha1 but should be gone in the next API version (#1640, #1762, #1766)

  • 🚨 Don't rely on .status.podName to find Pod associated with a TaskRun

    TaskRuns identify Tekton-owned Pods using label selectors, instead of relying on the value of .status.podName. This valus is still provided in case clients rely on its presence. (#1709)

Backwards incompatible changes

In current release:

  • 🚨 Remove /builder/home mount (#1700)

    Possibly breaking: Remove /builder/home volume mount; users should use the value of $HOME, which points to /tekton/home```

  • 🚨 Reserve /tekton/ paths and "tekton-internal-" volume names

    Reject volune names starting with "tekton-internal-" and volume mounts mounting under /tekton/* -- these are reserved for Tekton internal implementation details. (#1701)

  • 🚨 Remove the support for legacy image output paths.

    Support for the legacy image output path (/builder/home/image-outputs) has been removed. The new location (/workspace/output/) should be used instead. (#1671)

  • 🚨 Remove support for the name parameter to cluster resources.

    Support for the "name" parameter to the cluster resource has been removed. Users should use the standard "name" parameter on the resource object itself instead. (#1672)

Fixes

  • πŸ› Restrict length of volumes generated from secret names (#1756)
  • πŸ› Fix bug in entrypoint lookup for steps by digest (#1675)
  • πŸ› Handle injected sidecars more correctly (#1688)
  • πŸ› Set scm.PR.Sha to scm.PR.Head.Sha when loading from disk. (#1693)
  • πŸ› Mark task as failed if OOMKilled. (#1812)
  • πŸ› Fix passing -submodules flag to git-init (#1813)
  • πŸ› Correctly report step start times (#1722)
  • πŸ› Issue 1862: Gitlab status upload fails with missing commit error (#1863)
  • πŸ› Avoid stuck on pending when hit "CreateContainerConfigError" (#1907)

Misc

  • πŸ”¨ Split out step resource request management (#1655)
  • πŸ”¨ Don't fail if there are no comments, labels or statuses. (#1666)
  • πŸ”¨ Generate Pod name using names package (#1664)
  • πŸ”¨ Restore builder/home for publish nightly (#1667)
  • πŸ”¨ Add workingdir integration test (#1625)
  • πŸ”¨ Set default resource requests in Pod test builder (#1668)
  • πŸ”¨ Add copyright headers in pkg/pod (#1669)
  • πŸ”¨ Fetch {Cluster}Tasks using generated client (#1662)
  • πŸ”¨ Address review comments from #1653 (#1670)
  • πŸ”¨ Store tektoncd/pipeline release version to a variable during build (#1650)
  • πŸ”¨ Use dogfooding ko image during release and nightly 🌞 (#1678)
  • πŸ”¨ Move image data extraction into entrypoint_lookup.go (#1686)
  • πŸ”¨ Add golint to the linters (#1682)
  • πŸ”¨ Bump plumbing to get latest fixes πŸ‘¨β€πŸš€ (#1699)
  • πŸ”¨ Fix lint failure (#1708)
  • πŸ”¨ Remove imports of golang.org/x/xerrors (#1711)
  • πŸ”¨ Fix linter errors in log messages (#1719)
  • πŸ”¨ Increase the linter timeout to 5m (#1726)
  • πŸ”¨ Simplify variable substitution tests βš—οΈ (#1702)
  • πŸ”¨ Fix golint error strings. (#1732)
  • πŸ”¨ Rename constants.go to storagetypes.go πŸ’Ž (#1730)
  • πŸ”¨ Fixes flaky metrics unit tests (#1731)
  • πŸ”¨ Cleanup the prow nightly release task and pipeline (#1718)
  • πŸ”¨ Format pullrequest-init example JSON files. (#1728)
  • πŸ”¨ Move context*.go to pkg/contexts and add tests 🎐 (#1720)
  • πŸ”¨ Use the ko image with gcloud for release (#1734)
  • πŸ”¨ Pin the version of golangci-lint in release pipeline (#1721)
  • πŸ”¨ Fix nightly modules tags (#1737)
  • πŸ”¨ Fix the release docs (#1738)
  • πŸ”¨ (Temporarly) disable markdown link check πŸ˜… (#1743)
  • πŸ”¨ Parameterize git clone depth and fix disabling submodules (#1729)
  • πŸ”¨ Move *RunControllerName out of v1alpha1 🐸 (#1706)
  • πŸ”¨ Call gcloud auth activate-service-account if GOOGLE_APPLICATION_CREDENTIALS is set (#1757)
  • πŸ”¨ go.mod changes: less replace (#1751)
  • πŸ”¨ Use vendored version of plumbing instead of go get 🦸 (#1763)
  • πŸ”¨ Running ./hack/update-deps.sh on master 🍢 (#1767)
  • πŸ”¨ Correcting Comment Typos and Updating cancelPipelineRun Error Message (#1780)
  • πŸ”¨ Ignore code coverage for auto generated file (#1778)
  • πŸ”¨ Python2 has been deprecated (#1799)
  • πŸ”¨ Change variable name: non-existent variabl...
Read more

Tekton Pipeline release v0.9.2

13 Dec 03:27
Compare
Choose a tag to compare

Fix for #1714 and other related issues surrounding the pullrequest resource.

Tekton Pipeline release v0.9.1

06 Dec 17:57
Compare
Choose a tag to compare

Fixes:

  • #1675 - Fix bug in entrypoint lookup for steps by digest (Fixes #1674)
  • #1685 - Add read-only copy of pull request object in resource output (Fixes #1681)
  • #1693 - Set scm.PR.Sha to scm.PR.Head.Sha when loading from disk.

Tekton Pipeline release v0.9.0 "Bengal Bender"

02 Dec 20:48
Compare
Choose a tag to compare

πŸŽ‰ Script mode, improved pipeline resources, fewer PVCs, more dogfooding and much much more! πŸŽ‰

-Docs @ v0.9.0
-Examples @ v0.9.0

Changes

Features

  • ✨ Implement step scripts

Support step scripts for easier scripting inside container executions (#1432).

  • ✨ Enhance the cluster resource type a bit

Makes it easier to use cluster resource on GKE. (#1466)

  • ✨ TaskRunStatus includes sidecar status

The status of a task run includes the image ids of all sidecars. (#1515)

  • ✨ git-init: add support for fetching submodules 🚝

git-init (thus GitResource) will now init and update submodules recursively by default (#1531)

  • ✨ Migrate PullRequestResource to go-scm.

Updates Pull Request resource to use go-scm. This is the first step towards extending the PullRequest resource to other SCM providers (e.g. GitLab) (#1521)

  • ✨ Only make a PVC for a PipelineRun if we need to. πŸ—‘οΈ

PVCs for output -> input linking will now be created only when that linking is actually present in a Pipeline, fixing #937 (used to be created for all Pipelines that included any Task with an Output). (#1545)

Deprecation Notices

  • 🚨 Change the path used by the image digest exporter to the standard output path structure.

Image index.json files are now expected to be written to /workspace/output/ instead of /builder/home/image-outputs. The old location is still supported, but support for this will be removed in a future release (#1467).

  • 🚨 Remove the custom "name" parameter from cluster resources.

The 'name' parameter to the cluster resource is now deprecated. Please use the standard name parameter on the Task Resource binding instead. (#1474)

  • 🚨 Point $HOME to /tekton/home

Change $HOME to /tekton/home
/builder/home is still provided, backed by the same volume, but will be removed in a future release(#1628)

Backwards incompatible changes

In current release:

  • 🚨 Remove deprecated serviceAccount field from *Run 🌳

Remove deprecated serviceAccount field from TaskRun/PipelineRun in favor of serviceAccountName.
serviceAccount was deprecated in v0.8.0. serviceAccountName is supported starting v0.8.0 (#1618)

  • 🚨 Remove cmd/bash image

This is not strictly speaking an backward incompatible change, since the bash image was not part of the API.
Marking it here in case anyone depend on that image.
Use busybox directly to invoke shell commands in support of internal operations, instead of our own wrapper around busybox. (#1503)

  • 🚨 Remove cmd/gsutil image

This is not strictly speaking an backward incompatible change, since the gsutil image was not part of the API.
Marking it here in case anyone depend on that image.
Use google/cloud-sdk directly to invoke gsutil in support of internal operations, instead of our own wrapper around that image. (#1504)

  • 🚨 Remove cmd/nop

This is not strictly speaking an backward incompatible change, since the nop image was not part of the API.
Marking it here in case anyone depend on that image.
Use tianon/true instead of cmd/nop (#1510)

  • 🚨 Remove outputImageDir from the API

outputImageDir is not supported anymore (#1467)

  • 🚨 GCS Resource now requires explicit auth

Users must now call gcloud auth activate-service-account --key-file $GOOGLE_APPLICATION_CREDENTIALS before attempting to use a GCS resource that requires authentication.

Fixes

  • πŸ› Have cmd/bash image actually use bash (#1446)
  • πŸ› Randomly generate script heredoc to prevent collisions (#1453)
  • πŸ› Fix 1059 - TaskRun controller update status and labels on error (#1204)
  • πŸ› Replace ValidateFrom with pipelineSpec.Validate (#1452)
  • πŸ› Add validation when applying task modifiers 🧐 (#1479)
    • If the implementation of a PipelineResource tries to add steps or volumes that already exist, execution will fail before the pod is created.
  • πŸ› Exit with a non-zero exit code when we skip a command in the entrypointer (#1501)
    • Steps now exit with an exit code of 1 if they are skipped because a previous step failed.
  • πŸ› Stop race condition on cloud event YAML test (#1517)
  • πŸ› Disable colour in tkn logs (#1525)
  • πŸ› Re-add support for github auth from the GITHUB_TOKEN env variable. (#1556)
  • πŸ› Apply param replacements in step scripts (#1562)
  • πŸ› Fix potential bug caught by gobugs (#1588)
  • πŸ› Readd mounting volumes in workingdir (#1609)
    • Fix workingdir-init to mount the volumes when starting the initContainer.
  • πŸ› Align pull request resource and pullrequest-init (#1615)
  • πŸ› Fix issue: Params in multiple condition of one task will be overwrite (#1620)
  • πŸ› Fix incorrect logic in output resource handling (#1491)
  • πŸ› Support stepTemplate alongside script mode (#1653)

[Fill list here]

Misc

  • πŸ”¨ Update prerelease-check task name to be "checks" (#1449)
  • πŸ”¨ Bump knative.dev/pkg to 528ad1c πŸ”₯ (#1412)
  • πŸ”¨ Nightly release on latest tekton (#1422)
  • πŸ”¨ Remove test/logs helper binary in favor of tkn βš“ (#1414)
  • πŸ”¨ Bump plumbing to latest version (#1465)
  • πŸ”¨ Update golang to 1.13 version (#1320)
  • πŸ”¨ Make cmp.Diff want vs got usage clear 🚰 (#1480)
  • πŸ”¨ Add support for release-postprocessing (#1457)
  • πŸ”¨ Make ResourceRef in PipelineResourceBinding consistent with TaskRun (#1497)
  • πŸ”¨ Make sure required PVC is created in reconciler test πŸ‘Ά (#1482)
  • πŸ”¨ Small e2e tests refactoring (#1505)
  • πŸ”¨ Make PipelineSpec/PipelineRef in PipelineRun consistent with TaskRun (#1495)
  • πŸ”¨ types: group vars πŸ‘Ό (#1528)
  • πŸ”¨ Tag published images (#1502)
  • πŸ”¨ Reduce the number of github status updates. (#1537)
  • πŸ”¨ Publish tag follow up (#1536)
  • πŸ”¨ Make TestKanikoTaskRun more portable (#1516)
  • πŸ”¨ Linting yamls with yamllint 🏷 (#1544)
  • πŸ”¨ Add securityContext to run as root for kaniko example πŸ€– (#1560)
  • πŸ”¨ Kaniko test follow up (#1558)
  • πŸ”¨ Make kanikotest skip on environment using scc (#1563)
  • πŸ”¨ Update the kaniko executor image version to 0.14.0 (#1564)
  • πŸ”¨ Bump plumbing to latest changes πŸ”— (#1566)
  • πŸ”¨ Move Validatable/Defaultable interface checks out (#1571)
  • πŸ”¨ Update to Kubernetes 1.13.4 libraries (#1572)
  • πŸ”¨ Add kube client oidc authentication support for testing (#1577)
  • πŸ”¨ Make sure v1alpha1.Condition satisfy webhook.GenericCRD βš™ (#1580)
  • πŸ”¨ Do not hardcode APIVersion in GetTaskRunRef πŸ‘Ό (#1579)
  • πŸ”¨ Preparation work to setup a v1alpha2 API version:
    • Extract artifacts constants out of v1alpha1 package 🍳 (#1581)
    • Extract dag function out of v1alpha1 βš™ (#1582)
    • Add empty v1alpha2 package 🎐 (#1578)
    • Extract substitution code out of v1alpha1 βœ‚ (#1611)
    • Extract validateObjectMetadata to a validate package βœ‚ (#1614)
  • πŸ”¨ Add Terminated, Running, and Waiting Container States to Test Builder (#1591)
  • πŸ”¨ Fix nightly (and non-nightly) release Task and Pipeline πŸ‘Ό (#1593)
  • πŸ”¨ Move GetPod from pod.go to taskrun.go (#1595)
  • πŸ”¨ Move working dir initialization out to pkg/pod/ (#1596)
  • πŸ”¨ Move creds-init to pkg/pod (#1599)
  • πŸ”¨ Increase linter timeout to 5m (#1613)
  • πŸ”¨ Simplify and split apart MakePod
    • Split out entrypoint resolution and injection, and script conversion (#1616)
    • Move MakePod to pkg/pod and unexport things (#1621)
    • Move PodStatus->TaskRunStatus code to pkg/pod (#1627)
    • Move workingDir initialization after script conversion (#1644)
  • πŸ”¨ Fix a gocritic lint issue: use switch instead of ifelse πŸ‘ (#1634)

[Fill list here]

Docs

  • πŸ“– Add a link to the 0.8.0 docs from README.md (#1447)
  • πŸ“– Fix a link 0.7 to 0.8 docs from README.md (#1451)
  • πŸ“– Update README with dogfooding cluster in place of prow (#1448)
  • πŸ“– Fix little typo (#1444)
  • πŸ“– Add link to step script in tasks.md (#1462)
  • πŸ“– Improve PipelineRun documentation (#1456)
  • πŸ“– Improve PipelineResource documentation (#1472)
  • πŸ“– Add a section to the docs on how to debug tasks. (#1470)
  • πŸ“– Make some docs a smidge more readable πŸ‘“ (#1477)
  • πŸ“– Update Tutorial (#1475)
  • πŸ“– Document bug with sidecar usage of nop image (#1464)
  • πŸ“– Add and fix various docstrings and comments ✍️ (#1478)
  • πŸ“– Start using embedded resources in task examples (#1488)
  • πŸ“– Correct and refine the document of task debugging (#1487)
  • πŸ“– Fix output/input resource issue in docs. (#1492)
  • πŸ“– Update resources.md (#1506)
  • πŸ“– Fix Pull Request resource example file structure (#1532)
  • πŸ“– Added s3 bucket configuration doc/example (#1533)
  • πŸ“– Fix typo in cloud event resources documentation (#1540)
  • πŸ“– Add link to docs on how to run a local registry (#1598)
  • πŸ“– Document odd kubectl get output for pods w/ sidecars (#1600)
  • πŸ“– Add an example that demonstrates waiting for a sidecar to become Ready (#1622)
  • πŸ“– Update some simple examples to use script mode (#1469)
  • πŸ“– Fix tiny typo (#1658)
  • πŸ“– Add versioned links to docs and examples for v0.9.0 (#1660)

[Fill list here]

Thanks

Thanks to these contributors who contributed to v0.9.0!

Read more

Tekton Pipelines release v0.8.0 "Peterbald Maria"

21 Oct 14:14
Compare
Choose a tag to compare

πŸŽ‰ Embedded Resource and Pipeline Specs, S3 Artifact Support, Pipeline Metrics & More! πŸŽ‰

-Docs @ v0.8.0
-Examples @ v0.8.0

Changes

Features

  • ✨ Allow PipelineResource implementations to modify the entire Pod spec.

This change simplifies the interface by removing the GetUpload/Download container and volume methods and replaces it with a more generic "modifier" system. (#1345)

  • ✨ Adding support to enable resourceSpec.

Its now possible to embed resourceSpec into PipelineRun. (#1324)

  • ✨ Add support for specifiying "0" as no-timeout for PipelineRuns.

This was already done in #1040 for TaskRuns, but PipelineRuns seem to have been missed. (#1365)

  • ✨ Add checking insecure flag when creating pipeline resources.

If insecure flag is true, user can create ClusterResource without cadata. (#1354)

  • ✨ Resolve all PipelineResources first before continuing

For folks importing the client libraries, when ResourceBindings are instantiated for TaskRuns, they now need to explicitly declare the newly embedded struct PipelineResourceBinding. (#1353)

  • ✨ Adding support to enable pipelineSpec

Its now possible to embed the whole pipeline specification into Pipeline Run using pipelineSpec (#1333)

  • ✨ Provide a way to specify default service accounts

If pipeline controllers are deployed with a config-map that has default-service-account key set to a non-empty string, pipeline-runs that do not specify a ServiceAccount will be modified (mutated) to the value of the default-service-account. (#1227)

  • ✨ Support runtimeClassName in pod templates

This change adds support for the Kubernetes 1.12+ runtime class feature by adding the runtimeClassName field to pod templates and propagating that to the underlying pod spec. (#1363)

  • ✨ Add support for using S3-compatible APIs instead of GCS by passing through a boto configuration file.

It is now possible to use S3-compatible APIs instead of GCS for GCS storage resources. (#1361)

  • ✨ Update TaskRunStatus.ResourcesResult to be more generic.

    • The Name and Digest fields on TaskRunStatus.ResourcesResult are deprecated and are replaced by the new Key and ResourceRef fields.
    • Both sets of fields are present in this release, but a future release will remove the legacy fields.
  • ✨ Add pipeline metrics πŸ”­ (#1387)

Following Pipelines metrics are available at tekton-pipelines-controller:9090/metrics endpoint

  1. Taskrun/Pipeline execution duration time
  2. Pipelinerun/Taskrun success and failure duration rates
  3. Number of Taskruns and Pipelineruns are executing currently
  4. Pod scheduling latency for Taskruns
  • ✨ Refactor Resource result output, and add support for Git resources.

The 'Git' PipelineResource now populates the taskRun.status.resourcesResult field with the commit used. (#1424)

  • ✨ Support multiple SSH keys for the same host

Allow multiple SSH-auth secrets annotated for the same host (#1433)

Deprecation Notices

  • 🚨 The "Name" and "Digest" fields on TaskRunStatus.ResourcesResult are deprecated

The Name and Digest fields on TaskRunStatus.ResourcesResult are deprecated and are replaced by the new Key and ResourceRef fields.

  • 🚨 ServiceAccountName(s) replaces ServiceAccount(s)

The serviceAccount field is deprecated. Use serviceAccountName instead.

Fixes

  • πŸ› Correct pod watching in Taskrun controller (#1269)
  • πŸ› Clean up YAML tests (#1351)
  • πŸ› Some of the task and pipeline names had capital letters that were invalid (#1381)
  • πŸ› Remove the gitlab example taskrun. (#1403)
  • πŸ› Add support for comment and label manifests. (#1408)
    • Fixes bug where PullRequestResource could accidentally delete newly created upsteam resources in certain race conditions.

Misc

  • πŸ”¨ Include vendored source in release-built images (#1338)
  • πŸ”¨ Fix line breaks in PR template (#1337)
  • πŸ”¨ Actually fix PR template line breaks (#1346)
  • πŸ”¨ Tekton 0.3.1 does not support $() syntax (#1339)
  • πŸ”¨ Fix some style issues noticed after #1345 was merged. (#1356)
  • πŸ”¨ Use Tekton's nightly-built build-base image (#1352)
  • πŸ”¨ Enable the "gosec" linter for CI, and fix the one issue in our code. (#1359)
  • πŸ”¨ Avoid cases when comparing in TestGitPipelineRun. (#1362)
  • πŸ”¨ Enable "gocritic" in CI, and fix associated errors. (#1360)
  • πŸ”¨ Move nopImage and entrypointImage from pkg/… package to cmd/controller (#1348)
  • πŸ”¨ Inline the ResourceDeclaration struct in TaskResource (#1366)
  • πŸ”¨ Update PipelineSpec Task name and TaskRef name validation to prevent errors at runtime (#1358)
  • πŸ”¨ Helpful error message when multiple volumes share name (#1404)
  • πŸ”¨ Enable the unparam linter, and fix outstanding issues. (#1388)
  • πŸ”¨ Add vendored-source logic to full release pipeline. (#1340)
  • πŸ”¨ Add logging to TimeoutHandler (#1335)
  • πŸ”¨ Use a local registry in build-push-kaniko (#1415)
  • πŸ”¨ Only mount artifact bucket volume once, even with multiple inputs. (#1370)
  • πŸ”¨ Use kubectl create instead of apply (#1398)
  • πŸ”¨ Use a subfolder in the release bucket (#1391)
  • πŸ”¨ Adapt the release pipeline to Tekton v0.7.0+ (#1421)
  • πŸ”¨ Allow entrypoint binary to wait for multiple files (#1430)
  • πŸ”¨ Remove unused results field from pr and tr specs (#1425)
  • πŸ”¨ Use correct version number for release link (#1428)
  • πŸ”¨ Fail test if resource creation fails (#1399)
  • πŸ”¨ Set defaults for Tasks embedded in TaskRuns (#1431)
  • πŸ”¨ upgrade executor version (#1435)
  • πŸ”¨ Use the pre-release check task from plumbing (#1434)

Docs

  • πŸ“– Small fixes to the release guide (#1322)
  • πŸ“– Add docker for desktop and minikube instructions (#1326)
  • πŸ“– Fix export comments (#1342)
  • πŸ“– Remove Docker Edge requirement from tutorial (#1385)
  • πŸ“– kubectl apply not work for examples with the genereateName (#1382)
  • πŸ“– Fix a tiny typo (#1390)
  • πŸ“– Added URL for permission (#1436)
  • πŸ“– Fix Typo in docs (#1442)

Thanks

Thanks to these contributors who contributed to v0.8.0!

Tekton Pipelines release v0.7.0 "Lynx Point"

19 Sep 17:22
Compare
Choose a tag to compare

πŸŽ‰ Nightly Releases, Sidecars for Tasks, CloudEvent pipeline resource, and much much more! πŸŽ‰

-Docs @ v0.7.0
-Examples @ v0.7.0

Changes

Features

  • ✨ Add nightly release pipeline πŸŒ™.

Nightly build artifacts are available at gs://tekton-release-nightly and gcr.io/tekton-nightly (#1274).

  • ✨ Add namespace to cluster resource (#1255).

  • ✨ Verify if pipeline works after upgrading from previous release to current release.

This introduces upgrade testing πŸŽ‰πŸŽ‰ (#1162).

  • ✨ Allow declaring and passing resources to conditions.

Adds resource support for conditionals. Conditions have to declare the resources they can use and these can be passed in via the Pipeline and PipelineRun spec similar to TaskResources. (#1151)

  • ✨ Add sidecars to Tasks

Tasks can now define a list of sidecar containers to run alongside their steps (#1236)

  • ✨ Update build-gcs resource type to support .tar.gz archives (#1200)

  • ✨ Cloud Event output resource (#837)

New output resource CloudEventPipelineResource available.
When used in a Task, it will generate a cloud event upon completion of any TaskRun
that references that Task. The cloud event includes the entire body of the TaskRun.

Deprecation Notices

  • 🚨 Deprecation Notice for Results Field for PipelineRuns and TaskRuns

Adding code comments to bring awareness to Results field removal in v0.8.0 (#1278).

  • 🚨 Update build-gcs resource type to support .tar.gz archives

build-gcs resources will no longer support artifactType Archive, use ZipArchive and TarGzArchive instead (#1200)

Backwards incompatible changes

In current release:

  • 🚨 Support for ${} syntax removed in favor of $()

${} syntax will no longer perform variable replacement, $() must be used instead. Last release introduced this change in a backwards compatible manner, by supporting both $() and ${}; now we are making the change to remove support for the ${} syntax (#1311).

  • 🚨Change the behavior of outputs that are also used as inputs.

Tasks that take input and output resources of the same type must now copy or move the resource from the input directory to the output directory manually. Tekton no longer automatically reads outputs from the input directory when the same resource is supplied in both places (#1122).

  • 🚨Remove deprecated podSpec field in favor of podTemplate.

Remove deprecated podSpec (nodeSelector, affinity and tolerations) fields in favor of podTemplate (#1299).

  • 🚨Update build-gcs resource type to support .tar.gz archives

build-gcs resources cannot be used as an output resource (#1200)

Fixes

  • πŸ› Annotate TargetPath and OutputImageDir with omitempty (#1225)
  • πŸ› Accept any sidecar termination reason (#1265)
  • πŸ› Support Condition only resources in PipelineTask (#1270)
  • πŸ› Made the digest exporter report image digest if there is only one image. (#1237)
  • πŸ› Fix and work around timeout handler data races (#1308):
    • Removes potential race conditions in timeout handler
    • It drops logging from timeout_handler. We'll attempt to restore logging in a thread-safe manner in the future.

Misc

  • πŸ”¨ Remove "Building" status reason (#1226).
  • πŸ”¨ Refactor reconciler package to not reference api version (#1216)
  • πŸ”¨ Bump github.com/knative/pkg dependency and deps… (#1117)
  • πŸ”¨ Add a using resources section in resources.md (#1257)
  • πŸ”¨ Update xerrors dependency (#1277)
  • πŸ”¨ Use ubuntu images for sidecar tests (#1254)
  • πŸ”¨ Increase linter timeout to 3 minutes (#1318)
  • πŸ”¨ Only compare ImageID suffix in TestTaskRunStatus test (#1233)
  • πŸ”¨ Add YAML test for non-build-gcs GCS resource (#1223)
  • πŸ”¨ Delete gopath-test taskrun example / YAML test (#1224)
  • πŸ”¨ Rename taskrun-github-pr-yaml totaskrun-github-pr.yaml. (#1218)
  • πŸ”¨ Refactor input resource volume handling to remove a type switch statement (#1139)
  • πŸ”¨ Add GcsFetcher and GcsUploader images to release task and pipeline (#1196)
  • πŸ”¨ Fix release pipeline to handle #1122 (#1327)
  • πŸ”¨ Emit pipelinerun event when it is cancelled (#1230)
  • πŸ”¨ Add managed-by label to Pods created from TaskRuns (#1329)
  • πŸ”¨ Update Deployments to use the apps/v1 API version (#1330)

Docs

  • πŸ“– Fix #1211 - Remove reference to yqArg in pipeline tutorial (#1212)
  • πŸ“– Fix name variables in cluster resource doc. (#1261)
  • πŸ“– Fix typos in release doc. (#1317)
  • πŸ“– Update release README numbering (#1321)
  • πŸ“– Typos and correctness fixes for creds-init CLI doc (#1297)
  • πŸ“– Enhancements for PullRequest Resource docs (#1276)
  • πŸ“– Fix Pull Request resource example url. (#1316)
  • πŸ“– Add links to 0.6.0 docs (#1203)
  • πŸ“– [Doc] Fix typos and link errors for pipelines.md (#1245)
  • πŸ“– Correct a small error in tasks.md readme (#1217)
  • πŸ“– Fix a few comments (#1207)
  • πŸ“– Update v0.6.0 docs to include fixed tutorial πŸ€’ (#1208)
  • πŸ“– Fix braces in tutorial 😭 (#1206)
  • πŸ“– Doc updates for typos and clearification (#1192)

Thanks

Thanks to these contributors who contributed to v0.7.0!

Extra shout-out for awesome release notes: