Skip to content

Releases: tektoncd/pipeline

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:

Tekton Pipelines release v0.6.0 "Toyger Ultron"

15 Aug 17:11
Compare
Choose a tag to compare

πŸŽ‰ Conditional Execution, Array Params, StepTemplates, and much much more! πŸŽ‰

Changes

Features

  • Pipeline tasks can now be conditionally executed based on a user defined condition. See the docs on how to define Conditions and use then in Pipelines (#1031, #1093, #1143, #1178 ).
    Note: There is more work underway with Conditionals that will be in the next release (tracked in #1137)

  • Parameters now support the Array type. See the docs here (#1080).

  • stepTemplate now supports variable substitution (#1061)

  • The default timeout of TaskRun and PipelineRun is now configurable usingdefault-timeout-minutes in config/config-defaults.yaml (default: 60 mins). The default value can be overridden in a PipelineRun or TaskRun using the timeout field. Setting the timeout to 0 (either in the runs or in the config defaults) means that there will be no timeout for the TaskRun/PipelineRun (#1040).

  • TaskRun.Status.Steps.Container now has a ContainerName field (#1100)

  • Allow the definition of a storage class for the artifact pvc using the ConfigMap config-artifact-pvc (#1148)

  • Tekton now automatically creates directories for each Output resource during a Taskrun (#1156)

  • Add a mechanisms to update CRD objects from one version to another (#1083)

  • Adds a field called ImageID to TaskRun.Spec.Status.Steps, which contains the full image ID and digest used to run each step (#1026)

  • The pullRequest resource type now outputs and expects files in a slightly different format. The new format can be found here (#1181)

Backwards incompatible changes

In current release

  • 🚨 Removes containerTemplate which was renamed to stepTemplate 🚨

Last release introduced this change in a backwards compatible manner, now we are making the change to remove containerTemplate(#1174)

  • 🚨 Tekton's webhook no longer allows unknown fields in resources 🚨

If you have resources that use fields that were never part of the spec or that have been removed (example: the "trigger" field removed in 0.4.0) then those resources will now fail validation when applied.

Warnings for next release

  • 🚨 Please migrate to using podTemplate instead of using Affinity, Tolerations, and NodeSelector 🚨
    TaskRuns and PipelineRuns now contain a PodTemplate field and the Affinity, Tolerations, and NodeSelector fields are deprecated and will be removed in the next release (#1004, #1070)

  • 🚨First step in changing ${} syntax to $() 🚨
    Adds support for $() syntax in addition to ${}; in #1170 we will remove support for ${}. Please migrate to $()! (#1172)

  • 🚨 Outputs must be placed into the /workspace/outputs directory and Tekton will no longer copy them from the input directory automatically.🚨
    We now warn when the same resource is used as an input and an output of the same Task. This will still be a supported case, but the behavior on where files are expected to be will change in a future release (#1119)

Fixes

  • Fix flaky unit tests (#1072)
  • Fix Pipeline Spec validation by actually calling the Validate function (#1074)
  • ClusterTasks are not validated by the webhook just like any other resource (#1082)
  • Unknown fields in resource YAML/JSON will now be rejected when running "kubectl apply" (#1081)
  • Fix controller panic on when a TaskRun's Timeout is nil (#1085)
  • Validate TaskSpec's that are embedded in a TaskRun (#1084)
  • Faster integration tests by switching to Kaniko Dockerfile for image digest exporter tests (#1141)
  • Fixes a bug that allowed Tekton Tasks to run steps with a stale entrypoint (#1158)
  • PR filenames are URL-escaped before being written to disk (#1195).

Misc

  • Reduce the number of imageDigestExporter step to one per Task instead of one for each steps in a Task (#1126)
  • Propagate Pipeline labels to Pipeline as soon as possible, so that they are applied even if there is early validation error during reconcile (#1168)
  • Changes the type of the Steps field to a type that embeds Container, instead of using the Container type directly (#1060)

Thanks

Thanks to these contributors who contributed to v0.6.0!

Extra shout-out for awesome release notes:

Tekton Pipelines release v0.5.2 "Tuxedo Kilim" + bug fixes

17 Jul 06:46
Compare
Choose a tag to compare

πŸ› Tekton Pipelines v0.5.1 with bug fixes πŸ›

πŸ› Do not panic if Timeout is nil (#1085 – Fix #1075)

Thanks

Tekton Pipelines release v0.5.1 "Tuxedo Kilim" + bug fixes

15 Jul 13:36
Compare
Choose a tag to compare

πŸ› Tekton Pipelines v0.5.0 with bug fixes πŸ›

πŸ› Fix hanging PipelineRun with output and no linking (#1068)
πŸ› Add templating to stepTemplate (in addition to containerTemplate) (#1061)

Thanks

  • ❀️ @castlemilk for the quick and detailed report!
  • ❀️ @EliZucker for the quick stepTemplate fix!

Tekton Pipelines release v0.5.0 "Tuxedo Kilim"

09 Jul 21:55
Compare
Choose a tag to compare

πŸŽ‰ PullRequestResource, graceful sidecar support, scheduling in resource constrained environments and moar! πŸŽ‰

Changes

Features

  • ✨ The PullRequest Resource, supporting GitHub labels and comments (#895), GitHub status fetches and updates (#995), and enterprise GitHub (#1033)
  • ✨ Sidecar containers injected by, for example, Istio, will now gracefully start up and shutdown in tandem with a Task Steps' containers (#936)
  • ✨ Task pods that hit resource limits imposed by ResourceQuota objects in a namespace will no longer fail their TaskRun immediately. Pod creation will be repeatedly tried until successfully started or the TaskRun times out (#905)
  • ✨ Adding possibility to configure multiple service accounts for different tasks (#902)
  • ✨ The default timeout for TaskRuns and PipelineRuns is increased from 10 minutes to 60 minutes. This timeout will now be configurable. (#996)
  • ✨ Task authors can use template variables to refer to using path: ${inputs.resources.someresource.path} ${outputs.resources.someresource.path} (#877)
  • ✨ env.$var.valueFrom and envFrom now supports variable interpolation (#982)
  • ✨ containerTemplate now supports variable interpolation (#1006)

Backwards incompatible changes

In current release

  • 🚨 Remove "build" word references from TaskRun in the steps container name (#818)

Warnings for next release

  • 🚨 Please migrate from containerTemplate to stepTemplate 🚨- The field containerTemplate in Task is now called stepTemplate. containerTemplate will be removed in the next release (#931, #977)

Fixes

  • πŸ› Always include message and reason fields at all stages of TaskRun (#1046)
  • πŸ› Copying between Tasks using an artifact storage bucket will now preserve file permissions (#1048)
  • πŸ› Fix ClusterTask usage in a PipelineRun, would previously fail (#1003)
  • πŸ› Fixed an issue that caused PVCs to be created in some PipelineRuns when they were not necessary (#1007)

Misc

  • πŸ”¨ Annotates pod running controller components to prevent the node they're on from being evicted when autoscaling scales nodes down (#987)
  • ⏫ Performance improvements due to updated knative/pkg dependency (#985)
  • πŸ”¨ Status of steps in a TaskRun are now reported in the same order they are listed in the Task (#963)
  • πŸ”¨ PipelineResources will now be applied in the order they are declared in a Task (#970)
  • πŸ”¨ Every TaskRun created by a PipelineRun would have a label tekton.dev/pipelineTask
    which holds actual Task name give in Pipeline definition (#966)

Thanks

Thanks to these contributors who contributed to v0.5.0!

Extra shout-out for awesome release notes: