mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Add GetPreferredAllocation() call to the device plugin api.proto
The details of this API can be found in: https://github.com/kubernetes/enhancements/pull/1121
This commit is contained in:
parent
c45f1317eb
commit
202c4f0816
File diff suppressed because it is too large
Load Diff
@ -27,6 +27,8 @@ service Registration {
|
||||
message DevicePluginOptions {
|
||||
// Indicates if PreStartContainer call is required before each container start
|
||||
bool pre_start_required = 1;
|
||||
// Indicates if GetPreferredAllocation is implemented and available for calling
|
||||
bool get_preferred_allocation_available = 2;
|
||||
}
|
||||
|
||||
message RegisterRequest {
|
||||
@ -55,6 +57,13 @@ service DevicePlugin {
|
||||
// returns the new list
|
||||
rpc ListAndWatch(Empty) returns (stream ListAndWatchResponse) {}
|
||||
|
||||
// GetPreferredAllocation returns a preferred set of devices to allocate
|
||||
// from a list of available ones. The resulting preferred allocation is not
|
||||
// guaranteed to be the allocation ultimately performed by the
|
||||
// devicemanager. It is only designed to help the devicemanager make a more
|
||||
// informed allocation decision when possible.
|
||||
rpc GetPreferredAllocation(PreferredAllocationRequest) returns (PreferredAllocationResponse) {}
|
||||
|
||||
// Allocate is called during container creation so that the Device
|
||||
// Plugin can run device specific operations and instruct Kubelet
|
||||
// of the steps to make the Device available in the container
|
||||
@ -112,6 +121,34 @@ message PreStartContainerRequest {
|
||||
message PreStartContainerResponse {
|
||||
}
|
||||
|
||||
// PreferredAllocationRequest is passed via a call to GetPreferredAllocation()
|
||||
// at pod admission time. The device plugin should take the list of
|
||||
// `available_deviceIDs` and calculate a preferred allocation of size
|
||||
// 'allocation_size' from them, making sure to include the set of devices
|
||||
// listed in 'must_include_deviceIDs'.
|
||||
message PreferredAllocationRequest {
|
||||
repeated ContainerPreferredAllocationRequest container_requests = 1;
|
||||
}
|
||||
|
||||
message ContainerPreferredAllocationRequest {
|
||||
// List of available deviceIDs from which to choose a preferred allocation
|
||||
repeated string available_deviceIDs = 1;
|
||||
// List of deviceIDs that must be included in the preferred allocation
|
||||
repeated string must_include_deviceIDs = 2;
|
||||
// Number of devices to include in the preferred allocation
|
||||
int32 allocation_size = 3;
|
||||
}
|
||||
|
||||
// PreferredAllocationResponse returns a preferred allocation,
|
||||
// resulting from a PreferredAllocationRequest.
|
||||
message PreferredAllocationResponse {
|
||||
repeated ContainerPreferredAllocationResponse container_responses = 1;
|
||||
}
|
||||
|
||||
message ContainerPreferredAllocationResponse {
|
||||
repeated string deviceIDs = 1;
|
||||
}
|
||||
|
||||
// - Allocate is expected to be called during pod creation since allocation
|
||||
// failures for any container would result in pod startup failure.
|
||||
// - Allocate allows kubelet to exposes additional artifacts in a pod's
|
||||
|
Loading…
Reference in New Issue
Block a user