Class BasicDevice

    • Method Detail

      • getAllNodes

        public Boolean getAllNodes()
        AllNodes indicates that all nodes have access to the device.


        Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.

      • setAllNodes

        public void setAllNodes​(Boolean allNodes)
        AllNodes indicates that all nodes have access to the device.


        Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.

      • getAllowMultipleAllocations

        public Boolean getAllowMultipleAllocations()
        AllowMultipleAllocations marks whether the device is allowed to be allocated to multiple DeviceRequests.


        If AllowMultipleAllocations is set to true, the device can be allocated more than once, and all of its capacity is consumable, regardless of whether the requestPolicy is defined or not.

      • setAllowMultipleAllocations

        public void setAllowMultipleAllocations​(Boolean allowMultipleAllocations)
        AllowMultipleAllocations marks whether the device is allowed to be allocated to multiple DeviceRequests.


        If AllowMultipleAllocations is set to true, the device can be allocated more than once, and all of its capacity is consumable, regardless of whether the requestPolicy is defined or not.

      • getAttributes

        public Map<String,​DeviceAttribute> getAttributes()
        Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set.


        The maximum number of attributes and capacities combined is 32.

      • setAttributes

        public void setAttributes​(Map<String,​DeviceAttribute> attributes)
        Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set.


        The maximum number of attributes and capacities combined is 32.

      • getBindingConditions

        public List<String> getBindingConditions()
        BindingConditions defines the conditions for proceeding with binding. All of these conditions must be set in the per-device status conditions with a value of True to proceed with binding the pod to the node while scheduling the pod.


        The maximum number of binding conditions is 4.


        The conditions must be a valid condition type string.


        This is a beta field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.

      • setBindingConditions

        public void setBindingConditions​(List<String> bindingConditions)
        BindingConditions defines the conditions for proceeding with binding. All of these conditions must be set in the per-device status conditions with a value of True to proceed with binding the pod to the node while scheduling the pod.


        The maximum number of binding conditions is 4.


        The conditions must be a valid condition type string.


        This is a beta field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.

      • getBindingFailureConditions

        public List<String> getBindingFailureConditions()
        BindingFailureConditions defines the conditions for binding failure. They may be set in the per-device status conditions. If any is true, a binding failure occurred.


        The maximum number of binding failure conditions is 4.


        The conditions must be a valid condition type string.


        This is a beta field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.

      • setBindingFailureConditions

        public void setBindingFailureConditions​(List<String> bindingFailureConditions)
        BindingFailureConditions defines the conditions for binding failure. They may be set in the per-device status conditions. If any is true, a binding failure occurred.


        The maximum number of binding failure conditions is 4.


        The conditions must be a valid condition type string.


        This is a beta field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.

      • getBindsToNode

        public Boolean getBindsToNode()
        BindsToNode indicates if the usage of an allocation involving this device has to be limited to exactly the node that was chosen when allocating the claim. If set to true, the scheduler will set the ResourceClaim.Status.Allocation.NodeSelector to match the node where the allocation was made.


        This is a beta field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.

      • setBindsToNode

        public void setBindsToNode​(Boolean bindsToNode)
        BindsToNode indicates if the usage of an allocation involving this device has to be limited to exactly the node that was chosen when allocating the claim. If set to true, the scheduler will set the ResourceClaim.Status.Allocation.NodeSelector to match the node where the allocation was made.


        This is a beta field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates.

      • getCapacity

        public Map<String,​DeviceCapacity> getCapacity()
        Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set.


        The maximum number of attributes and capacities combined is 32.

      • setCapacity

        public void setCapacity​(Map<String,​DeviceCapacity> capacity)
        Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set.


        The maximum number of attributes and capacities combined is 32.

      • getConsumesCounters

        public List<DeviceCounterConsumption> getConsumesCounters()
        ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets.


        There can only be a single entry per counterSet.


        The maximum number of device counter consumptions per device is 2.

      • setConsumesCounters

        public void setConsumesCounters​(List<DeviceCounterConsumption> consumesCounters)
        ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets.


        There can only be a single entry per counterSet.


        The maximum number of device counter consumptions per device is 2.

      • getNodeAllocatableResourceMappings

        public Map<String,​NodeAllocatableResourceMapping> getNodeAllocatableResourceMappings()
        NodeAllocatableResourceMappings defines the mapping of node resources that are managed by the DRA driver exposing this device. This includes resources currently reported in v1.Node `status.allocatable` that are not extended resources (see https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#extended-resources). Examples include "cpu", "memory", "ephemeral-storage", and hugepages. In addition to standard requests made through the Pod `spec`, these resources can also be requested through claims and allocated by the DRA driver. For example, a CPU DRA driver might allocate exclusive CPUs or auxiliary node memory dependencies of an accelerator device. The keys of this map are the node-allocatable resource names (e.g., "cpu", "memory"). Extended resource names are not permitted as keys.
      • setNodeAllocatableResourceMappings

        public void setNodeAllocatableResourceMappings​(Map<String,​NodeAllocatableResourceMapping> nodeAllocatableResourceMappings)
        NodeAllocatableResourceMappings defines the mapping of node resources that are managed by the DRA driver exposing this device. This includes resources currently reported in v1.Node `status.allocatable` that are not extended resources (see https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#extended-resources). Examples include "cpu", "memory", "ephemeral-storage", and hugepages. In addition to standard requests made through the Pod `spec`, these resources can also be requested through claims and allocated by the DRA driver. For example, a CPU DRA driver might allocate exclusive CPUs or auxiliary node memory dependencies of an accelerator device. The keys of this map are the node-allocatable resource names (e.g., "cpu", "memory"). Extended resource names are not permitted as keys.
      • getNodeName

        public String getNodeName()
        NodeName identifies the node where the device is available.


        Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.

      • setNodeName

        public void setNodeName​(String nodeName)
        NodeName identifies the node where the device is available.


        Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set.

      • getNodeSelector

        public NodeSelector getNodeSelector()
        BasicDevice defines one device instance.
      • setNodeSelector

        public void setNodeSelector​(NodeSelector nodeSelector)
        BasicDevice defines one device instance.
      • getTaints

        public List<DeviceTaint> getTaints()
        If specified, these are the driver-defined taints.


        The maximum number of taints is 16. If taints are set for any device in a ResourceSlice, then the maximum number of allowed devices per ResourceSlice is 64 instead of 128.


        This is a beta field and requires enabling the DRADeviceTaints feature gate.

      • setTaints

        public void setTaints​(List<DeviceTaint> taints)
        If specified, these are the driver-defined taints.


        The maximum number of taints is 16. If taints are set for any device in a ResourceSlice, then the maximum number of allowed devices per ResourceSlice is 64 instead of 128.


        This is a beta field and requires enabling the DRADeviceTaints feature gate.

      • getAdditionalProperties

        public Map<String,​Object> getAdditionalProperties()
      • setAdditionalProperty

        public void setAdditionalProperty​(String name,
                                          Object value)
      • setAdditionalProperties

        public void setAdditionalProperties​(Map<String,​Object> additionalProperties)