-
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
Step Resource "Request" Distribution Regression #6525
Comments
cc @lbernick |
It seems like we could have been clearer about the fact that this was a breaking change, but I'm hesitant to revert this. This behavior has been in place since 0.28 (about a year and a half) and reverting it may be confusing. Also, another user filed an issue saying that the original behavior was confusing: #2986 (comment) I think you can achieve the behavior you're interested in with task-level compute resources. Would you consider trying this feature? Also, to what Vincent said, setting compute resources to 0 doesn't interact correctly with limitranges, and I think some flavors of k8s don't allow it. That's why for task-level compute resources, we chose to divide the requests between containers (tektoncd/community@2a66576). |
Link to previous code that had this logic - https://github.com/tektoncd/pipeline/blob/release-v0.27.x/pkg/pod/resource_request.go re: 0 -- instead we might then omit the value
or alternately spread it like we do with limit ranges...
I think we really do want to fix this. The new syntax is well... new and we have 1000s of pre-existing pipelines that are currently requesting resources and reducing our bin packing. |
@lbernick just educated me a bit more and it's tricky -- it looks like spread is the way, but we would also have to the same sort of limit spreading as is done in TEP 0104. We might just re-use that logic and compute the TaskLevelComputeResource by examining the steps. |
related: #4347 |
@skaegi did you have the chance to investigate whether task-level compute resources would work well for you? Is there any action remaining for this issue? |
Issues go stale after 90d of inactivity. /lifecycle stale Send feedback to tektoncd/plumbing. |
Stale issues rot after 30d of inactivity. /lifecycle rotten Send feedback to tektoncd/plumbing. |
what is the best approach for this ? |
This was originally work done in #723 but it looks like part of the functionality was omitted during a refactor in #4176
The now missing functionality is...
"Since steps run sequentially we rewrite their resource "requests" to only have the max request for that resource name in one step container and zero out the requests for that resource name in the other step containers."
The result is that Tekton "requests" more resources than it needs which really reduces bin packing when running a Tekton service.
For example...
Expected Behavior
Actual Behavior
The text was updated successfully, but these errors were encountered: