## ResourceClaimStatus

# Struct ResourceClaimStatus

Source

    pub struct ResourceClaimStatus {
        pub allocation: Option<AllocationResult>,
        pub devices: Option<Vec<AllocatedDeviceStatus>>,
        pub reserved_for: Option<Vec<ResourceClaimConsumerReference>>,
    }

Expand description

ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.

## Fields§

§`allocation: Option<AllocationResult>`

Allocation is set once the claim has been allocated successfully.

§`devices: Option<Vec<AllocatedDeviceStatus>>`

Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers.

§`reserved_for: Option<Vec<ResourceClaimConsumerReference>>`

ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated.

In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled.

Both schedulers try to add their pod to the claim.status.reservedFor field, but only the update that reaches the API server first gets stored. The other one fails with an error and the scheduler which issued it knows that it must put the pod back into the queue, waiting for the ResourceClaim to become usable again.

There can be at most 256 such reservations. This may get increased in the future, but not reduced.

## Trait Implementations§

Source§

### impl Clone for ResourceClaimStatus

Source§

#### fn clone(&self) -> ResourceClaimStatus

Returns a duplicate of the value. Read more
1.0.0 · Source§

#### fn clone_from(&mut self, source: &Self)

Performs copy-assignment from `source`. Read more
Source§

### impl Debug for ResourceClaimStatus

Source§

#### fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

### impl DeepMerge for ResourceClaimStatus

Source§

#### fn merge_from(&mut self, other: Self)

Merge `other` into `self`.
Source§

### impl Default for ResourceClaimStatus

Source§

#### fn default() -> ResourceClaimStatus

Returns the “default value” for a type. Read more
Source§

### impl<'de> Deserialize<'de> for ResourceClaimStatus

Source§

#### fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

### impl PartialEq for ResourceClaimStatus

Source§

#### fn eq(&self, other: &ResourceClaimStatus) -> bool

Tests for `self` and `other` values to be equal, and is used by `==`.
1.0.0 · Source§

#### fn ne(&self, other: &Rhs) -> bool

Tests for `!=`. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

### impl Serialize for ResourceClaimStatus

Source§

#### fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

### impl StructuralPartialEq for ResourceClaimStatus

## Auto Trait Implementations§

§

### impl Freeze for ResourceClaimStatus

§

### impl RefUnwindSafe for ResourceClaimStatus

§

### impl Send for ResourceClaimStatus

§

### impl Sync for ResourceClaimStatus

§

### impl Unpin for ResourceClaimStatus

§

### impl UnwindSafe for ResourceClaimStatus

## Blanket Implementations§

Source§

### impl<T> Any for T
where T: 'static + ?Sized,

Source§

#### fn type_id(&self) -> TypeId

Gets the `TypeId` of `self`. Read more
Source§

### impl<T> Borrow<T> for T
where T: ?Sized,

Source§

#### fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

### impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

#### fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

### impl<T> CloneToUninit for T
where T: Clone,

Source§

#### unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (`clone_to_uninit`)
Performs copy-assignment from `self` to `dest`. Read more
Source§

### impl<T> From<T> for T

Source§

#### fn from(t: T) -> T

Returns the argument unchanged.

Source§

### impl<T, U> Into<U> for T
where U: From<T>,

Source§

#### fn into(self) -> U

Calls `U::from(self)`.

That is, this conversion is whatever the implementation of `From<T> for U` chooses to do.

Source§

### impl<T> ToOwned for T
where T: Clone,

Source§

#### type Owned = T

The resulting type after obtaining ownership.
Source§

#### fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

#### fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

### impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

#### type Error = Infallible

The type returned in the event of a conversion error.
Source§

#### fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

### impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

#### type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

#### fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

### impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,