pub struct ResourceSlice {
pub metadata: ObjectMeta,
pub spec: ResourceSliceSpec,
}
Expand description
ResourceSlice represents one or more resources in a pool of similar resources, managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many ResourceSlices comprise a pool is determined by the driver.
At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>.
Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others.
When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool.
For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available.
This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.
Fields§
§metadata: ObjectMeta
Standard object metadata
spec: ResourceSliceSpec
Contains the information published by the driver.
Changing the spec automatically increments the metadata.generation number.
Trait Implementations§
Source§impl Clone for ResourceSlice
impl Clone for ResourceSlice
Source§fn clone(&self) -> ResourceSlice
fn clone(&self) -> ResourceSlice
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ResourceSlice
impl Debug for ResourceSlice
Source§impl DeepMerge for ResourceSlice
impl DeepMerge for ResourceSlice
Source§fn merge_from(&mut self, other: Self)
fn merge_from(&mut self, other: Self)
other
into self
.Source§impl Default for ResourceSlice
impl Default for ResourceSlice
Source§fn default() -> ResourceSlice
fn default() -> ResourceSlice
Source§impl<'de> Deserialize<'de> for ResourceSlice
impl<'de> Deserialize<'de> for ResourceSlice
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 ListableResource for ResourceSlice
impl ListableResource for ResourceSlice
Source§impl Metadata for ResourceSlice
impl Metadata for ResourceSlice
Source§impl PartialEq for ResourceSlice
impl PartialEq for ResourceSlice
Source§impl Resource for ResourceSlice
impl Resource for ResourceSlice
Source§const API_VERSION: &'static str = "resource.k8s.io/v1alpha3"
const API_VERSION: &'static str = "resource.k8s.io/v1alpha3"
Resource::GROUP
and Resource::VERSION
(eg "apiextensions.k8s.io/v1beta1"
)
or just the version for resources without a group (eg "v1"
). Read more