UNPKG

kubernetes-models

Version:
45 lines (44 loc) 3.06 kB
import { ModelData, Model } from "@kubernetes-models/base"; /** * DeviceConstraint must have exactly one field set besides Requests. */ export interface IDeviceConstraint { /** * DistinctAttribute requires that all devices in question have this attribute and that its type and value are unique across those devices. * * When the DRAListTypeAttributes feature gate is enabled, comparison uses set semantics (i.e., element order and duplicates are ignored): list-valued attributes must be pairwise disjoint across devices. Scalar values are treated as singleton sets for backward compatibility. * * This acts as the inverse of MatchAttribute. * * This constraint is used to avoid allocating multiple requests to the same device by ensuring attribute-level differentiation. * * This is useful for scenarios where resource requests must be fulfilled by separate physical devices. For example, a container requests two network interfaces that must be allocated from two different physical NICs. */ "distinctAttribute"?: string; /** * MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. * * For example, if you specified "dra.example.com/numa" (a hypothetical example!), then only devices in the same NUMA node will be chosen. A device which does not have that attribute will not be chosen. All devices should use a value of the same type for this attribute because that is part of its specification, but if one device doesn't, then it also will not be chosen. * * When the DRAListTypeAttributes feature gate is enabled, comparison uses set semantics(i.e., element order and duplicates are ignored): list-valued attributes match when the intersection across all devices is non-empty. Scalar values are treated as single-element lists for backward compatibility. * * Must include the domain qualifier. */ "matchAttribute"?: string; /** * Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim. * * References to subrequests must include the name of the main request and may include the subrequest using the format <main request>[/<subrequest>]. If just the main request is given, the constraint applies to all subrequests. */ "requests"?: Array<string>; } /** * DeviceConstraint must have exactly one field set besides Requests. */ export declare class DeviceConstraint extends Model<IDeviceConstraint> implements IDeviceConstraint { "distinctAttribute"?: string; "matchAttribute"?: string; "requests"?: Array<string>; constructor(data?: ModelData<IDeviceConstraint>); } export type { IDeviceConstraint as IIoK8sApiResourceV1DeviceConstraint, DeviceConstraint as IoK8sApiResourceV1DeviceConstraint };