Tekton Pipeline release v0.10.0 "Bombay Robbie"
π 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 insertset -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 calledoptional
as part of thePipelineResourceDeclaration
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
, andenableServiceLinks
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 atekton
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 ConditionsResources 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 typegit
. This property defines whether http.sslVerify should be set totrue
orfalse
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 totrue
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 fromPipeline
andPipelineResource
.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 variable of testCluster (#1804)
- π¨ Fix parallel test + for range value overwrite bug (#1793)
- π¨ Use vendor-ed version of plumbing instead of go get π¦Έ (#1807)
- π¨ Propagate Condition labels to the TaskRun/Pod (#1787)
- π¨ PullRequest Resource: Derive API URL from PR URL (#1817)
- π¨ Fix typo and some comments on uppercase variables in pkg/pod. (#1821)
- π¨ Allow keeping namespaces after running tests for investigation (#1810)
- π¨ Migrate PipelineResource in their own packageβ¦ π¦ (#1773)
- π¨ Ignore all generated files in pkg/client for golangci (#1837)
- π¨ Make sure all alpine packages are updated to their latest versions. (#1835)
- π¨ Factor out a method to parse termination messages (#1827)
- π¨ Update go.mod comment with the correct k8s version π (#1834)
- π¨ Use the same kaniko version everywhere (and update to latest) (#1847)
- π¨ Don't assume $0 is the script source (#1808)
- π¨ Rename some test to be closer to golang naming convention π (#1850)
- π¨ Unexport validate Workspace function πΌ (#1848)
- π¨ Explain why resource code generation is separate π₯ (#1842)
- π¨ Fix spelling errors (#1849)
- π¨ Enable sidecars to partake in substitution (#1770)
- π¨ Deduplicate and sort termination message items (#1851)
- π¨ Correct "outputs.resources.%s.path" (#1854)
- π¨ Use correct name for embedded pipelines to prevent reconciler panic (#1852)
- π¨ Group pipeline_validation_test together π (#1865)
- π¨ Add JSON struct tag for Workspaces field (#1873)
- π¨ Update service port naming inline with istio naming conventions (#1828)
- π¨ Bump go-containerregistry to latest version (#1882)
- π¨ CI: Fix shell expansion when creating resources (#1889)
- π¨ Address review comments from #1893 (#1895)
- π¨ fix: camel spelling (#1891)
- π¨ code simplify of bool check and return (#1899)
- π¨ test/builder.Step name is optional (#1897)
- π¨ Correct the output of a "failed" taskrun (#1906)
- π¨ Issue 1880: Adds ability to disable certificate validation in pullrequest resource (#1881)
- π¨ Fix lint on master π (#1914)
- π¨ TaskRun reconcile and timeout found, updateTaskRunStatusForTimeout delete pod optimization (#1911)
- π¨ Update v1alpha1 status types to inline fields (#1638)
Docs
- π Use script mode in even more examples (#1695)
- π Fix task.md typo workingdir to workingDir (#1759)
- π Fix link (#1774)
- π Fix spelling errors (#1772)
- π Add documentation about timeout format (#1840)
- π An example in the taskrun doc is not runnable (#1858)
- π Separate pod template doc (#1853)
- π Add missing podTemplate element (#1869)
- π Update documentation to add points on PVC binding (#1885)
- π doc(dev): never use "here" as a link (#1892)
- π Add missing docs link to README π (#1908)
- π doc(dev/install): Clarify PVC behavior for PipelineResources (#1918)
Thanks
Thanks to these contributors who contributed to v0.10.0!
- β€οΈ @imjasonh
- β€οΈ @MLBMatt
- β€οΈ @afrittoli
- β€οΈ @assertion
- β€οΈ @bigkevmcd
- β€οΈ @bobcatfish
- β€οΈ @cccfeng
- β€οΈ @cezkuj
- β€οΈ @cheesesashimi
- β€οΈ @chmouel
- β€οΈ @danielhelfand
- β€οΈ @dibbles
- β€οΈ @dibyom
- β€οΈ @dlorenc
- β€οΈ @docwhat
- β€οΈ @eddycharly
- β€οΈ @fraenkel
- β€οΈ @frostmourner
- β€οΈ @hrishin
- β€οΈ @impl
- β€οΈ @mattmoor
- β€οΈ @ncskier
- β€οΈ @othomann
- β€οΈ @poy
- β€οΈ @pritidesai
- β€οΈ @rick-a-lane-ii
- β€οΈ @sbwsg
- β€οΈ @silverlyra
- β€οΈ @sravankumar777
- β€οΈ @sthaha
- β€οΈ @tom1299
- β€οΈ @toshi0607
- β€οΈ @vdemeester
- β€οΈ @vincent-pli
- β€οΈ @vtereso
- β€οΈ @waveywaves
- β€οΈ @wlynch
Extra shout-out for awesome release notes:
- π @dlorenc
- π @sbwsg
- π @bobcatfish
- π @vdemeester
- π @wlynch
- π @pritidesai
- π @impl
- π @imjasonh
- π @waveywaves
- π @dibyom