-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
PipelineResources left behind after PipelineRuns are wasteful #544
Comments
Awesome write up @jessm12 😻, thanks so much, that captures the problem perfectly!! |
Note there was some related work in #200 but definitely looks like we can make this even better :D |
Thanks @bobcatfish! 😄 There are some really interesting ideas and work under that issue! Some of which would definitely come under discussion here as well 👍 |
I've created a design doc to propose tackling this by embedding |
Seems like folks are in agreement about the proposal! And @pritidesai is working on this via #872 so I'm going to close this issue. |
Expected Behavior
When a
PipelineRun
has completed it is desirable that as few resources as possible are left behind so as to preserve memory and keep systems clean.Actual Behavior
When creating
PipelineRuns
, associatedPipelineResources
are created to reference key inputs or outputs toTasks
within aPipeline
. This leaves behind many resources that are only used during thePipelineRun
(s) for which they were created and are not cleaned up.Steps to Reproduce the Problem
As an example case:
PipelineRuns
for a repository with uniquely namedPipelineResources
for example of typegit
, each of which will reference a different commit IDPipelineResources
that must be created are left behind and despite containing data which may only vary by commit ID they require a separate resource for eachPipelineRun
Additional Info
Some ideas that we have had so far to tackle this issue:
1.
PipelineResources
could be automatically cleaned up after their use within aPipelineRun
, is there any use in them being kept around indefinitely?Could this be done by using ownerRefs in that a
PipelineResource
could have one or manyPipelineRuns
that have ownership of it and thePipelineResource
will only be removed either on completion or deletion of each of its associatedPipelineRuns
2.The
PipelineResources
could be replaced with something likePipelineParams
that would be passed directly into aPipelineRun
and handled accordingly (such as mounting the git source into the workspace directory)The text was updated successfully, but these errors were encountered: