...
1/*
2Copyright The Kubernetes Authors.
3
4Licensed under the Apache License, Version 2.0 (the "License");
5you may not use this file except in compliance with the License.
6You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10Unless required by applicable law or agreed to in writing, software
11distributed under the License is distributed on an "AS IS" BASIS,
12WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13See the License for the specific language governing permissions and
14limitations under the License.
15*/
16
17
18// This file was autogenerated by go-to-protobuf. Do not edit it manually!
19
20syntax = "proto2";
21
22package k8s.io.api.resource.v1alpha2;
23
24import "k8s.io/api/core/v1/generated.proto";
25import "k8s.io/apimachinery/pkg/api/resource/generated.proto";
26import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
27import "k8s.io/apimachinery/pkg/runtime/generated.proto";
28import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto";
29
30// Package-wide variables from generator "generated".
31option go_package = "k8s.io/api/resource/v1alpha2";
32
33// AllocationResult contains attributes of an allocated resource.
34message AllocationResult {
35 // ResourceHandles contain the state associated with an allocation that
36 // should be maintained throughout the lifetime of a claim. Each
37 // ResourceHandle contains data that should be passed to a specific kubelet
38 // plugin once it lands on a node. This data is returned by the driver
39 // after a successful allocation and is opaque to Kubernetes. Driver
40 // documentation may explain to users how to interpret this data if needed.
41 //
42 // Setting this field is optional. It has a maximum size of 32 entries.
43 // If null (or empty), it is assumed this allocation will be processed by a
44 // single kubelet plugin with no ResourceHandle data attached. The name of
45 // the kubelet plugin invoked will match the DriverName set in the
46 // ResourceClaimStatus this AllocationResult is embedded in.
47 //
48 // +listType=atomic
49 // +optional
50 repeated ResourceHandle resourceHandles = 1;
51
52 // This field will get set by the resource driver after it has allocated
53 // the resource to inform the scheduler where it can schedule Pods using
54 // the ResourceClaim.
55 //
56 // Setting this field is optional. If null, the resource is available
57 // everywhere.
58 // +optional
59 optional k8s.io.api.core.v1.NodeSelector availableOnNodes = 2;
60
61 // Shareable determines whether the resource supports more
62 // than one consumer at a time.
63 // +optional
64 optional bool shareable = 3;
65}
66
67// AllocationResultModel must have one and only one field set.
68message AllocationResultModel {
69 // NamedResources describes the allocation result when using the named resources model.
70 //
71 // +optional
72 optional NamedResourcesAllocationResult namedResources = 1;
73}
74
75// DriverAllocationResult contains vendor parameters and the allocation result for
76// one request.
77message DriverAllocationResult {
78 // VendorRequestParameters are the per-request configuration parameters
79 // from the time that the claim was allocated.
80 //
81 // +optional
82 optional k8s.io.apimachinery.pkg.runtime.RawExtension vendorRequestParameters = 1;
83
84 optional AllocationResultModel allocationResultModel = 2;
85}
86
87// DriverRequests describes all resources that are needed from one particular driver.
88message DriverRequests {
89 // DriverName is the name used by the DRA driver kubelet plugin.
90 optional string driverName = 1;
91
92 // VendorParameters are arbitrary setup parameters for all requests of the
93 // claim. They are ignored while allocating the claim.
94 //
95 // +optional
96 optional k8s.io.apimachinery.pkg.runtime.RawExtension vendorParameters = 2;
97
98 // Requests describes all resources that are needed from the driver.
99 // +listType=atomic
100 repeated ResourceRequest requests = 3;
101}
102
103// NamedResourcesAllocationResult is used in AllocationResultModel.
104message NamedResourcesAllocationResult {
105 // Name is the name of the selected resource instance.
106 optional string name = 1;
107}
108
109// NamedResourcesAttribute is a combination of an attribute name and its value.
110message NamedResourcesAttribute {
111 // Name is unique identifier among all resource instances managed by
112 // the driver on the node. It must be a DNS subdomain.
113 optional string name = 1;
114
115 optional NamedResourcesAttributeValue attributeValue = 2;
116}
117
118// NamedResourcesAttributeValue must have one and only one field set.
119message NamedResourcesAttributeValue {
120 // QuantityValue is a quantity.
121 optional k8s.io.apimachinery.pkg.api.resource.Quantity quantity = 6;
122
123 // BoolValue is a true/false value.
124 optional bool bool = 2;
125
126 // IntValue is a 64-bit integer.
127 optional int64 int = 7;
128
129 // IntSliceValue is an array of 64-bit integers.
130 optional NamedResourcesIntSlice intSlice = 8;
131
132 // StringValue is a string.
133 optional string string = 5;
134
135 // StringSliceValue is an array of strings.
136 optional NamedResourcesStringSlice stringSlice = 9;
137
138 // VersionValue is a semantic version according to semver.org spec 2.0.0.
139 optional string version = 10;
140}
141
142// NamedResourcesFilter is used in ResourceFilterModel.
143message NamedResourcesFilter {
144 // Selector is a CEL expression which must evaluate to true if a
145 // resource instance is suitable. The language is as defined in
146 // https://kubernetes.io/docs/reference/using-api/cel/
147 //
148 // In addition, for each type NamedResourcesin AttributeValue there is a map that
149 // resolves to the corresponding value of the instance under evaluation.
150 // For example:
151 //
152 // attributes.quantity["a"].isGreaterThan(quantity("0")) &&
153 // attributes.stringslice["b"].isSorted()
154 optional string selector = 1;
155}
156
157// NamedResourcesInstance represents one individual hardware instance that can be selected based
158// on its attributes.
159message NamedResourcesInstance {
160 // Name is unique identifier among all resource instances managed by
161 // the driver on the node. It must be a DNS subdomain.
162 optional string name = 1;
163
164 // Attributes defines the attributes of this resource instance.
165 // The name of each attribute must be unique.
166 //
167 // +listType=atomic
168 // +optional
169 repeated NamedResourcesAttribute attributes = 2;
170}
171
172// NamedResourcesIntSlice contains a slice of 64-bit integers.
173message NamedResourcesIntSlice {
174 // Ints is the slice of 64-bit integers.
175 //
176 // +listType=atomic
177 repeated int64 ints = 1;
178}
179
180// NamedResourcesRequest is used in ResourceRequestModel.
181message NamedResourcesRequest {
182 // Selector is a CEL expression which must evaluate to true if a
183 // resource instance is suitable. The language is as defined in
184 // https://kubernetes.io/docs/reference/using-api/cel/
185 //
186 // In addition, for each type NamedResourcesin AttributeValue there is a map that
187 // resolves to the corresponding value of the instance under evaluation.
188 // For example:
189 //
190 // attributes.quantity["a"].isGreaterThan(quantity("0")) &&
191 // attributes.stringslice["b"].isSorted()
192 optional string selector = 1;
193}
194
195// NamedResourcesResources is used in ResourceModel.
196message NamedResourcesResources {
197 // The list of all individual resources instances currently available.
198 //
199 // +listType=atomic
200 repeated NamedResourcesInstance instances = 1;
201}
202
203// NamedResourcesStringSlice contains a slice of strings.
204message NamedResourcesStringSlice {
205 // Strings is the slice of strings.
206 //
207 // +listType=atomic
208 repeated string strings = 1;
209}
210
211// PodSchedulingContext objects hold information that is needed to schedule
212// a Pod with ResourceClaims that use "WaitForFirstConsumer" allocation
213// mode.
214//
215// This is an alpha type and requires enabling the DynamicResourceAllocation
216// feature gate.
217message PodSchedulingContext {
218 // Standard object metadata
219 // +optional
220 optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
221
222 // Spec describes where resources for the Pod are needed.
223 optional PodSchedulingContextSpec spec = 2;
224
225 // Status describes where resources for the Pod can be allocated.
226 // +optional
227 optional PodSchedulingContextStatus status = 3;
228}
229
230// PodSchedulingContextList is a collection of Pod scheduling objects.
231message PodSchedulingContextList {
232 // Standard list metadata
233 // +optional
234 optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
235
236 // Items is the list of PodSchedulingContext objects.
237 repeated PodSchedulingContext items = 2;
238}
239
240// PodSchedulingContextSpec describes where resources for the Pod are needed.
241message PodSchedulingContextSpec {
242 // SelectedNode is the node for which allocation of ResourceClaims that
243 // are referenced by the Pod and that use "WaitForFirstConsumer"
244 // allocation is to be attempted.
245 // +optional
246 optional string selectedNode = 1;
247
248 // PotentialNodes lists nodes where the Pod might be able to run.
249 //
250 // The size of this field is limited to 128. This is large enough for
251 // many clusters. Larger clusters may need more attempts to find a node
252 // that suits all pending resources. This may get increased in the
253 // future, but not reduced.
254 //
255 // +listType=atomic
256 // +optional
257 repeated string potentialNodes = 2;
258}
259
260// PodSchedulingContextStatus describes where resources for the Pod can be allocated.
261message PodSchedulingContextStatus {
262 // ResourceClaims describes resource availability for each
263 // pod.spec.resourceClaim entry where the corresponding ResourceClaim
264 // uses "WaitForFirstConsumer" allocation mode.
265 //
266 // +listType=map
267 // +listMapKey=name
268 // +optional
269 repeated ResourceClaimSchedulingStatus resourceClaims = 1;
270}
271
272// ResourceClaim describes which resources are needed by a resource consumer.
273// Its status tracks whether the resource has been allocated and what the
274// resulting attributes are.
275//
276// This is an alpha type and requires enabling the DynamicResourceAllocation
277// feature gate.
278message ResourceClaim {
279 // Standard object metadata
280 // +optional
281 optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
282
283 // Spec describes the desired attributes of a resource that then needs
284 // to be allocated. It can only be set once when creating the
285 // ResourceClaim.
286 optional ResourceClaimSpec spec = 2;
287
288 // Status describes whether the resource is available and with which
289 // attributes.
290 // +optional
291 optional ResourceClaimStatus status = 3;
292}
293
294// ResourceClaimConsumerReference contains enough information to let you
295// locate the consumer of a ResourceClaim. The user must be a resource in the same
296// namespace as the ResourceClaim.
297message ResourceClaimConsumerReference {
298 // APIGroup is the group for the resource being referenced. It is
299 // empty for the core API. This matches the group in the APIVersion
300 // that is used when creating the resources.
301 // +optional
302 optional string apiGroup = 1;
303
304 // Resource is the type of resource being referenced, for example "pods".
305 optional string resource = 3;
306
307 // Name is the name of resource being referenced.
308 optional string name = 4;
309
310 // UID identifies exactly one incarnation of the resource.
311 optional string uid = 5;
312}
313
314// ResourceClaimList is a collection of claims.
315message ResourceClaimList {
316 // Standard list metadata
317 // +optional
318 optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
319
320 // Items is the list of resource claims.
321 repeated ResourceClaim items = 2;
322}
323
324// ResourceClaimParameters defines resource requests for a ResourceClaim in an
325// in-tree format understood by Kubernetes.
326message ResourceClaimParameters {
327 // Standard object metadata
328 optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
329
330 // If this object was created from some other resource, then this links
331 // back to that resource. This field is used to find the in-tree representation
332 // of the claim parameters when the parameter reference of the claim refers
333 // to some unknown type.
334 // +optional
335 optional ResourceClaimParametersReference generatedFrom = 2;
336
337 // Shareable indicates whether the allocated claim is meant to be shareable
338 // by multiple consumers at the same time.
339 // +optional
340 optional bool shareable = 3;
341
342 // DriverRequests describes all resources that are needed for the
343 // allocated claim. A single claim may use resources coming from
344 // different drivers. For each driver, this array has at most one
345 // entry which then may have one or more per-driver requests.
346 //
347 // May be empty, in which case the claim can always be allocated.
348 //
349 // +listType=atomic
350 repeated DriverRequests driverRequests = 4;
351}
352
353// ResourceClaimParametersList is a collection of ResourceClaimParameters.
354message ResourceClaimParametersList {
355 // Standard list metadata
356 // +optional
357 optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
358
359 // Items is the list of node resource capacity objects.
360 repeated ResourceClaimParameters items = 2;
361}
362
363// ResourceClaimParametersReference contains enough information to let you
364// locate the parameters for a ResourceClaim. The object must be in the same
365// namespace as the ResourceClaim.
366message ResourceClaimParametersReference {
367 // APIGroup is the group for the resource being referenced. It is
368 // empty for the core API. This matches the group in the APIVersion
369 // that is used when creating the resources.
370 // +optional
371 optional string apiGroup = 1;
372
373 // Kind is the type of resource being referenced. This is the same
374 // value as in the parameter object's metadata, for example "ConfigMap".
375 optional string kind = 2;
376
377 // Name is the name of resource being referenced.
378 optional string name = 3;
379}
380
381// ResourceClaimSchedulingStatus contains information about one particular
382// ResourceClaim with "WaitForFirstConsumer" allocation mode.
383message ResourceClaimSchedulingStatus {
384 // Name matches the pod.spec.resourceClaims[*].Name field.
385 // +optional
386 optional string name = 1;
387
388 // UnsuitableNodes lists nodes that the ResourceClaim cannot be
389 // allocated for.
390 //
391 // The size of this field is limited to 128, the same as for
392 // PodSchedulingSpec.PotentialNodes. This may get increased in the
393 // future, but not reduced.
394 //
395 // +listType=atomic
396 // +optional
397 repeated string unsuitableNodes = 2;
398}
399
400// ResourceClaimSpec defines how a resource is to be allocated.
401message ResourceClaimSpec {
402 // ResourceClassName references the driver and additional parameters
403 // via the name of a ResourceClass that was created as part of the
404 // driver deployment.
405 optional string resourceClassName = 1;
406
407 // ParametersRef references a separate object with arbitrary parameters
408 // that will be used by the driver when allocating a resource for the
409 // claim.
410 //
411 // The object must be in the same namespace as the ResourceClaim.
412 // +optional
413 optional ResourceClaimParametersReference parametersRef = 2;
414
415 // Allocation can start immediately or when a Pod wants to use the
416 // resource. "WaitForFirstConsumer" is the default.
417 // +optional
418 optional string allocationMode = 3;
419}
420
421// ResourceClaimStatus tracks whether the resource has been allocated and what
422// the resulting attributes are.
423message ResourceClaimStatus {
424 // DriverName is a copy of the driver name from the ResourceClass at
425 // the time when allocation started.
426 // +optional
427 optional string driverName = 1;
428
429 // Allocation is set by the resource driver once a resource or set of
430 // resources has been allocated successfully. If this is not specified, the
431 // resources have not been allocated yet.
432 // +optional
433 optional AllocationResult allocation = 2;
434
435 // ReservedFor indicates which entities are currently allowed to use
436 // the claim. A Pod which references a ResourceClaim which is not
437 // reserved for that Pod will not be started.
438 //
439 // There can be at most 32 such reservations. This may get increased in
440 // the future, but not reduced.
441 //
442 // +listType=map
443 // +listMapKey=uid
444 // +patchStrategy=merge
445 // +patchMergeKey=uid
446 // +optional
447 repeated ResourceClaimConsumerReference reservedFor = 3;
448
449 // DeallocationRequested indicates that a ResourceClaim is to be
450 // deallocated.
451 //
452 // The driver then must deallocate this claim and reset the field
453 // together with clearing the Allocation field.
454 //
455 // While DeallocationRequested is set, no new consumers may be added to
456 // ReservedFor.
457 // +optional
458 optional bool deallocationRequested = 4;
459}
460
461// ResourceClaimTemplate is used to produce ResourceClaim objects.
462message ResourceClaimTemplate {
463 // Standard object metadata
464 // +optional
465 optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
466
467 // Describes the ResourceClaim that is to be generated.
468 //
469 // This field is immutable. A ResourceClaim will get created by the
470 // control plane for a Pod when needed and then not get updated
471 // anymore.
472 optional ResourceClaimTemplateSpec spec = 2;
473}
474
475// ResourceClaimTemplateList is a collection of claim templates.
476message ResourceClaimTemplateList {
477 // Standard list metadata
478 // +optional
479 optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
480
481 // Items is the list of resource claim templates.
482 repeated ResourceClaimTemplate items = 2;
483}
484
485// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.
486message ResourceClaimTemplateSpec {
487 // ObjectMeta may contain labels and annotations that will be copied into the PVC
488 // when creating it. No other fields are allowed and will be rejected during
489 // validation.
490 // +optional
491 optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
492
493 // Spec for the ResourceClaim. The entire content is copied unchanged
494 // into the ResourceClaim that gets created from this template. The
495 // same fields as in a ResourceClaim are also valid here.
496 optional ResourceClaimSpec spec = 2;
497}
498
499// ResourceClass is used by administrators to influence how resources
500// are allocated.
501//
502// This is an alpha type and requires enabling the DynamicResourceAllocation
503// feature gate.
504message ResourceClass {
505 // Standard object metadata
506 // +optional
507 optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
508
509 // DriverName defines the name of the dynamic resource driver that is
510 // used for allocation of a ResourceClaim that uses this class.
511 //
512 // Resource drivers have a unique name in forward domain order
513 // (acme.example.com).
514 optional string driverName = 2;
515
516 // ParametersRef references an arbitrary separate object that may hold
517 // parameters that will be used by the driver when allocating a
518 // resource that uses this class. A dynamic resource driver can
519 // distinguish between parameters stored here and and those stored in
520 // ResourceClaimSpec.
521 // +optional
522 optional ResourceClassParametersReference parametersRef = 3;
523
524 // Only nodes matching the selector will be considered by the scheduler
525 // when trying to find a Node that fits a Pod when that Pod uses
526 // a ResourceClaim that has not been allocated yet.
527 //
528 // Setting this field is optional. If null, all nodes are candidates.
529 // +optional
530 optional k8s.io.api.core.v1.NodeSelector suitableNodes = 4;
531
532 // If and only if allocation of claims using this class is handled
533 // via structured parameters, then StructuredParameters must be set to true.
534 // +optional
535 optional bool structuredParameters = 5;
536}
537
538// ResourceClassList is a collection of classes.
539message ResourceClassList {
540 // Standard list metadata
541 // +optional
542 optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
543
544 // Items is the list of resource classes.
545 repeated ResourceClass items = 2;
546}
547
548// ResourceClassParameters defines resource requests for a ResourceClass in an
549// in-tree format understood by Kubernetes.
550message ResourceClassParameters {
551 // Standard object metadata
552 optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
553
554 // If this object was created from some other resource, then this links
555 // back to that resource. This field is used to find the in-tree representation
556 // of the class parameters when the parameter reference of the class refers
557 // to some unknown type.
558 // +optional
559 optional ResourceClassParametersReference generatedFrom = 2;
560
561 // VendorParameters are arbitrary setup parameters for all claims using
562 // this class. They are ignored while allocating the claim. There must
563 // not be more than one entry per driver.
564 //
565 // +listType=atomic
566 // +optional
567 repeated VendorParameters vendorParameters = 3;
568
569 // Filters describes additional contraints that must be met when using the class.
570 //
571 // +listType=atomic
572 repeated ResourceFilter filters = 4;
573}
574
575// ResourceClassParametersList is a collection of ResourceClassParameters.
576message ResourceClassParametersList {
577 // Standard list metadata
578 // +optional
579 optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
580
581 // Items is the list of node resource capacity objects.
582 repeated ResourceClassParameters items = 2;
583}
584
585// ResourceClassParametersReference contains enough information to let you
586// locate the parameters for a ResourceClass.
587message ResourceClassParametersReference {
588 // APIGroup is the group for the resource being referenced. It is
589 // empty for the core API. This matches the group in the APIVersion
590 // that is used when creating the resources.
591 // +optional
592 optional string apiGroup = 1;
593
594 // Kind is the type of resource being referenced. This is the same
595 // value as in the parameter object's metadata.
596 optional string kind = 2;
597
598 // Name is the name of resource being referenced.
599 optional string name = 3;
600
601 // Namespace that contains the referenced resource. Must be empty
602 // for cluster-scoped resources and non-empty for namespaced
603 // resources.
604 // +optional
605 optional string namespace = 4;
606}
607
608// ResourceFilter is a filter for resources from one particular driver.
609message ResourceFilter {
610 // DriverName is the name used by the DRA driver kubelet plugin.
611 optional string driverName = 1;
612
613 optional ResourceFilterModel resourceFilterModel = 2;
614}
615
616// ResourceFilterModel must have one and only one field set.
617message ResourceFilterModel {
618 // NamedResources describes a resource filter using the named resources model.
619 //
620 // +optional
621 optional NamedResourcesFilter namedResources = 1;
622}
623
624// ResourceHandle holds opaque resource data for processing by a specific kubelet plugin.
625message ResourceHandle {
626 // DriverName specifies the name of the resource driver whose kubelet
627 // plugin should be invoked to process this ResourceHandle's data once it
628 // lands on a node. This may differ from the DriverName set in
629 // ResourceClaimStatus this ResourceHandle is embedded in.
630 optional string driverName = 1;
631
632 // Data contains the opaque data associated with this ResourceHandle. It is
633 // set by the controller component of the resource driver whose name
634 // matches the DriverName set in the ResourceClaimStatus this
635 // ResourceHandle is embedded in. It is set at allocation time and is
636 // intended for processing by the kubelet plugin whose name matches
637 // the DriverName set in this ResourceHandle.
638 //
639 // The maximum size of this field is 16KiB. This may get increased in the
640 // future, but not reduced.
641 // +optional
642 optional string data = 2;
643
644 // If StructuredData is set, then it needs to be used instead of Data.
645 //
646 // +optional
647 optional StructuredResourceHandle structuredData = 5;
648}
649
650// ResourceModel must have one and only one field set.
651message ResourceModel {
652 // NamedResources describes available resources using the named resources model.
653 //
654 // +optional
655 optional NamedResourcesResources namedResources = 1;
656}
657
658// ResourceRequest is a request for resources from one particular driver.
659message ResourceRequest {
660 // VendorParameters are arbitrary setup parameters for the requested
661 // resource. They are ignored while allocating a claim.
662 //
663 // +optional
664 optional k8s.io.apimachinery.pkg.runtime.RawExtension vendorParameters = 1;
665
666 optional ResourceRequestModel resourceRequestModel = 2;
667}
668
669// ResourceRequestModel must have one and only one field set.
670message ResourceRequestModel {
671 // NamedResources describes a request for resources with the named resources model.
672 //
673 // +optional
674 optional NamedResourcesRequest namedResources = 1;
675}
676
677// ResourceSlice provides information about available
678// resources on individual nodes.
679message ResourceSlice {
680 // Standard object metadata
681 // +optional
682 optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
683
684 // NodeName identifies the node which provides the resources
685 // if they are local to a node.
686 //
687 // A field selector can be used to list only ResourceSlice
688 // objects with a certain node name.
689 //
690 // +optional
691 optional string nodeName = 2;
692
693 // DriverName identifies the DRA driver providing the capacity information.
694 // A field selector can be used to list only ResourceSlice
695 // objects with a certain driver name.
696 optional string driverName = 3;
697
698 optional ResourceModel resourceModel = 4;
699}
700
701// ResourceSliceList is a collection of ResourceSlices.
702message ResourceSliceList {
703 // Standard list metadata
704 // +optional
705 optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
706
707 // Items is the list of node resource capacity objects.
708 repeated ResourceSlice items = 2;
709}
710
711// StructuredResourceHandle is the in-tree representation of the allocation result.
712message StructuredResourceHandle {
713 // VendorClassParameters are the per-claim configuration parameters
714 // from the resource class at the time that the claim was allocated.
715 //
716 // +optional
717 optional k8s.io.apimachinery.pkg.runtime.RawExtension vendorClassParameters = 1;
718
719 // VendorClaimParameters are the per-claim configuration parameters
720 // from the resource claim parameters at the time that the claim was
721 // allocated.
722 //
723 // +optional
724 optional k8s.io.apimachinery.pkg.runtime.RawExtension vendorClaimParameters = 2;
725
726 // NodeName is the name of the node providing the necessary resources
727 // if the resources are local to a node.
728 //
729 // +optional
730 optional string nodeName = 4;
731
732 // Results lists all allocated driver resources.
733 //
734 // +listType=atomic
735 repeated DriverAllocationResult results = 5;
736}
737
738// VendorParameters are opaque parameters for one particular driver.
739message VendorParameters {
740 // DriverName is the name used by the DRA driver kubelet plugin.
741 optional string driverName = 1;
742
743 // Parameters can be arbitrary setup parameters. They are ignored while
744 // allocating a claim.
745 //
746 // +optional
747 optional k8s.io.apimachinery.pkg.runtime.RawExtension parameters = 2;
748}
749
View as plain text