struct

Kubernetes::NodeAllocatableResourceMapping

Inherits YAML::Serializable < JSON::Serializable < Kubernetes::Serializable < Struct < Value < Object

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

Constructors

new(pull : ::JSON::PullParser)
new(*, __pull_for_json_serializable pull : ::JSON::PullParser)
new(*, __context_for_yaml_serializable ctx : YAML::ParseContext, __node_for_yaml_serializable node : YAML::Nodes::Node)

Instance methods

allocation_multiplier

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. 2. 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.

Source
allocation_multiplier=(allocation_multiplier : Quantity | Nil)

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. 2. 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.

Source
capacity_key

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".

Source
capacity_key=(capacity_key : String | Nil)

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".

Source

Macros

field(name, type = nil, **options, &block)

Helper macro for defining fields with automatic camelCase conversion

Source