Description
What would you like to be added?
API for resource driver Allocate and Deallocate calls should handle list of resource claim allocations like the NodePrepareResource and NodeUnprepareResources do, and DRA helper code should send all resource claims that belong to the same pod scheduling context in the same list for allocation and deallocation.
API for resource driver preparation and unpreparation of resources should also batch all the resource claims that can be prepared and unprepared at the same time by given driver based on the Pod being handled by kubelet.
Why is this needed?
At the moment resource driver has no easy means to know all resource claims of the Pod when the Pod is being scheduled, the allocate call handles one claim at a time, which makes optimizations of resources during allocation sub-optimal and more complicated - resource driver has to keep track of what resource claims are part of particular Pod scheduling context to judge which of the previously allocated resource claims could have been sent for resource preparations, and which were not and thus can still be adjusted for resource optimization.
In kubelet plugin as well, preparation of resource can sometimes be setting the actual HW in a state when no more additional changes can be done until previous changes are undone, making preparation of future requests impossible, and at the moment there has to be additional logic in resource-driver kubelet-plugin forecasting which resource claims could be coming in consecutive calls to batch-prepare resources.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status