-
Notifications
You must be signed in to change notification settings - Fork 222
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-0100: Embedded TaskRuns and Runs Status in PipelineRuns [Proposal] #616
Conversation
420bb8d
to
b556201
Compare
/assign |
90e5de7
to
558b020
Compare
95ed686
to
2cff979
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.
This is great!! Thanks for being so thorough
/approve
(need to get some non-google approvers on this as well)
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: bobcatfish 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 |
2cff979
to
04b3fe2
Compare
@tektoncd/core-maintainers we're looking for non-googler reviewers here 🙏🏾 (thanks @bobcatfish and @wlynch for the reviews) |
Hey @AlanGreene please help us review this proposal! Does this solution aligns with the way we have truncated pipelineRun status and accessing it when needed? |
9f7ab6b
to
95e7516
Compare
/assign |
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.
This will be a welcome change in terms of the performance improvements to be gained for users and other consumers. I have a few small concerns about impact on the Dashboard, but hopefully we can work around most of them relatively easily. See the comments.
One other thing to point out is the potential impact on our own use of the Dashboard in the dogfooding cluster. We currently have scheduled cleanup of resources meaning that for a given PipelineRun its TaskRuns may no longer be available on the cluster. The Dashboard falls back on data in the PipelineRun.status.taskRuns
today to attempt to fill in the gaps and display most of the relevant information. We would lose this ability with the removal of that field. I don't think this is a blocker but figured it was worth mentioning so it doesn't come as a surprise later.
95e7516
to
9fe2c5d
Compare
1a562ce
to
552b968
Compare
b7e2fa9
to
f59e74f
Compare
a2fd7d4
to
76fd6e2
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.
Thank you for this TEP!
I'm definitely in support of the idea. My main comment would be go actually go further and do not store the status of child resources at all, only type and part of the meta (name and possibly namespace/cluster in future).
Since we need to change the API to make this happen, and we need to go through the 9 months deprecation cycle, I see no reason to only remove part of the duplicated data.
I would love to see v1
only having the essential information to identify child resources and associate them to the part of the Pipeline
they belong to (i.e. PipelineTask
).
26c1d10
to
08b3bdc
Compare
@afrittoli I agree that this will save space. How will this impact current API consumers? Will they have to change their logic to make extra API calls or are they doing that already? (/cc @tektoncd/cli-maintainers @tektoncd/dashboard-maintainers ) |
24e2508
to
11e707d
Compare
@afrittoli @pritidesai @dibyom @wlynch @vdemeester @AlanGreene @piyush-garg @imjasonh @bobcatfish - thanks for the reviews! updated the TEP and it's ready for another look :) |
In [TEP-0100][tep-0100], we described the challenges caused by embedding the complete `TaskRun` and `Run` status in `PipelineRuns`: performance degradation, memory bloat, and lack of extensibility. In this change we add the proposal to reduce the amount of information stored about the status of `TaskRuns` and `Runs` to only the object references in order to improve performance, reduce memory bloat and improve extensibility. We also mark the TEP as implementable. Co-authored-by: Lee Bernick <[email protected]> [tep-0100]: https://github.com/tektoncd/community/blob/main/teps/0100-embedded-taskruns-and-runs-status-in-pipelineruns.md
11e707d
to
6bf7a5b
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.
/lgtm
This looks great, thanks for pushing on this! 👍
Thanks everyone for the reviews! We resolved the open questions at API working group yesterday, and the TEP was updated as discussed. This TEP was merged offline, with all assigned approvers having signed off. If anyone has any more comments or concerns, please let me know 😁 |
In TEP-0100, we described the challenges caused by embedding
the complete
TaskRun
andRun
status inPipelineRuns
: performancedegradation, memory bloat, and lack of extensibility.
In this change we add the proposal to reduce the amount of information
stored about the status of
TaskRuns
andRuns
to only the objectreferences in order to improve performance, reduce memory bloat
and improve extensibility. We also mark the TEP as implementable.
Co-authored-by: Lee Bernick [email protected]
/kind tep
/cc @vdemeester @imjasonh @bobcatfish @afrittoli
(approvers of the problem statement added in #606)