Tekton Pipelines release v0.6.0 "Toyger Ultron"
Pre-releaseπ 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: