Skip to content

Commit b81b2bf

Browse files
committed
Switch to minimal embedded-status
This commit changes the default of embedded-status to minimal status. Prior to this PR, the `DefaultEmbeddedStatus` is `full`, the pipelineRun reconciler will populate both `taskruns` and `runs` for `pipelineRunStatus`. With the change to `minimal`, the reconciler populates `childReferences` instead.
1 parent 30b5e96 commit b81b2bf

File tree

8 files changed

+169
-118
lines changed

8 files changed

+169
-118
lines changed

config/config-feature-flags.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ data:
8989
# `PipelineRun` status. Set it to "minimal" to populate the `ChildReferences` field in the
9090
# `PipelineRun` status with name, kind, and API version information for each `TaskRun` and
9191
# `Run` in the `PipelineRun` instead. Set it to "both" to do both.
92-
embedded-status: "full"
92+
embedded-status: "minimal"
9393
# Setting this flag will determine the version for custom tasks created by PipelineRuns.
9494
# Acceptable values are "v1beta1" and "v1alpha1".
9595
# The default is "v1beta1".

docs/deprecations.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ being deprecated.
2020
| Feature Being Deprecated | Deprecation Announcement | [API Compatibility Policy](https://github.com/tektoncd/pipeline/tree/main/api_compatibility_policy.md) | Earliest Date or Release of Removal |
2121
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|-------------------------------------|
2222
| [`PipelineResources` are deprecated.](https://github.com/tektoncd/community/blob/main/teps/0074-deprecate-pipelineresources.md) | [v0.30.0](https://github.com/tektoncd/pipeline/releases/tag/v0.30.0) | Alpha | Dec 20 2021 |
23-
| [The `PipelineRun.Status.TaskRuns` and `PipelineRun.Status.Runs` fields are deprecated and will be removed.](https://github.com/tektoncd/community/blob/main/teps/0100-embedded-taskruns-and-runs-status-in-pipelineruns.md) | v0.35.0 | Beta | Jan 25, 2023 |
23+
| [The `PipelineRun.Status.TaskRuns` and `PipelineRun.Status.Runs` fields; the `full` and `both` `embedded-status` values along with their functionalities are deprecated and will be removed in v0.45.](https://github.com/tektoncd/community/blob/main/teps/0100-embedded-taskruns-and-runs-status-in-pipelineruns.md) | v0.35.0 | Beta | Jan 25, 2023 |
2424
| [PipelineRun.Timeout is deprecated and will be removed](https://github.com/tektoncd/community/blob/main/teps/0046-finallytask-execution-post-timeout.md) | v0.36.0 | Beta | Feb 25, 2023 |
2525
| [Several fields of Task.Step are deprecated](https://github.com/tektoncd/pipeline/issues/4737) | v0.36.0 | Beta | Feb 25, 2023 |
2626
| [`v1alpha1.Run` is deprecated](https://github.com/tektoncd/community/blob/main/teps/0114-custom-tasks-beta.md) | v0.43.0 | Alpha | April 10, 2023 or v0.47.0 |

docs/pipelineruns.md

+6-5
Original file line numberDiff line numberDiff line change
@@ -1392,18 +1392,19 @@ Your `PipelineRun`'s `status` field can contain the following fields:
13921392

13931393
### Configuring usage of `TaskRun` and `Run` embedded statuses
13941394

1395-
Currently, the default behavior is for the statuses of `TaskRun`s and `Run`s within this `PipelineRun`
1396-
to be embedded in the `status.taskRuns` and `status.runs` fields. This will change in the future to
1397-
instead default to `status.childReferences` being populated with references to the `TaskRun`s and
1395+
Currently, the default behavior is to pupulate `status.childReferences` with references to the `TaskRun`s and
13981396
`Run`s, which can be used to look up their statuses.
13991397

14001398
This behavior can be controlled by changing the `embedded-status` feature flag in the `feature-flags`
14011399
config map. See [`install.md`](./install.md#customizing-the-pipelines-controller-behavior) for more
14021400
information on feature flags. The possible values for `embedded-status` are:
1403-
- `full` - The current default behavior of populating `status.taskRuns` and `status.runs`, without populating `status.childReferences`.
1404-
- `minimal` - Just populate `status.childReferences`, not `status.taskRuns` or `status.runs`.
1401+
- `minimal` - The current default behavior, populate `status.childReferences`, not `status.taskRuns` or `status.runs`.
1402+
- `full` - Populating `status.taskRuns` and `status.runs`, without populating `status.childReferences`.
14051403
- `both` - Populate `status.childReferences` as well as `status.taskRuns` and `status.runs`.
14061404

1405+
*Note that after the `PipelineRunStatus` migration as planned in [TEP-100](https://github.com/tektoncd/community/blob/main/teps/0100-embedded-taskruns-and-runs-status-in-pipelineruns.md#2-deprecate-and-remove-full-embedded-status),
1406+
[the `full` and `both` `embedded-status` options will be removed](https://github.com/tektoncd/pipeline/blob/main/docs/deprecations.md).
1407+
14071408
### Monitoring execution status
14081409

14091410
As your `PipelineRun` executes, its `status` field accumulates information on the execution of each `TaskRun`

pkg/apis/config/feature_flags.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ const (
7777
// DefaultSendCloudEventsForRuns is the default value for "send-cloudevents-for-runs".
7878
DefaultSendCloudEventsForRuns = false
7979
// DefaultEmbeddedStatus is the default value for "embedded-status".
80-
DefaultEmbeddedStatus = FullEmbeddedStatus
80+
DefaultEmbeddedStatus = MinimalEmbeddedStatus
8181
// DefaultEnableSpire is the default value for "enable-spire".
8282
DefaultEnableSpire = false
8383
// DefaultResourceVerificationMode is the default value for "resource-verification-mode".

pkg/apis/config/feature_flags_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ func TestNewFeatureFlagsFromConfigMap(t *testing.T) {
138138
{
139139
expectedConfig: &config.FeatureFlags{
140140
EnableAPIFields: "stable",
141-
EmbeddedStatus: "full",
141+
EmbeddedStatus: config.DefaultEmbeddedStatus,
142142
EnableSpire: true,
143143
ResourceVerificationMode: config.DefaultResourceVerificationMode,
144144
RunningInEnvWithInjectedSidecars: config.DefaultRunningInEnvWithInjectedSidecars,
@@ -152,7 +152,7 @@ func TestNewFeatureFlagsFromConfigMap(t *testing.T) {
152152
{
153153
expectedConfig: &config.FeatureFlags{
154154
EnableAPIFields: "stable",
155-
EmbeddedStatus: "full",
155+
EmbeddedStatus: config.DefaultEmbeddedStatus,
156156
ResourceVerificationMode: config.DefaultResourceVerificationMode,
157157
RunningInEnvWithInjectedSidecars: config.DefaultRunningInEnvWithInjectedSidecars,
158158
AwaitSidecarReadiness: config.DefaultAwaitSidecarReadiness,

pkg/reconciler/pipelinerun/cancel_test.go

+23-23
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,17 @@ func TestCancelPipelineRun(t *testing.T) {
4646
customRuns []*v1beta1.CustomRun
4747
wantErr bool
4848
}{{
49-
name: "no-resolved-taskrun",
50-
embeddedStatus: config.DefaultEmbeddedStatus,
49+
name: "no-resolved-taskrun-with-full",
50+
embeddedStatus: config.FullEmbeddedStatus,
5151
pipelineRun: &v1beta1.PipelineRun{
5252
ObjectMeta: metav1.ObjectMeta{Name: "test-pipeline-run-cancelled"},
5353
Spec: v1beta1.PipelineRunSpec{
5454
Status: v1beta1.PipelineRunSpecStatusCancelled,
5555
},
5656
},
5757
}, {
58-
name: "one-taskrun",
59-
embeddedStatus: config.DefaultEmbeddedStatus,
58+
name: "one-taskrun-with-full",
59+
embeddedStatus: config.FullEmbeddedStatus,
6060
pipelineRun: &v1beta1.PipelineRun{
6161
ObjectMeta: metav1.ObjectMeta{Name: "test-pipeline-run-cancelled"},
6262
Spec: v1beta1.PipelineRunSpec{
@@ -72,8 +72,8 @@ func TestCancelPipelineRun(t *testing.T) {
7272
{ObjectMeta: metav1.ObjectMeta{Name: "t1"}},
7373
},
7474
}, {
75-
name: "multiple-taskruns-one-missing",
76-
embeddedStatus: config.DefaultEmbeddedStatus,
75+
name: "multiple-taskruns-one-missing-with-full",
76+
embeddedStatus: config.FullEmbeddedStatus,
7777
pipelineRun: &v1beta1.PipelineRun{
7878
ObjectMeta: metav1.ObjectMeta{Name: "test-pipeline-run-cancelled"},
7979
Spec: v1beta1.PipelineRunSpec{
@@ -90,8 +90,8 @@ func TestCancelPipelineRun(t *testing.T) {
9090
{ObjectMeta: metav1.ObjectMeta{Name: "t2"}},
9191
},
9292
}, {
93-
name: "multiple-taskruns",
94-
embeddedStatus: config.DefaultEmbeddedStatus,
93+
name: "multiple-taskruns-with-full",
94+
embeddedStatus: config.FullEmbeddedStatus,
9595
pipelineRun: &v1beta1.PipelineRun{
9696
ObjectMeta: metav1.ObjectMeta{Name: "test-pipeline-run-cancelled"},
9797
Spec: v1beta1.PipelineRunSpec{
@@ -109,8 +109,8 @@ func TestCancelPipelineRun(t *testing.T) {
109109
{ObjectMeta: metav1.ObjectMeta{Name: "t2"}},
110110
},
111111
}, {
112-
name: "multiple-runs",
113-
embeddedStatus: config.DefaultEmbeddedStatus,
112+
name: "multiple-runs-with-full",
113+
embeddedStatus: config.FullEmbeddedStatus,
114114
pipelineRun: &v1beta1.PipelineRun{
115115
ObjectMeta: metav1.ObjectMeta{Name: "test-pipeline-run-cancelled"},
116116
Spec: v1beta1.PipelineRunSpec{
@@ -128,8 +128,8 @@ func TestCancelPipelineRun(t *testing.T) {
128128
{ObjectMeta: metav1.ObjectMeta{Name: "t2"}},
129129
},
130130
}, {
131-
name: "multiple-runs-one-missing",
132-
embeddedStatus: config.DefaultEmbeddedStatus,
131+
name: "multiple-runs-one-missing-with-full",
132+
embeddedStatus: config.FullEmbeddedStatus,
133133
pipelineRun: &v1beta1.PipelineRun{
134134
ObjectMeta: metav1.ObjectMeta{Name: "test-pipeline-run-cancelled"},
135135
Spec: v1beta1.PipelineRunSpec{
@@ -227,7 +227,7 @@ func TestCancelPipelineRun(t *testing.T) {
227227
},
228228
}, {
229229
name: "child-references-with-minimal",
230-
embeddedStatus: config.MinimalEmbeddedStatus,
230+
embeddedStatus: config.DefaultEmbeddedStatus,
231231
pipelineRun: &v1beta1.PipelineRun{
232232
ObjectMeta: metav1.ObjectMeta{Name: "test-pipeline-run-cancelled"},
233233
Spec: v1beta1.PipelineRunSpec{
@@ -268,7 +268,7 @@ func TestCancelPipelineRun(t *testing.T) {
268268
},
269269
}, {
270270
name: "child-references-with-minimal-some-missing",
271-
embeddedStatus: config.MinimalEmbeddedStatus,
271+
embeddedStatus: config.DefaultEmbeddedStatus,
272272
pipelineRun: &v1beta1.PipelineRun{
273273
ObjectMeta: metav1.ObjectMeta{Name: "test-pipeline-run-cancelled"},
274274
Spec: v1beta1.PipelineRunSpec{
@@ -458,8 +458,8 @@ func TestGetChildObjectsFromPRStatusForTaskNames(t *testing.T) {
458458
hasError bool
459459
}{
460460
{
461-
name: "single taskrun, default embedded",
462-
embeddedStatus: config.DefaultEmbeddedStatus,
461+
name: "single taskrun, full embedded",
462+
embeddedStatus: config.FullEmbeddedStatus,
463463
prStatus: v1beta1.PipelineRunStatus{PipelineRunStatusFields: v1beta1.PipelineRunStatusFields{
464464
TaskRuns: map[string]*v1beta1.PipelineRunTaskRunStatus{
465465
"t1": {PipelineTaskName: "task-1"},
@@ -470,8 +470,8 @@ func TestGetChildObjectsFromPRStatusForTaskNames(t *testing.T) {
470470
expectedCustomRunNames: nil,
471471
hasError: false,
472472
}, {
473-
name: "single run, default embedded",
474-
embeddedStatus: config.DefaultEmbeddedStatus,
473+
name: "single run, full embedded",
474+
embeddedStatus: config.FullEmbeddedStatus,
475475
prStatus: v1beta1.PipelineRunStatus{PipelineRunStatusFields: v1beta1.PipelineRunStatusFields{
476476
Runs: map[string]*v1beta1.PipelineRunRunStatus{
477477
"r1": {PipelineTaskName: "run-1"},
@@ -481,8 +481,8 @@ func TestGetChildObjectsFromPRStatusForTaskNames(t *testing.T) {
481481
expectedCustomRunNames: []string{"r1"},
482482
hasError: false,
483483
}, {
484-
name: "taskrun and run, default embedded",
485-
embeddedStatus: config.DefaultEmbeddedStatus,
484+
name: "taskrun and run, full embedded",
485+
embeddedStatus: config.FullEmbeddedStatus,
486486
prStatus: v1beta1.PipelineRunStatus{PipelineRunStatusFields: v1beta1.PipelineRunStatusFields{
487487
TaskRuns: map[string]*v1beta1.PipelineRunTaskRunStatus{
488488
"t1": {PipelineTaskName: "task-1"},
@@ -495,8 +495,8 @@ func TestGetChildObjectsFromPRStatusForTaskNames(t *testing.T) {
495495
expectedCustomRunNames: []string{"r1"},
496496
hasError: false,
497497
}, {
498-
name: "taskrun and run, default embedded, just want taskrun",
499-
embeddedStatus: config.DefaultEmbeddedStatus,
498+
name: "taskrun and run, full embedded, just want taskrun",
499+
embeddedStatus: config.FullEmbeddedStatus,
500500
prStatus: v1beta1.PipelineRunStatus{PipelineRunStatusFields: v1beta1.PipelineRunStatusFields{
501501
TaskRuns: map[string]*v1beta1.PipelineRunTaskRunStatus{
502502
"t1": {PipelineTaskName: "task-1"},
@@ -548,7 +548,7 @@ func TestGetChildObjectsFromPRStatusForTaskNames(t *testing.T) {
548548
expectedRunNames: []string{"r1"},
549549
hasError: false,
550550
}, {
551-
name: "minimal embedded",
551+
name: "default minimal embedded",
552552
embeddedStatus: config.MinimalEmbeddedStatus,
553553
prStatus: v1beta1.PipelineRunStatus{PipelineRunStatusFields: v1beta1.PipelineRunStatusFields{
554554
TaskRuns: map[string]*v1beta1.PipelineRunTaskRunStatus{

0 commit comments

Comments
 (0)