Skip to content

Commit f8e1b35

Browse files
committed
feat: promote StepActions to GA
Upgrade StepActions feature from beta to stable to make sure that it is enabled by default. StepActions has been in beta for a while and is also has good adoption among the community. It is pretty stable as a feature based on the regular usage. Moving it to GA will make sure that users will have access to better pipeline composability from the get-go. The following changes were made: - set enable-step-actions to "true" by default - updated to reflect that StepActions are now enabled by default - changed the feature flag stability from BetaAPIFields to StableAPIFields in feature_flags.go - updated feature flags, e2e tests and test data - moved relevant examples to stable examples - added relevant documentation for the move from beta to stable This change makes StepActions a stable, first-class feature in Tekton Pipelines.
1 parent 990917d commit f8e1b35

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+139
-738
lines changed

config/300-crds/300-clustertask.yaml

+1-6
Original file line numberDiff line numberDiff line change
@@ -3854,17 +3854,12 @@ spec:
38543854
description: |-
38553855
Results declares StepResults produced by the Step.
38563856
3857-
This is field is at an ALPHA stability level and gated by "enable-step-actions" feature flag.
3858-
38593857
It can be used in an inlined Step when used to store Results to $(step.results.resultName.path).
38603858
It cannot be used when referencing StepActions using [v1beta1.Step.Ref].
38613859
The Results declared by the StepActions will be stored here instead.
38623860
type: array
38633861
items:
3864-
description: |-
3865-
StepResult used to describe the Results of a Step.
3866-
3867-
This is field is at an BETA stability level and gated by "enable-step-actions" feature flag.
3862+
description: StepResult used to describe the Results of a Step.
38683863
type: object
38693864
required:
38703865
- name

config/300-crds/300-pipelinerun.yaml

-8
Original file line numberDiff line numberDiff line change
@@ -2587,8 +2587,6 @@ spec:
25872587
type: boolean
25882588
enableProvenanceInStatus:
25892589
type: boolean
2590-
enableStepActions:
2591-
type: boolean
25922590
enforceNonfalsifiability:
25932591
type: string
25942592
maxResultSize:
@@ -3001,8 +2999,6 @@ spec:
30012999
type: boolean
30023000
enableProvenanceInStatus:
30033001
type: boolean
3004-
enableStepActions:
3005-
type: boolean
30063002
enforceNonfalsifiability:
30073003
type: string
30083004
maxResultSize:
@@ -3289,8 +3285,6 @@ spec:
32893285
type: boolean
32903286
enableProvenanceInStatus:
32913287
type: boolean
3292-
enableStepActions:
3293-
type: boolean
32943288
enforceNonfalsifiability:
32953289
type: string
32963290
maxResultSize:
@@ -5898,8 +5892,6 @@ spec:
58985892
type: boolean
58995893
enableProvenanceInStatus:
59005894
type: boolean
5901-
enableStepActions:
5902-
type: boolean
59035895
enforceNonfalsifiability:
59045896
type: string
59055897
maxResultSize:

config/300-crds/300-stepaction.yaml

+2-8
Original file line numberDiff line numberDiff line change
@@ -263,10 +263,7 @@ spec:
263263
description: Results are values that this StepAction can output
264264
type: array
265265
items:
266-
description: |-
267-
StepResult used to describe the Results of a Step.
268-
269-
This is field is at an BETA stability level and gated by "enable-step-actions" feature flag.
266+
description: StepResult used to describe the Results of a Step.
270267
type: object
271268
required:
272269
- name
@@ -803,10 +800,7 @@ spec:
803800
description: Results are values that this StepAction can output
804801
type: array
805802
items:
806-
description: |-
807-
StepResult used to describe the Results of a Step.
808-
809-
This is field is at an BETA stability level and gated by "enable-step-actions" feature flag.
803+
description: StepResult used to describe the Results of a Step.
810804
type: object
811805
required:
812806
- name

config/300-crds/300-task.yaml

