Releases: tektoncd/pipeline
Tekton Pipelines release v0.6.0 "Toyger Ultron"
🎉 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 using
default-timeout-minutes
inconfig/config-defaults.yaml
(default: 60 mins). The default value can be overridden in a PipelineRun or TaskRun using thetimeout
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 aContainerName
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
toTaskRun.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 tostepTemplate
🚨
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 usingAffinity
,Tolerations
, andNodeSelector
🚨
TaskRuns and PipelineRuns now contain aPodTemplate
field and theAffinity
,Tolerations
, andNodeSelector
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)
ClusterTask
s 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 aTaskRun
(#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!
- @afrittoli
- @cappyzawa
- @bobcatfish
- @dlorenc
- @dibyom
- @EliZucker
- @Fabian-K
- @hongchaodeng
- @hrishin
- @imjasonh
- @vincent-pli
- @sbwsg
- @shuheiktgw
- @vdemeester
- @houshengbo
Extra shout-out for awesome release notes:
Tekton Pipelines release v0.5.2 "Tuxedo Kilim" + bug fixes
🐛 Tekton Pipelines v0.5.1 with bug fixes 🐛
🐛 Do not panic if Timeout is nil (#1085 – Fix #1075)
Thanks
- ❤️ @abergmeier for the quick report!
Tekton Pipelines release v0.5.1 "Tuxedo Kilim" + bug fixes
🐛 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"
🎉 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
andenvFrom
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
tostepTemplate
🚨- The fieldcontainerTemplate
inTask
is now calledstepTemplate
.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
Task
s 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 aPipelineRun
would have a labeltekton.dev/pipelineTask
which holds actual Task name give in Pipeline definition (#966)
Thanks
Thanks to these contributors who contributed to v0.5.0!
- ❤️ @dibyom
- ❤️ @steveodonovan
- ❤️ @vdemeester
- ❤️ @abayer
- ❤️ @dlorenc
- ❤️ @houshengbo
- ❤️ @akihikokuroda
- ❤️ @EliZucker
- ❤️ @wlynch
- ❤️ @nader-ziada
- ❤️ @bobcatfish
- ❤️ @vbatts
- ❤️ @vtereso
- ❤️ @imjasonh
- ❤️ @cezkuj
- ❤️ @joseblas
- ❤️ @dicarlo2
- ❤️ @sbwsg
- ❤️ @shuheiktgw
- ❤️ @chmouel
- ❤️ @AlanGreene
- ❤️ @hrishin
- ❤️ @afrittoli
- ❤️ @pmorie
- ❤️ @u5surf
Extra shout-out for awesome release notes:
- 😍 @abayer
- 😍 @wlynch
- 😍 @vdemeester
- 😍 @EliZucker
- 😍 @cezkuj
- 😍 @sbwsg
- 😍 @joseblas
- 😍 @hrishin
- 😍 @dibyom
Tekton Pipeline Release v0.4.0 "Aegean Brackenridge"
This is the third dogfood released version of Tekton Pipelines, where the images were built, pushed and tagged using a Task!
Changes
Breaking Changes
- Remove the Trigger field from TaskRun/PipelineRun #857
Features
- Propagate annotations from Pipeline/Task to PipelineRun/TaskRun #894
- Generalize messages when TaskRun errs during pod creation #891
- Allow configuration of PVC size from ConfigMap #866
- Add support for taskRun to expose digest of built images #721
Fixes
- Correct setting for kaniko in tasks #883
- Fix documentation section about installing in custom namespace #881
- Surface resource constraint problems in TaskRun Status #876
- Enforce Default TaskRun Timeout #871
- Update doc to remove taskSpec as an alternative to pipelineRef in a pipelineRun #870
Misc
- Add Type-Level godocs for API types #921
- Add godoc for missing Pipeline fields #920
- Use tektoncd build-base base image for the release #919
- Cleanup of initializing working dirs #843
Thanks
Thanks to these contributors who contributed to v0.4.0!
Tekton Pipeline Release v0.3.1 "Chartreux C-3PO" + bug fix
🐛 Tekton Pipelines with git ssh bug fixed 🐛
Thanks
- ❤️ @mgreau for the quick report!
- ❤️ @vdemeester for the quick fix!
- ❤️ @imjasonh for the
omitempty
fixes
Tekton Pipelines release v0.3.0 "Chartreux C-3PO"
🎉 Tekton Pipelines with containerTemplate
and better resources limit handling 🎉
This is the second dogfood released version of Tekton Pipelines, where the images were built, pushed and tagged using a Task!
Changes
Features
- Add additionalPrinterColumns to taskrun CRD (#694)
kubectl get taskruns
now gives more information likeType
,Status
,StartTime
,CompletionTime
- Add additionalPrinterColumns to pipelinerun CRD (#695, #730)
kubectl get pipelineruns
now gives more information likeType
,Status
,StartTime
,CompletionTime
- Define a minimal PodSecurityPolicy for Tekton components (#703, #718)
- Make generated pods only request the maximum necessary resources (#723)
Set CPU, memory, and ephemeral storage resource requests for each
step in a Task to zero if the step does not have the largest resource
request out of all steps in the Task. This ensures that the Pod that
executes the Task will only request the resources necessary to
execute any single step in the Task, rather than requesting the sum
of all of the step's resource requests, and is safe because Tekton
executes steps sequentially rather than all at once. - Adds shortname for taskrun and pipelinerun (#743)
Add short names totaskrun
andpipelinerun
resources.
User can usekubectl <action> tr ...
to deal withtaskruns
andkubectl <action> pr ...
to deal withpipelineruns
. - Support Pod tolerations in
PipelineRun
andTaskRun
(#707) - Adds
containerTemplate
toTaskSpec
, allowing for configuration of aContainer
to be used as the basis for all steps within theTask
. (#767) - Add a command line option to the controller for specifying a single namespace to watch, rather than watching all namespaces. (#784)
Fixes
- Bind webhook controller to a non priviliged port (#720)
- Fixes bug where sometimes TaskRun timeouts are dropped and the TaskRun may continue executing indefinitely (#780)
- TaskRun startTime is now determined by the start of reconciliation and is not tied to the creation time of the underlying Pod(s) (#780)
- Use gsutil rsync instead of cp for updating storage resource, handling the case where the bucket is empy and
dir
type is used. (#737) - Fix CompletionTime missing in TaskRun status (#740)
- Wrap nop final step with entrypoint,
Build success
only happens if the task really succeeded (#748) - git-init don't assume the image is running as root (#747)
- Fix propagation of concurrent TaskRun status to failed PipelineRuns (#757)
- Recreate TaskRun pods on deletion. (#758)
Misc
- Add a section for installing Tekton Pipelines on OpenShift (#699)
- Remove some mentions of "knative" and "build-pipeline" (#722)
- Skip some tests if KO_DOCKER_REPO is missing… (#710)
- Updating some tests to not require the docker socket (#716)
- Update some dependencies (#739)
- Move to the v1beta1 Conditions implementation. (#744)
- Add the step name in taskrun status (#657)
Thanks
Thanks to these contributors who contributed to v0.3.0!
- ❤️ @abayer
- ❤️ @bobcatfish
- ❤️ @chmouel
- ❤️ @dicarlo2
- ❤️ @dmathieu
- ❤️ @dwnusbaum
- ❤️ @girishramnani
- ❤️ @hrishin
- ❤️ @imjasonh
- ❤️ @nader-ziada
- ❤️ @piyush-garg
- ❤️ @sbwsg
- ❤️ @skeeey
- ❤️ @sosiska
- ❤️ @tomgeorge
- ❤️ @vdemeester
- ❤️ @vincent-pli
- ❤️ @zxDiscovery
Extra shout-out for awesome release notes:
- ❤️ @abayer
- ❤️ @dwnusbaum
- ❤️ @dicarlo2
- ❤️ @girishramnani
- ❤️ @hrishin
- ❤️ @imjasonh
- ❤️ @zxDiscovery
Tekton Pipelines release v0.2.0
🎉 Tekton Pipelines with Graphs; without init containers! 🎉
This is the first dogfood released version of Tekton Pipelines, where the images were built, pushed and tagged using a Task!
Changes
Features
- ✨ Allow default system namespace to be overridden using an env var (#427)
- ✨ Use DAG (graph) based execution for Pipelines instead of linear one (#473, #578 )
- ✨ Use truncated base TaskRun name for lookup (#565)
- ✨ The containers executing the Task steps are changed from using InitContainers to Containers in the TaskRun pod. This is achieved by wrapping each container by a custom binary entrypoint to manage the order of the steps. As such, it is always recommended to explicitly specify a command for a Task step. If a step's image is in a private registry, a ServiceAccount with ImagePullSecrets should be provided in the Task (#564, #620, #634, #647, #686, #687)
- ✨ Pipeline doesn't depend on knative/build anymore 💃 (#636, #648)
- ✨ Update taskrun/pipelinerun timeout logic to not rely on resync behavior (#621, #674, #681)
- ✨ cmd/git-init: check for errors or at least log them (#677)
Fixes
- 🐛 Make sure TaskSpec step container names aren't too long (#550)
- 🐛 Arbitrary git commits can now be specified in Git PipelineResources (previously it only supported commits which can be
git fetch
-ed) (#555) - 🐛 PipelineResources storage GCS for directories now preserves directory structures during copies. (#566)
- 🐛 Updates
tekton-pipelines-admin
clusterrole to have full access todeployments/finalizers
(#572) - 🐛 Container names must end with an alphanumeric character (#580)
- 🐛 ServiceAccount without ImagePullSecrets should not fail to fetch (#585)
- 🐛 Fixes RBAC permissions for task and pipeline runs for openshift (#583)
- 🐛 Port duplicate pod test from knative/build 🏗 (#603)
- 🐛 Use full command field for internal containers (#605)
Misc
- 🔨 Remove the
logsURL
field fromTaskRun
status. This field was never populated and was leftover from the original POC version of the API. #107 may add something like this in the future but that design remains TBD (#563) - ⏫ Bump kubernetes dependecies to 1.12.6 (#662)
Thanks
Thanks to these contributors who contributed to v0.2.0!
- ❤️ @abayer
- ❤️ @cagiti
- ❤️ @chmouel
- ❤️ @Conky5
- ❤️ @bobcatfish
- ❤️ @dlorenc
- ❤️ @dibbles
- ❤️ @hrishin
- ❤️ @imjasonh
- ❤️ @khrm
- ❤️ @skeeey
- ❤️ @mattmoor-sockpuppet
- ❤️ @mikeykhalil
- ❤️ @pivotal-nader-ziada
- ❤️ @nbarthwal
- ❤️ @rawlingsj
- ❤️ @rhuss
- ❤️ @shashwathi
- ❤️ @sthaha
- ❤️ @vbatts
- ❤️ @vdemeester
- ❤️ @assertion
Extra shout-out for awesome release notes:
Tekton Pipelines release v0.1.0
🎉 First Tekton Pipelines Release! 🎉
This is the very first release of Tekton Pipelines, which has built on the concept of the Build CRD, allowing users to declare typed inputs and outputs, and to combine multiple Builds (now called Tasks
) into a Pipeline
.
Features
Tasks
allow users to definesteps
(i.e. container images)- Steps which can be executed against typed Inputs and parameters to produce Outputs
- Cluster wide
ClusterTasks
are supported - They can declare
Parameters
which can be used in templatingsteps
Pipelines
combineTasks
together- Optionally they linking inputs and outputs between Tasks
- Tasks are executed sequentially in the order they are declared in the Pipeline.
- They can declare
Parameters
which can be used in templatingTask
usage
PipelineResources
are used as inputs and outputs. The following types are supported:- Git
- Image (templating of attributes only)
- Kubernetes Cluster
- Storage (currently only GCS)
Tasks
andPipelines
can be used repeatedly by instantiatingPipelineRuns
andTaskRuns
, which will cause these to execute.- Runs can be executed with user specified
ServiceAccounts
- Runs can be cancelled
- Runs can be executed with user specified
Fixes
n/a
Misc
n/a