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.
- If
capacityKeyIS set:allocationMultiplieris multiplied by the amount of that capacity consumed. The final node allocatable resource amount isconsumedCapacity\[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
impl Clone for NodeAllocatableResourceMapping
Source§fn clone(&self) -> NodeAllocatableResourceMapping
fn clone(&self) -> NodeAllocatableResourceMapping
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl DeepMerge for NodeAllocatableResourceMapping
impl DeepMerge for NodeAllocatableResourceMapping
Source§fn merge_from(&mut self, other: Self)
fn merge_from(&mut self, other: Self)
other into self.Source§impl Default for NodeAllocatableResourceMapping
impl Default for NodeAllocatableResourceMapping
Source§fn default() -> NodeAllocatableResourceMapping
fn default() -> NodeAllocatableResourceMapping
Source§impl<'de> Deserialize<'de> for NodeAllocatableResourceMapping
impl<'de> Deserialize<'de> for NodeAllocatableResourceMapping
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl PartialEq for NodeAllocatableResourceMapping
impl PartialEq for NodeAllocatableResourceMapping
Source§fn eq(&self, other: &NodeAllocatableResourceMapping) -> bool
fn eq(&self, other: &NodeAllocatableResourceMapping) -> bool
self and other values to be equal, and is used by ==.