kubelet: add support for dynamic resource allocation
Dependencies need to be updated to use github.com/container-orchestrated-devices/container-device-interface. It's not decided yet whether we will implement Topology support for DRA or not. Not having any toppology-related code will help to avoid wrong impression that DRA is used as a hint provider for the Topology Manager. Kubernetes-commit: ae0f38437cbb5c2b515384cb9f7dea5d808b87c4
This commit is contained in:
parent
bca123c96a
commit
94804a4df3
|
@ -0,0 +1,11 @@
|
|||
# See the OWNERS docs at https://go.k8s.io/owners
|
||||
|
||||
approvers:
|
||||
- klueska
|
||||
- pohly
|
||||
reviewers:
|
||||
- klueska
|
||||
- pohly
|
||||
- bart0sh
|
||||
labels:
|
||||
- sig/node
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,81 @@
|
|||
/*
|
||||
Copyright 2022 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// To regenerate api.pb.go run hack/update-generated-kubelet-plugin-registration.sh
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package v1alpha1;
|
||||
|
||||
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
|
||||
|
||||
option go_package = "dra";
|
||||
option (gogoproto.goproto_stringer_all) = false;
|
||||
option (gogoproto.stringer_all) = true;
|
||||
option (gogoproto.goproto_getters_all) = true;
|
||||
option (gogoproto.marshaler_all) = true;
|
||||
option (gogoproto.sizer_all) = true;
|
||||
option (gogoproto.unmarshaler_all) = true;
|
||||
option (gogoproto.goproto_unrecognized_all) = false;
|
||||
|
||||
service Node {
|
||||
rpc NodePrepareResource (NodePrepareResourceRequest)
|
||||
returns (NodePrepareResourceResponse) {}
|
||||
|
||||
rpc NodeUnprepareResource (NodeUnprepareResourceRequest)
|
||||
returns (NodeUnprepareResourceResponse) {}
|
||||
}
|
||||
|
||||
message NodePrepareResourceRequest {
|
||||
// The ResourceClaim namespace (ResourceClaim.meta.Namespace).
|
||||
// This field is REQUIRED.
|
||||
string namespace = 1;
|
||||
// The UID of the Resource claim (ResourceClaim.meta.UUID).
|
||||
// This field is REQUIRED.
|
||||
string claim_uid = 2;
|
||||
// The name of the Resource claim (ResourceClaim.meta.Name)
|
||||
// This field is REQUIRED.
|
||||
string claim_name = 3;
|
||||
// Resource handle (AllocationResult.ResourceHandle)
|
||||
// This field is REQUIRED.
|
||||
string resource_handle = 4;
|
||||
}
|
||||
|
||||
message NodePrepareResourceResponse {
|
||||
// These are the additional devices that kubelet must
|
||||
// make available via the container runtime. A resource
|
||||
// may have zero or more devices.
|
||||
repeated string cdi_devices = 1;
|
||||
}
|
||||
|
||||
message NodeUnprepareResourceRequest {
|
||||
// The ResourceClaim namespace (ResourceClaim.meta.Namespace).
|
||||
// This field is REQUIRED.
|
||||
string namespace = 1;
|
||||
// The UID of the Resource claim (ResourceClaim.meta.UUID).
|
||||
// This field is REQUIRED.
|
||||
string claim_uid = 2;
|
||||
// The name of the Resource claim (ResourceClaim.meta.Name)
|
||||
// This field is REQUIRED.
|
||||
string claim_name = 3;
|
||||
// List of fully qualified CDI device names
|
||||
// Kubelet plugin returns them in the NodePrepareResourceResponse
|
||||
repeated string cdi_devices = 4;
|
||||
}
|
||||
|
||||
message NodeUnprepareResourceResponse {
|
||||
// Intentionally empty.
|
||||
}
|
|
@ -21,4 +21,6 @@ const (
|
|||
CSIPlugin = "CSIPlugin"
|
||||
// DevicePlugin identifier for registered device plugins
|
||||
DevicePlugin = "DevicePlugin"
|
||||
// DRAPlugin identifier for registered Dynamic Resourc Allocation plugins
|
||||
DRAPlugin = "DRAPlugin"
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue