Class V1NodeAllocatableMapping
NodeAllocatableMapping defines how a DRA allocation directly translates into a
node allocatable resource quantity. The mapping can be derived from either the
count of allocated devices (via deviceMultiplier) or the specific capacity
consumed (via capacityKey and capacityMultiplier). These options are mutually
exclusive. Kubelet adds this mapped resource quantity from claim to both
requests and limits at the pod-level cgroup, and to limits at the
container-level cgroup for each container referencing the claim.
Inheritance
V1NodeAllocatableMapping
Assembly: KubernetesClient.dll
Syntax
public record V1NodeAllocatableMapping : IEquatable<V1NodeAllocatableMapping>
Constructors
V1NodeAllocatableMapping()
Declaration
public V1NodeAllocatableMapping()
V1NodeAllocatableMapping(V1NodeAllocatableMapping)
Declaration
protected V1NodeAllocatableMapping(V1NodeAllocatableMapping original)
Parameters
Properties
CapacityKey
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. capacityMultiplier must also be set and 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". The final node allocatable resource amount is
consumedCapacity[capacityKey] * capacityMultiplier.
Declaration
[JsonPropertyName("capacityKey")]
public string CapacityKey { get; set; }
Property Value
CapacityMultiplier
CapacityMultiplier is used as a multiplier for the allocated capacity consumed.
It is only valid if capacityKey is set. The final node allocatable resource
amount is consumedCapacity[capacityKey] * capacityMultiplier. 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", capacityMultiplier: "2"}. If a claim consumes 8
"dra.example.com/cores", the CPU footprint is 8 * 2 = 16.
Declaration
[JsonPropertyName("capacityMultiplier")]
public ResourceQuantity CapacityMultiplier { get; set; }
Property Value
DeviceMultiplier
DeviceMultiplier is used as a multiplier for the allocated device count in the
claim. The final node allocatable resource amount is deviceCount *
deviceMultiplier. For example, a DRA driver representing each cache complex
(CCX) as a device would have {ResourceName: "cpu", deviceMultiplier: "8"} in its
nodeAllocatableResources. If 2 devices (CCX) are allocated to the claim, 2 * 8
= 16 CPUs would be considered as allocated. It is only valid when capacityKey
and capacityMultiplier are not set.
Declaration
[JsonPropertyName("deviceMultiplier")]
public ResourceQuantity DeviceMultiplier { get; set; }
Property Value
EqualityContract
Declaration
protected virtual Type EqualityContract { get; }
Property Value
Methods
Equals(object?)
Declaration
public override bool Equals(object? obj)
Parameters
| Type |
Name |
Description |
| object |
obj |
|
Returns
Overrides
Equals(V1NodeAllocatableMapping?)
Declaration
public virtual bool Equals(V1NodeAllocatableMapping? other)
Parameters
Returns
GetHashCode()
Declaration
public override int GetHashCode()
Returns
Overrides
PrintMembers(StringBuilder)
Declaration
protected virtual bool PrintMembers(StringBuilder builder)
Parameters
Returns
ToString()
Declaration
public override string ToString()
Returns
Overrides
Operators
operator ==(V1NodeAllocatableMapping?, V1NodeAllocatableMapping?)
Declaration
public static bool operator ==(V1NodeAllocatableMapping? left, V1NodeAllocatableMapping? right)
Parameters
Returns
operator !=(V1NodeAllocatableMapping?, V1NodeAllocatableMapping?)
Declaration
public static bool operator !=(V1NodeAllocatableMapping? left, V1NodeAllocatableMapping? right)
Parameters
Returns
Implements