+2-12
Original file line numberDiff line numberDiff line change
@@ -3855,17 +3855,12 @@ spec:
38553855
description: |-
38563856
Results declares StepResults produced by the Step.
38573857
3858-
This is field is at an ALPHA stability level and gated by "enable-step-actions" feature flag.
3859-
38603858
It can be used in an inlined Step when used to store Results to $(step.results.resultName.path).
38613859
It cannot be used when referencing StepActions using [v1beta1.Step.Ref].
38623860
The Results declared by the StepActions will be stored here instead.
38633861
type: array
38643862
items:
3865-
description: |-
3866-
StepResult used to describe the Results of a Step.
3867-
3868-
This is field is at an BETA stability level and gated by "enable-step-actions" feature flag.
3863+
description: StepResult used to describe the Results of a Step.
38693864
type: object
38703865
required:
38713866
- name
@@ -6865,17 +6860,12 @@ spec:
68656860
description: |-
68666861
Results declares StepResults produced by the Step.
68676862
6868-
This is field is at an ALPHA stability level and gated by "enable-step-actions" feature flag.
6869-
68706863
It can be used in an inlined Step when used to store Results to $(step.results.resultName.path).
68716864
It cannot be used when referencing StepActions using [v1.Step.Ref].
68726865
The Results declared by the StepActions will be stored here instead.
68736866
type: array
68746867
items:
6875-
description: |-
6876-
StepResult used to describe the Results of a Step.
6877-
6878-
This is field is at an BETA stability level and gated by "enable-step-actions" feature flag.
6868+
description: StepResult used to describe the Results of a Step.
68796869
type: object
68806870
required:
68816871
- name

config/300-crds/300-taskrun.yaml

+1-14
Original file line numberDiff line numberDiff line change
@@ -1970,8 +1970,6 @@ spec:
19701970
type: boolean
19711971
enableProvenanceInStatus:
19721972
type: boolean
1973-
enableStepActions:
1974-
type: boolean
19751973
enforceNonfalsifiability:
19761974
type: string
19771975
maxResultSize:
@@ -2258,8 +2256,6 @@ spec:
22582256
type: boolean
22592257
enableProvenanceInStatus:
22602258
type: boolean
2261-
enableStepActions:
2262-
type: boolean
22632259
enforceNonfalsifiability:
22642260
type: string
22652261
maxResultSize:
@@ -4157,8 +4153,6 @@ spec:
41574153
type: boolean
41584154
enableProvenanceInStatus:
41594155
type: boolean
4160-
enableStepActions:
4161-
type: boolean
41624156
enforceNonfalsifiability:
41634157
type: string
41644158
maxResultSize:
@@ -4411,8 +4405,6 @@ spec:
44114405
type: boolean
44124406
enableProvenanceInStatus:
44134407
type: boolean
4414-
enableStepActions:
4415-
type: boolean
44164408
enforceNonfalsifiability:
44174409
type: string
44184410
maxResultSize:
@@ -6884,17 +6876,12 @@ spec:
68846876
description: |-
68856877
Results declares StepResults produced by the Step.
68866878
6887-
This is field is at an ALPHA stability level and gated by "enable-step-actions" feature flag.
6888-
68896879
It can be used in an inlined Step when used to store Results to $(step.results.resultName.path).
68906880
It cannot be used when referencing StepActions using [v1.Step.Ref].
68916881
The Results declared by the StepActions will be stored here instead.
68926882
type: array
68936883
items:
6894-
description: |-
6895-
StepResult used to describe the Results of a Step.
6896-
6897-
This is field is at an BETA stability level and gated by "enable-step-actions" feature flag.
6884+
description: StepResult used to describe the Results of a Step.
68986885
type: object
68996886
required:
69006887
- name

config/config-feature-flags.yaml

-3
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,6 @@ data:
124124
keep-pod-on-cancel: "false"
125125
# Setting this flag to "true" will enable the CEL evaluation in WhenExpression
126126
enable-cel-in-whenexpression: "false"
127-
# Setting this flag to "true" will enable the use of StepActions in Steps
128-
# This feature is in preview mode and not implemented yet. Please check #7259 for updates.
129-
enable-step-actions: "false"
130127
# Setting this flag to "true" will enable the use of Artifacts in Steps
131128
# This feature is in preview mode and not implemented yet. Please check #7693 for updates.
132129
enable-artifacts: "false"

