You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: keps/sig-node/3695-pod-resources-for-dra/README.md
+22-13Lines changed: 22 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -61,17 +61,17 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
61
61
62
62
## Summary
63
63
64
-
We propose an enhancement to the PodResources API to include resources allocated by [Dynamic Resource Allocation (DRA)](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3063-dynamic-resource-allocation). We also propose to extend the API to be more friendly for consumption by CNI meta-plugins.
64
+
We propose an enhancement to the PodResources API to include resources allocated by [Dynamic Resource Allocation (DRA)](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3063-dynamic-resource-allocation).
65
65
This KEP extends [2043-pod-resource-concrete-assigments](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2043-pod-resource-concrete-assigments) and [2403-pod-resources-allocatable-resources](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2403-pod-resources-allocatable-resources).
66
66
67
67
## Motivation
68
68
69
-
One of the primary motivations for this KEP is to extend the PodResources API to allow node monitoring agents to access information about resources allocated by DRA. The PodResources API is also being used by CNI meta-plugins like [multus](https://github.com/k8snetworkplumbingwg/multus-cni) and [DANM](https://github.com/nokia/danm) to add resources allocated by device plugins as CNI arguments. This extension can be used to allow these CNI plugins to reference resources allocated by DRA as well. Additional extensions to the API will also make it easier for CNI meta-plugins to access resources allocated to a specific pod, rather than having to filter through resources for all pods on the node.
69
+
One of the primary motivations for this KEP is to extend the PodResources API to allow node monitoring agents to access information about resources allocated by DRA.
70
70
71
71
### Goals
72
72
73
73
- To allow node monitoring agents to know the allocated DRA resources for Pods on a node.
74
-
- To allow the DRA feature to work with CNIs that require complex network devices such as RDMA. DRA resource drivers will allocate the resources, and the meta-plugin will read the allocated [CDI Devices](https://github.com/container-orchestrated-devices/container-device-interface) using the PodResources API. The meta-plugin will then inject the device-id of these CDI Devices as CNI arguments and invoke other CNIs (just as it does for devices allocated by the device plugin today).
74
+
- To allow node components to use the PodResourcesAPI to use the DRA information to develop new features and integrations.
75
75
76
76
### Non-Goals
77
77
@@ -110,6 +110,7 @@ retrieve PodResources from, rather than having to query all of them all at
110
110
once.
111
111
112
112
The full PodResources API (including our proposed extensions) can be seen below:
113
+
113
114
```protobuf
114
115
// PodResourcesLister is a service provided by the kubelet that provides information about the
115
116
// node resources consumed by pods and containers on the node
@@ -159,7 +160,7 @@ message ContainerMemory {
159
160
TopologyInfo topology = 3;
160
161
}
161
162
162
-
// ContainerDevices contains information about the devices assigned to a container by device plugin
163
+
// ContainerDevices contains information about the devices assigned to a container
163
164
message ContainerDevices {
164
165
string resource_name = 1;
165
166
repeated string device_ids = 2;
@@ -178,15 +179,22 @@ message NUMANode {
178
179
179
180
// DynamicResource contains information about the devices assigned to a container by DRA
180
181
message DynamicResource {
181
-
string class_name = 1;
182
+
// tombstone: removed in 1.31 because claims are no longer associated with one class
183
+
// string class_name = 1;
182
184
string claim_name = 2;
183
185
string claim_namespace = 3;
184
186
repeated ClaimResource claim_resources = 4;
185
187
}
186
188
187
-
// ClaimResource contains per plugin resource information
189
+
// ClaimResource contains resource information. The driver name/pool name/device name
190
+
// triplet uniquely identifies the device. Should DRA get extended to other kinds
191
+
// of resources, then device_name will be empty and other fields will get added.
192
+
// Each device at the DRA API level may map to zero or more CDI devices.
0 commit comments