Skip to main content

NodeAllocatableResourceMapping

Struct NodeAllocatableResourceMapping 

Source
pub struct NodeAllocatableResourceMapping {
    pub allocation_multiplier: Option<Quantity>,
    pub capacity_key: Option<String>,
}
Expand description

NodeAllocatableResourceMapping defines the translation between the DRA device/capacity units requested to the corresponding quantity of the node allocatable resource.

Fields§

§allocation_multiplier: Option<Quantity>

AllocationMultiplier is used as a multiplier for the allocated device count or the allocated capacity in the claim. It defaults to 1 if not specified. How the field is used also depends on whether capacityKey is set. 1. If capacityKey is NOT set: allocationMultiplier multiplies the device count allocated to the claim. a. A DRA driver representing each CPU core as a device would have {ResourceName: “cpu”, allocationMultiplier: “2”} in its nodeAllocatableResourceMappings. If 4 devices are allocated to the claim, 4 * 2 CPUs would be considered as allocated and subtracted from the node’s capacity. b. A GPU device that needs additional node memory per GPU allocation would have {ResourceName: “memory”, allocationMultiplier: “2Gi”}. Each allocated GPU device instance of this type will account for 2Gi of memory.

  1. If capacityKey IS set: allocationMultiplier is multiplied by the amount of that capacity consumed. The final node allocatable resource amount is consumedCapacity\[capacityKey\] * allocationMultiplier. For example, if a Device’s capacity “dra.example.com/cores” is consumed, and each “core” provides 2 “cpu“s, the mapping would be: {ResourceName: “cpu”, capacityKey: “dra.example.com/cores”, allocationMultiplier: “2”}. If a claim consumes 8 “dra.example.com/cores”, the CPU footprint is 8 * 2 = 16.
§capacity_key: Option<String>

CapacityKey references a capacity name defined as a key in the spec.devices\[*\].capacity map. When this field is set, the value associated with this key in the status.allocation.devices.results\[*\].consumedCapacity map (for a specific claim allocation) determines the base quantity for the node allocatable resource. If allocationMultiplier is also set, it is multiplied with the base quantity. For example, if spec.devices\[*\].capacity has an entry “dra.example.com/memory”: “128Gi”, and this field is set to “dra.example.com/memory”, then for a claim allocation that consumes { “dra.example.com/memory”: “4Gi” } the base quantity for the node allocatable resource mapping will be “4Gi”, and allocationMultiplier should be omitted or set to “1”.

Trait Implementations§

Source§

impl Clone for NodeAllocatableResourceMapping

Source§

fn clone(&self) -> NodeAllocatableResourceMapping

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for NodeAllocatableResourceMapping

Source§

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

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

impl DeepMerge for NodeAllocatableResourceMapping

Source§

fn merge_from(&mut self, other: Self)

Merge other into self.
Source§

impl Default for NodeAllocatableResourceMapping

Source§

fn default() -> NodeAllocatableResourceMapping

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

impl<'de> Deserialize<'de> for NodeAllocatableResourceMapping

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 NodeAllocatableResourceMapping

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 NodeAllocatableResourceMapping

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 NodeAllocatableResourceMapping

Auto Trait Implementations§

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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.