-
Notifications
You must be signed in to change notification settings - Fork 220
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 [Problem Statement] #532
Conversation
/assign @tlawrie |
@jerop: GitHub didn't allow me to assign the following users: tlawrie. Note that only tektoncd members, repo collaborators and people who have commented on this issue/PR can be assigned. Additionally, issues/PRs can only have 10 assignees at the same time. 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. |
Hey @jerop thanks for bringing this up on the alternate WG. Is this TEP in reference to https://github.com/tektoncd/experimental/tree/main/task-loops#task-loop-extension? and is it about bringing that in as base functionality rather than via a customtask? |
/assign |
hi @tlawrie 👋🏾
yes, this is related to that
it's mostly about discussing where we want the looping construct to go -- it could start with making it stable and maybe eventually adding it to the pipelines api wrote another tep to establish the graduation requirements and path for custom tasks in #523 in this pr, we're specifically defining the problem statement - will follow up with another pr with a proposal after we agree on the goals, non-goals, use cases and requirements i saw this issue - boomerang-io/community#23 - from your project and i'm eager to hear the realworld use cases that you're working to solve using the counter task type discussed there |
9ff168b
to
91eae33
Compare
d2620f0
to
487c312
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.
Nice problem statement!!
/approve
Hi @jerop awesome. Ill look into this a bit further this week and also ask the boomerang-io/roadmap community around the use cases for looping. I believe our main use case is around looping for a group of tasks. I.e. in a workflow loop task 3 + 4 + 5. |
d58c97d
to
d1d8a0b
Compare
Hi @jerop my vote is to still keep in the generation of x TaskRuns based on a prior TaskRuns Results if possible. That is the use case that most relates to our usage. |
The use cases we have in the TEP right now could also use the dynamic generation using Added this item to the API WG agenda so we can discuss further on Monday (cc @imjasonh @bobcatfish @vdemeester) |
/assign @pritidesai (thanks!) |
@Tomcli please review the proposal here and let us know if we are missing anything based on kubeflow use case, thanks 🙏 |
/assign |
thanks @pritidesai @jerop I think this is a great start to add the looping support. Looking forward to the new Matrix/looping syntax. |
3a65cf9
to
5c78998
Compare
eb31ce6
to
09fbae0
Compare
@bobcatfish @tlawrie @imjasonh @squee1945 @vdemeester @Tomcli @pritidesai thank you for the reviews and discussions at the API WG 🤗 Updated the TEP by adding the following requirements:
We will implement the feature iteratively, with the dynamic generation using Also highlighting that dynamic generation of |
1fb50a7
to
3d3dd6f
Compare
sgtm! |
@jerop fabulous work getting it all aligned. Thank you. |
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 @jerop for putting this together! Though I am listed as one of the authors, its all your efforts 🙏 and approving them 😄
/approve
I am very excited to design and implement this. I am a little nervous with the term combination of parameters
specially when it's compared to experimental task loop (iterating over a list of items). But it can devised while designing it.
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: bobcatfish, pritidesai, 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 |
This change adds the problem statement for Matrix. It scopes the problem, describes the use cases, and identifies the goals, the requirements for the solution, and related work in other continuous delivery systems. Today, users cannot supply varying `Parameters` to execute a `PipelineTask`, that is, fan out a `PipelineTasks`. To solve this problem, this TEP aims to enable executing the same `PipelineTask` with different combinations of `Parameters` specified in a `matrix`. `TaskRuns` or `Runs` will be created with variables substituted with each combination of the `Parameters` in the `matrix`. This `matrix` construct will enable users to specify concise but powerful `Pipelines`. Moreover, it would improve the composability, scalability, flexibility and reusability of *Tekton Pipelines*. https://github.com/jerop/community/blob/looping/teps/0090-matrix.md References: - [Task Loops Experimental Project][task-loops] - Issues: - tektoncd/pipeline#2050 - tektoncd/pipeline#4097 [task-loops]: https://github.com/tektoncd/experimental/tree/main/task-loops
/lgtm |
https://github.com/jerop/community/blob/looping/teps/0090-matrix.md
This change adds the problem statement for Matrix. It scopes the
problem, describes the use cases, and identifies the goals, the
requirements for the solution, and related work in other continuous
delivery systems.
Today, users cannot supply varying
Parameters
to execute aPipelineTask
, that is, fan out aPipelineTasks
.To solve this problem, this TEP aims to enable executing the same
PipelineTask
with different combinations ofParameters
specifiedin a
matrix
.TaskRuns
orRuns
will be created with variablessubstituted with each combination of the
Parameters
in thematrix
.This
matrix
construct will enable users to specify concise butpowerful
Pipelines
. Moreover, it would improve the composability,scalability, flexibility and reusability of Tekton Pipelines.
References: