Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TEP-0056: Pipelines in Pipelines [Proposal] #701

Merged
merged 1 commit into from
Jun 22, 2022

Conversation

jerop
Copy link
Member

@jerop jerop commented May 9, 2022

TEP-0056: Pipelines in Pipelines

Today, users can define and execute Tasks and Custom Tasks
in Pipelines. In this TEP, we propose allowing users to define
and execute Pipelines in Pipelines, alongside Tasks and
Custom Tasks.

We previously described the motivation for this TEP in:

In this change, we add an overview of the proposal which includes
the API changes to the specification and status of Pipelines.

@tekton-robot tekton-robot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label May 9, 2022
@jerop jerop force-pushed the tep-0056-proposal branch 2 times, most recently from 1abde81 to af35c52 Compare May 9, 2022 16:23
@pritidesai
Copy link
Member

/kind tep
/assign @afrittoli
/assign @lbernick
/assign @vdemeester

@tekton-robot tekton-robot added the kind/tep Categorizes issue or PR as related to a TEP (or needs a TEP). label May 9, 2022
@jerop jerop force-pushed the tep-0056-proposal branch from af35c52 to 5844abb Compare May 9, 2022 16:53
@pritidesai
Copy link
Member

Following up on the nested pipeline discussion, it is expected in the issue tektoncd/pipeline#2134 (comment) to run a set of tasks from the same pipeline as part of the feature request. I envision this as a set of tasks guarded by a when expression expected to run as a sub-pipeline in which the pipelineRef will be referring to itself. We might not be able to support this in the first round of design/implementation but something to keep in mind for future.

@abayer
Copy link
Contributor

abayer commented May 9, 2022

@pritidesai I didn't necessarily read that as meaning "run tasks X and Y from this pipeline as a sub-pipeline" - that seems more to me like a combination of matrix and pipeline-in-pipeline to run a pipeline, either a pre-existing one via reference or an embedded one in the matrix PipelineTask configuration.

@pritidesai
Copy link
Member

@pritidesai I didn't necessarily read that as meaning "run tasks X and Y from this pipeline as a sub-pipeline" - that seems more to me like a combination of matrix and pipeline-in-pipeline to run a pipeline, either a pre-existing one via reference or an embedded one in the matrix PipelineTask configuration.

I am reading it as more like run tasks X through Y from this pipeline as sub-pipeline against a list of workspaces. I have been trying to think whether would it be feasible to support workspace mappings in matrix. Matrix by design, supports looping based on the parameters 🤔.

@jerop jerop marked this pull request as draft May 10, 2022 20:49
@jerop jerop force-pushed the tep-0056-proposal branch from 0fdf285 to 426a473 Compare May 24, 2022 14:19
@tekton-robot tekton-robot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 24, 2022
@jerop jerop marked this pull request as ready for review May 24, 2022 14:22
@tekton-robot tekton-robot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 24, 2022
@jerop
Copy link
Member Author

jerop commented May 24, 2022

@afrittoli @lbernick @pritidesai @vdemeester - we have updated the proposal, please take a look

cc @abayer

@jerop jerop force-pushed the tep-0056-proposal branch 3 times, most recently from 7b0ae0b to 34e2d72 Compare May 24, 2022 15:06
@jerop jerop force-pushed the tep-0056-proposal branch from 34e2d72 to 0995e41 Compare May 24, 2022 18:52
Copy link
Member

@lbernick lbernick left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Jerop!

My only comment is that it would be helpful to have some yaml examples for the alternatives; I think it would be easier to see why we're rejecting the alternatives.

@tekton-robot tekton-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 25, 2022
@jerop jerop force-pushed the tep-0056-proposal branch from 0995e41 to a452a66 Compare May 25, 2022 14:09
@jerop jerop force-pushed the tep-0056-proposal branch 2 times, most recently from eca5e59 to 3d1d996 Compare June 6, 2022 17:39
@jerop jerop force-pushed the tep-0056-proposal branch from 3d1d996 to 3f0d2d0 Compare June 6, 2022 19:19
Copy link
Member

@vdemeester vdemeester left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, this is not specific for this particular TEP, but sometime I think we dig too quickly into the code. For example, here, the type showed in alternative are "implementation" detail. The important part of the TEP should be how the API looks like and is used ; whatever the "magic" we have to do to make it work in our go program, is implementation imo.

@jerop jerop force-pushed the tep-0056-proposal branch from 3f0d2d0 to 50daa6e Compare June 7, 2022 12:50
@jerop
Copy link
Member Author

jerop commented Jun 7, 2022

@pritidesai @vdemeester - Thank you for the reviews! Updated the TEP to descope the runtime configuration (moved it to future work) and removed the implementation details to put focus on the API. Please take a look.

cc @abayer

@jerop jerop force-pushed the tep-0056-proposal branch from 50daa6e to 526c9e8 Compare June 7, 2022 13:20
@jerop
Copy link
Member Author

jerop commented Jun 10, 2022

@afrittoli @pritidesai @vdemeester - please take a look

@lbernick
Copy link
Member

@afrittoli @vdemeester @pritidesai let's try to unblock Andrew in his implementation

Today, users can define and execute `Tasks` and `Custom Tasks`
in `Pipelines`. In this TEP, we propose allowing users to define
and execute `Pipelines` in `Pipelines`, alongside `Tasks` and
`Custom Tasks`.

We previously described the motivation for this TEP in:
- tektoncd#374
- tektoncd#498
- tektoncd#698

In this change, we add an overview of the proposal which includes
the API changes to the specification and status of `Pipelines`.
@jerop jerop force-pushed the tep-0056-proposal branch from 526c9e8 to ec8b2fc Compare June 13, 2022 19:23
Copy link
Member

@vdemeester vdemeester left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One naive question : are we committed to have this in prior to v1 ?

@tekton-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: lbernick, vdemeester

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@jerop
Copy link
Member Author

jerop commented Jun 21, 2022

One naive question : are we committed to have this in prior to v1 ?

@vdemeester it's not a blocker for v1, but hoping we'd have it available by then behind the feature flags - made this explicit in #735 - thank you for the review!

@jerop
Copy link
Member Author

jerop commented Jun 21, 2022

Can we merge this offline? It meets the requirement for 2 approvers from different companies and the TEP is still in proposed state - planning to open another PR adding design details and making it as implementable

(cc @abayer @afrittoli @dibyom @pritidesai @vdemeester)

@vdemeester
Copy link
Member

/test .*

@dibyom
Copy link
Member

dibyom commented Jun 22, 2022

Looks like the open questions are around the future work from this TEP, so I think we can merge this

/lgtm

@tekton-robot tekton-robot added the lgtm Indicates that a PR is ready to be merged. label Jun 22, 2022
@tekton-robot tekton-robot merged commit fc6bbbf into tektoncd:main Jun 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. kind/tep Categorizes issue or PR as related to a TEP (or needs a TEP). lgtm Indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
Status: UnAssigned
Development

Successfully merging this pull request may close these issues.

8 participants