Skip to content

Commit be65f28

Browse files
committed
KEP 5075: apply text edit suggestions
Signed-off-by: Sunyanan Choochotkaew <[email protected]>
1 parent 0558d24 commit be65f28

File tree

1 file changed

+13
-11
lines changed
  • keps/sig-scheduling/5075-dra-consumable-capacity

1 file changed

+13
-11
lines changed

keps/sig-scheduling/5075-dra-consumable-capacity/README.md

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,10 @@ SIG Architecture for cross-cutting KEPs).
9595

9696
Items marked with (R) are required *prior to targeting to a milestone / release*.
9797

98-
- [ ] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
99-
- [ ] (R) KEP approvers have approved the KEP status as `implementable`
100-
- [ ] (R) Design details are appropriately documented
101-
- [ ] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
98+
- [x] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
99+
- [x] (R) KEP approvers have approved the KEP status as `implementable`
100+
- [x] (R) Design details are appropriately documented
101+
- [x] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
102102
- [ ] e2e Tests for all Beta API Operations (endpoints)
103103
- [ ] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
104104
- [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
@@ -135,7 +135,9 @@ To achieve this, this KEP introduces
135135
- a capacity-aware scheduling mechanism that allows limiting or guaranteeing the capacity of devices among the resource claims (or requests) those are sharing,
136136
- a new capacity requirement field in the device request of the resource claim,
137137
- a new consumed capacity field in the allocation result of the resource claim,
138-
- a method to associate the allocated device status to the allocation result in the resource claim,
138+
- a method to associate the allocated device status to the allocation result in the resource claim.
139+
140+
With those in place, a resource claim with multiple requests might allocate the same device multiple times. This may or may not be desired, so this KEP also introduces:
139141
- a distinct attribute constraint to prevent allocating the same shareable device in the same claim multiple times.
140142

141143
Relations to other KEPs:
@@ -165,7 +167,7 @@ In other words, the device capacity allocation is determined by the user's claim
165167

166168
- Define driver-specific attributes and configs (such as CNI parameter config).
167169
- Support network security policy.
168-
- Supports aggregated resource consumption where multiple devices are allocated to satisfy a single capacity request.
170+
- Support aggregated resource consumption where multiple devices are allocated to satisfy a single capacity request.
169171
This is related to [the comment about `distinctAttributes`](https://github.com/kubernetes/enhancements/pull/5104#discussion_r1943835445).
170172
- Support an extended use case where the resource guaranteeing behavior is determined by the first user request.
171173
For example, if the first request does not require a guarantee, the resource remains unguaranteed.
@@ -212,7 +214,7 @@ users specifies their required guaranteed bandwidth. Otherwise, the default valu
212214
**Mitigation:**
213215
- To preserve the original behavior during this transition, the driver should set the default consumed capacity to the maximum value. This ensures consistency with the previous non-shareable configuration.
214216
- The existing allocation result, which has no share ID (as it was previously a non-shareable device), will be included in the allocated list
215-
and cannot be reallocated to another pod during the scheduling process.
217+
and ensures that the device cannot be allocated for another resource claim during the scheduling process.
216218

217219
- When a driver changes a capacity from non-consumable to consumable for a device that is already shareable, the behavior of resource claims changes.
218220
While the capacity is non-consumable, a resource claim for that specific capacity will always guarantee a value of zero.
@@ -233,7 +235,7 @@ For examples of device driver migration, see the [Examples](#examples) section b
233235
This enhancement introduces a `allowMultipleAllocations` field within the `Device` of the ResourceSlice
234236
to mark whether the device is shareable among multiple resource claims (or requests).
235237
The multi-allocatable device can be assigned to more than one request if it satisfies the selection criteria and constraints.
236-
The select condition `device.allowMultipleAllocations == true/false` is used to identify to select the device with a `allowMultipleAllocations` property or not.
238+
The select condition `device.allowMultipleAllocations == true/false` can be used to select the device with a `allowMultipleAllocations` property or not in a CEL selector.
237239

238240
The enhancement also adds a `SharingPolicy` field to `DeviceCapacity`.
239241
This field specifies how the capacity can be shared between different requests.
@@ -301,11 +303,11 @@ type DeviceCapacity struct {
301303

302304
// CapacitySharingPolicy defines how requests consume the available capacity.
303305
// A policy must have a default value to be applied when no value is explicitly provided.
304-
// ValidSharingValues can either specify a range of valid values or a discrete set of them.
306+
// It can either specify a range of valid values or a discrete set of them.
305307
// Exactly one of them must be defined.
306308
// The default value must be a valid value.
307309
type CapacitySharingPolicy struct {
308-
// Default specifies the default capacity to be used for a consumption request
310+
// Default specifies the default capacity to be used for a consumption request.
309311
//
310312
// +required
311313
Default resource.Quantity
@@ -865,7 +867,7 @@ implementing this enhancement to ensure the enhancements have also solid foundat
865867
- can gather consumed capacity from allocated resource claims
866868
- can add/remove consumed capacity of allocating devices
867869
- can round up and compute user-requesting minimum capacity according to sharing policy range and chunk size
868-
- can check sharing policy violation
870+
- requested capacity for non-consumable capacity acts like a `>=` filter
869871

870872
**Distinct Attribute**
871873
- can prevent allocating the same device in the same request with a distinct constraint

0 commit comments

Comments
 (0)