diff --git a/pkg/reconciler/pipelinerun/pipelinerun.go b/pkg/reconciler/pipelinerun/pipelinerun.go index 6f40fff9ece..668bd2d5037 100644 --- a/pkg/reconciler/pipelinerun/pipelinerun.go +++ b/pkg/reconciler/pipelinerun/pipelinerun.go @@ -1331,15 +1331,20 @@ func (c *Reconciler) updatePipelineRunStatusFromInformer(ctx context.Context, pr func updatePipelineRunStatusFromChildObjects(ctx context.Context, logger *zap.SugaredLogger, pr *v1beta1.PipelineRun, taskRuns []*v1beta1.TaskRun, runObjects []v1beta1.RunObject) error { cfg := config.FromContextOrDefaults(ctx) - fullEmbedded := cfg.FeatureFlags.EmbeddedStatus == config.FullEmbeddedStatus || cfg.FeatureFlags.EmbeddedStatus == config.BothEmbeddedStatus - minimalEmbedded := cfg.FeatureFlags.EmbeddedStatus == config.MinimalEmbeddedStatus || cfg.FeatureFlags.EmbeddedStatus == config.BothEmbeddedStatus - if minimalEmbedded { - updatePipelineRunStatusFromChildRefs(logger, pr, taskRuns, runObjects) - } - if fullEmbedded { + switch cfg.FeatureFlags.EmbeddedStatus { + case config.FullEmbeddedStatus: + pr.Status.ChildReferences = nil + updatePipelineRunStatusFromTaskRuns(logger, pr, taskRuns) + updatePipelineRunStatusFromCustomRunsOrRuns(logger, pr, runObjects) + case config.BothEmbeddedStatus: updatePipelineRunStatusFromTaskRuns(logger, pr, taskRuns) updatePipelineRunStatusFromCustomRunsOrRuns(logger, pr, runObjects) + updatePipelineRunStatusFromChildRefs(logger, pr, taskRuns, runObjects) + default: + pr.Status.Runs = nil + pr.Status.TaskRuns = nil + updatePipelineRunStatusFromChildRefs(logger, pr, taskRuns, runObjects) } return validateChildObjectsInPipelineRunStatus(ctx, pr.Status) @@ -1350,6 +1355,8 @@ func validateChildObjectsInPipelineRunStatus(ctx context.Context, prs v1beta1.Pi var err error + // TODO: Integration test to be introduced for switching in embeddedStatus + // https://github.com/tektoncd/pipeline/issues/5999 // Verify that we don't populate child references for "full" if cfg.FeatureFlags.EmbeddedStatus == config.FullEmbeddedStatus && len(prs.ChildReferences) > 0 { return fmt.Errorf("expected no ChildReferences with embedded-status=full, but found %d", len(prs.ChildReferences))