-
Notifications
You must be signed in to change notification settings - Fork 221
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-0090: Matrix [Proposal] #600
Conversation
/cc @bobcatfish @tlawrie @imjasonh @squee1945 @vdemeester @Tomcli @pritidesai @Oded-B (notifying contributors who reviewed the pull request adding the problem statement for this TEP - #532) |
@jerop: GitHub didn't allow me to request PR reviews from the following users: tlawrie, squee1945, Tomcli, Oded-B. Note that only tektoncd members and repo collaborators can review this PR, and authors cannot review their own PRs. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/assign |
@jerop I think this will work for my usecase.
I don't think there should be an issue moving to the proposed configuration, and it will be so much readable and generally nicer, and I would also be able to use The only complication is the need to move to a shared(ReadWriteMany) workspace, but it makes sense for my use case (clone the git repo once, and the shared volume from multiple tasks) |
/assign @afrittoli |
/assign |
98109af
to
e5a4bda
Compare
e5a4bda
to
84a7c7e
Compare
84a7c7e
to
1e93740
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hi @jerop, the proposal looks very much interesting. There can be one more use case which can be solved maybe in a follow-up TEP or in this TEP is that we can try to implement matrix at Pipeline
level. Possible use case of having matrix at Pipeline
level can be - There is a Pipeline
which clones a node-based project and then we want to test that repo on different versions of nodejs, ie, node-12, node-14 and node-16.
/test pull-community-teps-lint |
bcf1f55
to
c3e076d
Compare
@afrittoli - thank you for the detailed review!
yes, the aim is to support it in Tekton Pipelines API (behind the
addressed this concern in https://github.com/jerop/community/blob/matrix-proposal/teps/0090-matrix.md#workspaces
addressed the overlap with TEP-0044 in https://github.com/jerop/community/blob/matrix-proposal/teps/0090-matrix.md#tep-0044-data-locality-and-pod-overhead-in-pipelines And discussed overlaps with other TEPs in https://github.com/jerop/community/blob/matrix-proposal/teps/0090-matrix.md#related-tekton-projects-and-proposals
we have requirement 4 (formerly requirement 5) to address this: https://github.com/jerop/community/blob/matrix-proposal/teps/0090-matrix.md#requirements and solved for it here: https://github.com/jerop/community/blob/matrix-proposal/teps/0090-matrix.md#concurrency-control
discussed further in: https://github.com/jerop/community/blob/matrix-proposal/teps/0090-matrix.md#when-expressions meant to remove requirement 4, which is the same as non-goal 4 - updated the requirements to remove it
addressed them here: https://github.com/jerop/community/blob/matrix-proposal/teps/0090-matrix.md#design |
I don't have any specific feedback - the design as it stands now looks great to me, thanks @jerop! /approve |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for all the updates @jerop, the TEP looks great and very thorough!!
I have one question about the global flag and a proposal about the combinations IDs.
c3e076d
to
73e67a6
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking great!
/approve
62962d9
to
6a54699
Compare
/approve |
6a54699
to
57be6bb
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like to discuss a bit more around how we want to structure results from fanned out tasks but I'm also happy to see this move forward as a whole as-is!
57be6bb
to
9e477b0
Compare
summarizing offline discussions with @bobcatfish about this for future reference - there were some design options for results from fanned out tasks in the TEP, removed them as they are out of scope and we will solve for it after TEP-0075 and TEP-0076 have landed (added a non-goal to make this explicit) - thank you @bobcatfish! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SGTM, just few questions.
In [TEP-0090: Matrix][tep-0090] we described the problem statement for fanning out `PipelineTasks`. That is, enabling execution of a `PipelineTask` with different permutations of `Parameters` specified in a `Matrix`. In this change, we add the proposal to solve the above problem. It includes the design details, implementation plan, promotion plan, design evalutation, future work, alternatives, and others. In summary, we propose adding a `matrix` field to the `PipelineTask` specification that will be used to declare `Parameters` of type `Array`. The `PipelineTask` will be executed in parallel `TaskRuns` or `Runs` with its `Parameters` substituted with the permutations of `Parameters` in the `Matrix`. [tep-0090]: https://github.com/tektoncd/community/blob/main/teps/0090-matrix.md
9e477b0
to
fd204f1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/meow
In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: afrittoli, lbernick, sbwsg, 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 |
API WG - ready to merge 🎉 /lgtm |
In TEP-0090: Matrix we described the problem statement for fanning out
PipelineTasks
. That is, enabling execution of aPipelineTask
with different permutations ofParameters
specified in aMatrix
.In this change, we add the proposal to solve the above problem. It includes the design details, implementation plan, promotion plan, design evalutation, future work, alternatives, and others.
In summary, we propose adding a
matrix
field to thePipelineTask
specification that will be used to declareParameters
of typeArray
. ThePipelineTask
will be executed in parallelTaskRuns
orRuns
with itsParameters
substituted with the permutations ofParameters
in theMatrix
.POC Demo: https://drive.google.com/file/d/1wDYIl2Kqj5XiZzikF9878bcVb7_lmcoZ/view?t=31m11s (accessible to tekton-dev@)
/kind tep