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
-[Handling ResourceSlices Upon Failure of Attachment](#handling-resourceslices-upon-failure-of-attachment)
@@ -244,7 +244,7 @@ The basic idea is the following:
244
244
The overall flow of the `PreBind` process is as follows:
245
245
246
246
-**Updating ResourceClaim**:
247
-
- The scheduler DRA plugin copies `BindingConditions` and `BindingFailureConditions` from `ResourceSlice.Device.Basic` to `AllocatedDeviceStatus.Conditions`.
247
+
- The scheduler DRA plugin copies `BindingConditions` and `BindingFailureConditions` from `ResourceSlice.Device.Basic` to `AllocatedDeviceStatus`.
248
248
249
249
-**Monitoring and Preparation by Composable DRA Controllers**:
250
250
- Composable DRA Controllers monitor the `ResourceClaim`. If a device that requires preparation is associated with the `ResourceClaim`, they perform the necessary preparations.
@@ -330,7 +330,7 @@ This issue needs to be resolved before the beta is released.
330
330
### DRA Scheduler Plugin Design Overview
331
331
332
332
This document outlines the design of the DRA Scheduler Plugin, focusing on the handling of fabric devices.
333
-
Key additions include `BindingConditions` and `BindingFailureConditions for device identification and preparetion, enhancements to `AllocatedDeviceStatus.Conditions`, and the process for handling `ResourceSlices` upon attachment failure.
333
+
Key additions include `BindingConditions` and `BindingFailureConditions` for device identification and preparetion, enhancements to `AllocatedDeviceStatus`, and the process for handling `ResourceSlices` upon attachment failure.
334
334
The composable controller design is also discussed, emphasizing efficient utilization of fabric devices.
335
335
336
336

@@ -349,6 +349,7 @@ type BasicDevice struct {
349
349
BindingConditions []string
350
350
351
351
// BindingFailureConditions defines the conditions for binding failure.
The `BindingConditions` and `BindingFailureConditions` fields within `AllocatedDeviceStatus.Conditions` are used to indicate the status of the device attachment.
378
+
The `BindingConditions` and `BindingFailureConditions` fields within `AllocatedDeviceStatus` are used to indicate the status of the device attachment.
378
379
These fields will contain a list of conditions, each representing a specific state or event related to the device.
379
380
380
381
For this feature, following fields are added:
381
382
382
383
```go
383
-
// AllocatedDeviceStatus.Conditions contains the status of an allocated device, if the
384
+
// AllocatedDeviceStatus contains the status of an allocated device, if the
384
385
// driver chooses to report it. This may include driver-specific information.
385
-
typeAllocatedDeviceStatus.Conditionsstruct {
386
+
typeAllocatedDeviceStatusstruct {
386
387
...
387
388
// BindingConditions defines the conditions for binding.
388
389
//
389
390
// +optional
390
-
BindingConditionsmap[string]bool
391
+
BindingConditions[]string
391
392
392
393
// BindingFailureConditions defines the conditions for binding failure.
394
+
// If true, a binding failure occurred.
393
395
//
394
396
// +optional
395
-
BindingFailureConditionsmap[string]bool
397
+
BindingFailureConditions []stirng
398
+
399
+
// UsageRestrictedToNode indicates if the usage of an allocation involving this device
400
+
// has to be limited to exactly the node that was chosen when allocating the claim.
401
+
//
402
+
// +optional
403
+
UsageRestrictedToNodebool
404
+
405
+
// BindingTimeoutSeconds indicates the prepare timeout period.
406
+
// If the timeout period is exceeded, the scheduler clears the allocation in the ResourceClaim and reschedules the Pod.
407
+
//
408
+
// +optional
409
+
BindingTimeoutSeconds *metav1.Duration
396
410
}
397
411
```
398
412
@@ -404,7 +418,7 @@ When `UsageRestrictedToNode: true` is set, the scheduler DRA plugin will perform
404
418
405
419
If Conditions are present, the scheduler DRA plugin will perform the following steps during the `PreBind` phase:
406
420
407
-
2.**Copy Conditions**: Copy `BindingConditions` and `BindingFailureConditions` from `ResourceSlice.Device.Basic` to `AllocatedDeviceStatus`.
421
+
2.**Copy Conditions**: Copy `UsageRestrictedToNode`, `BindingTimeoutSeconds`, `BindingConditions` and `BindingFailureConditions` from `ResourceSlice.Device.Basic` to `AllocatedDeviceStatus`.
408
422
3.**Wait for Conditions**: Wait for the following conditions:
409
423
- Wait until all conditions in the BindingConditions are `True` before proceeding to Bind.
410
424
- If any one of the conditions in the BindingFailureConditions becomes `True`, clear the allocation in the `ResourceClaim` and reschedule the Pod.
0 commit comments