You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Support both v1alpha1.Run and v1beta1.CustomRun for 4 LTS releases
after Beta release so that custom task end users and developers are
able to fully test and migrate Custom Task from alpha to beta
To achieve this, this commit introduces a new feature flag to control
the version switch between alpha and beta when defining a custom task
within a Pipeline.
Copy file name to clipboardexpand all lines: teps/0114-custom-tasks-beta.md
+20-2
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
status: implementable
3
3
title: Custom Tasks Beta
4
4
creation-date: '2022-07-12'
5
-
last-updated: '2022-11-14'
5
+
last-updated: '2022-11-24'
6
6
authors:
7
7
- '@jerop'
8
8
- '@XinruZhang'
@@ -29,6 +29,7 @@ see-also:
29
29
-[References and Specifications](#references-and-specifications)
30
30
-[Remove Pod Template](#remove-pod-template)
31
31
-[Feature Gates](#feature-gates)
32
+
-[Cancellation](#cancellation)
32
33
-[Documentation](#documentation)
33
34
-[Testing](#testing)
34
35
-[Optional](#optional)
@@ -205,12 +206,28 @@ own specification.
205
206
206
207
##### Feature Gates
207
208
209
+
##### New Feature Flag `custom-task-version`
210
+
211
+
Support both `v1alpha1.Run` and `v1beta1.CustomRun` for **four** [long term support (LTS)][long-term-support]
212
+
releases. So that custom task implementors and end users are able to fully test and migrate Custom Task from
213
+
`v1alpha1`to `v1beta1`.
214
+
215
+
Create a new feature flag `custom-task-version` to allow end users to choose which version of custom task to be
216
+
created out of a `PipelineTask`. We set the default feature flag value to `v1alpha1` in the first LTS release, and
217
+
switch to `v1beta1` in the following three LTS releases.
218
+
219
+
Say we start to support `v1beta1.CustomRun` in LTS release `X`, and set default value of `custom-task-version`
220
+
to `v1alpha1`. In the LTS release `X+1`, we switch the default value to `v1beta1`. In the LTS release `X+4`, we
221
+
remove the feature flag, and only support `v1beta1`.
222
+
223
+
##### Existing Feature Gates
224
+
208
225
Remove guarding of `Custom Tasks` behind `enable-custom-tasks` and `enable-api-fields` feature gates.
209
226
210
227
When [TEP-0096: Pipelines V1 API][tep-0096] is implemented to add V1 API, `Custom Tasks` will be gated behind feature
211
228
gate `enable-api-fields` being set to `"beta"` - this is out of scope for this TEP (in scope for TEP-0096).
212
229
213
-
##### Cancellation
230
+
#### Cancellation
214
231
215
232
The custom task is responsible for implementing `cancellation` to support pipelineRun level `timeouts` and `cancellation`. If the Custom Task implementor does not support cancellation via `.spec.status`, `Pipeline` **can not** timeout within the specified interval/duration and **can not** be cancelled as expected upon request.
216
233
@@ -366,3 +383,4 @@ For further details, see [tektoncd/community#523][523], [tektoncd/community#667]
0 commit comments