docs/additional-configs.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -406,15 +406,14 @@ Features currently in "beta" are:
406406
| [Isolated `Step` & `Sidecar` `Workspaces`](./workspaces.md#isolated-workspaces) | [TEP-0029](https://github.com/tektoncd/community/blob/main/teps/0029-step-workspaces.md) | [v0.24.0](https://github.com/tektoncd/pipeline/releases/tag/v0.24.0) | [v0.50.0](https://github.com/tektoncd/pipeline/releases/tag/v0.50.0) | |
407407
| [Matrix](./matrix.md) | [TEP-0090](https://github.com/tektoncd/community/blob/main/teps/0090-matrix.md) | [v0.38.0](https://github.com/tektoncd/pipeline/releases/tag/v0.38.0) | [v0.53.0](https://github.com/tektoncd/pipeline/releases/tag/v0.53.0) | |
408408
| [Task-level Resource Requirements](compute-resources.md#task-level-compute-resources-configuration) | [TEP-0104](https://github.com/tektoncd/community/blob/main/teps/0104-tasklevel-resource-requirements.md) | [v0.39.0](https://github.com/tektoncd/pipeline/releases/tag/v0.39.0) | [v0.53.0](https://github.com/tektoncd/pipeline/releases/tag/v0.53.0) | |
409-
| [Reusable Steps via StepActions](./stepactions.md) | [TEP-0142](https://github.com/tektoncd/community/blob/main/teps/0142-enable-step-reusability.md) | [v0.54.0](https://github.com/tektoncd/pipeline/releases/tag/v0.54.0) | `enable-step-actions` |
410409
| [Larger Results via Sidecar Logs](#enabling-larger-results-using-sidecar-logs) | [TEP-0127](https://github.com/tektoncd/community/blob/main/teps/0127-larger-results-via-sidecar-logs.md) | [v0.43.0](https://github.com/tektoncd/pipeline/releases/tag/v0.43.0) | [v0.61.0](https://github.com/tektoncd/pipeline/releases/tag/v0.61.0) | `results-from` |
411410
| [Step and Sidecar Overrides](./taskruns.md#overriding-task-steps-and-sidecars) | [TEP-0094](https://github.com/tektoncd/community/blob/main/teps/0094-specifying-resource-requirements-at-runtime.md) | [v0.34.0](https://github.com/tektoncd/pipeline/releases/tag/v0.34.0) | | [v0.61.0](https://github.com/tektoncd/pipeline/releases/tag/v0.61.0) | |
412411
| [Ignore Task Failure](./pipelines.md#using-the-onerror-field) | [TEP-0050](https://github.com/tektoncd/community/blob/main/teps/0050-ignore-task-failures.md) | [v0.55.0](https://github.com/tektoncd/pipeline/releases/tag/v0.55.0) | [v0.62.0](https://github.com/tektoncd/pipeline/releases/tag/v0.62.0) | N/A |
413412

414413
## Enabling larger results using sidecar logs
415414

416415
**Note**: The maximum size of a Task's results is limited by the container termination message feature of Kubernetes,
417-
as results are passed back to the controller via this mechanism. At present, the limit is per task is 4096 bytes. All
416+
as results are passed back to the controller via this mechanism. At present, the limit is per task is "4096 bytes". All
418417
results produced by the task share this upper limit.
419418

420419
To exceed this limit of 4096 bytes, you can enable larger results using sidecar logs. By enabling this feature, you will

docs/artifacts.md

-1
Original file line numberDiff line numberDiff line change
@@ -511,7 +511,6 @@ Upon resolution and execution of the `TaskRun`, the `Status` will look something
511511
"enableKeepPodOnCancel": false,
512512
"enableParamEnum": false,
513513
"enableProvenanceInStatus": true,
514-
"enableStepActions": true,
515514
"enableTektonOCIBundles": false,
516515
"enforceNonfalsifiability": "none",
517516
"maxResultSize": 4096,

docs/pipeline-api.md

-3
Original file line numberDiff line numberDiff line change
@@ -4680,7 +4680,6 @@ Params
46804680
<td>
46814681
<em>(Optional)</em>
46824682
<p>Results declares StepResults produced by the Step.</p>
4683-
<p>This is field is at an ALPHA stability level and gated by &ldquo;enable-step-actions&rdquo; feature flag.</p>
46844683
<p>It can be used in an inlined Step when used to store Results to $(step.results.resultName.path).
46854684
It cannot be used when referencing StepActions using [v1.Step.Ref].
46864685
The Results declared by the StepActions will be stored here instead.</p>
@@ -4739,7 +4738,6 @@ string
47394738
</p>
47404739
<div>
47414740
<p>StepResult used to describe the Results of a Step.</p>
4742-
<p>This is field is at an BETA stability level and gated by &ldquo;enable-step-actions&rdquo; feature flag.</p>
47434741
</div>
47444742
<table>
47454743
<thead>
@@ -14193,7 +14191,6 @@ Params
1419314191
<td>
1419414192
<em>(Optional)</em>
1419514193
<p>Results declares StepResults produced by the Step.</p>
14196-
<p>This is field is at an ALPHA stability level and gated by &ldquo;enable-step-actions&rdquo; feature flag.</p>
1419714194
<p>It can be used in an inlined Step when used to store Results to $(step.results.resultName.path).
1419814195
It cannot be used when referencing StepActions using [v1beta1.Step.Ref].
1419914196
The Results declared by the StepActions will be stored here instead.</p>

docs/stepactions.md

+1-3
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ weight: 201
2121
- [Controlling Step Execution with when Expressions](#controlling-step-execution-with-when-expressions)
2222

2323
## Overview
24-
> :seedling: **`StepActions` is an [beta](additional-configs.md#beta-features) feature.**
25-
> The `enable-step-actions` feature flag must be set to `"true"` to specify a `StepAction` in a `Step`.
24+
> **`StepActions` is a stable feature.**
2625
2726
A `StepAction` is the reusable and scriptable unit of work that is performed by a `Step`.
2827

@@ -418,7 +417,6 @@ status:
418417
podName: step-action-run-pod
419418
provenance:
420419
featureFlags:
421-
EnableStepActions: true
422420
...
423421
startTime: "2023-10-24T20:28:32Z"
424422
steps:

pkg/apis/config/feature_flags.go

-13
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,6 @@ const (
9999
KeepPodOnCancel = "keep-pod-on-cancel"
100100
// EnableCELInWhenExpression is the flag to enabled CEL in WhenExpression
101101
EnableCELInWhenExpression = "enable-cel-in-whenexpression"
102-
// EnableStepActions is the flag to enable the use of StepActions in Steps
103-
EnableStepActions = "enable-step-actions"
104102
// EnableArtifacts is the flag to enable the use of Artifacts in Steps
105103
EnableArtifacts = "enable-artifacts"
106104
// EnableParamEnum is the flag to enabled enum in params
@@ -153,13 +151,6 @@ var (
153151
Enabled: DefaultAlphaFeatureEnabled,
154152
}
155153

156-
// DefaultEnableStepActions is the default PerFeatureFlag value for EnableStepActions
157-
DefaultEnableStepActions = PerFeatureFlag{
158-
Name: EnableStepActions,
159-
Stability: BetaAPIFields,
160-
Enabled: DefaultBetaFeatureEnabled,
161-
}
162-
163154
// DefaultEnableArtifacts is the default PerFeatureFlag value for EnableArtifacts
164155
DefaultEnableArtifacts = PerFeatureFlag{
165156
Name: EnableArtifacts,
@@ -210,7 +201,6 @@ type FeatureFlags struct {
210201
SetSecurityContextReadOnlyRootFilesystem bool `json:"setSecurityContextReadOnlyRootFilesystem,omitempty"`
211202
Coschedule string `json:"coschedule,omitempty"`
212203
EnableCELInWhenExpression bool `json:"enableCELInWhenExpression,omitempty"`
213-
EnableStepActions bool `json:"enableStepActions,omitempty"`
214204
EnableParamEnum bool `json:"enableParamEnum,omitempty"`
215205
EnableArtifacts bool `json:"enableArtifacts,omitempty"`
216206
DisableInlineSpec string `json:"disableInlineSpec,omitempty"`
@@ -307,9 +297,6 @@ func NewFeatureFlagsFromMap(cfgMap map[string]string) (*FeatureFlags, error) {
307297
if err := setPerFeatureFlag(EnableCELInWhenExpression, DefaultEnableCELInWhenExpression, &tc.EnableCELInWhenExpression); err != nil {
308298
return nil, err
309299
}
310-
if err := setPerFeatureFlag(EnableStepActions, DefaultEnableStepActions, &tc.EnableStepActions); err != nil {
311-
return nil, err
312-
}
313300
if err := setPerFeatureFlag(EnableParamEnum, DefaultEnableParamEnum, &tc.EnableParamEnum); err != nil {
314301
return nil, err
315302
}

0 commit comments

Comments
 (0)