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: ObjectMetaStandard object metadata
spec: ResourceSliceSpecContains 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 (const: unstable) · 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 JsonSchema for ResourceSlice
Available on crate feature schemars only.
impl JsonSchema for ResourceSlice
schemars only.Source§fn json_schema(__gen: &mut SchemaGenerator) -> Schema
fn json_schema(__gen: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§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§fn eq(&self, other: &ResourceSlice) -> bool
fn eq(&self, other: &ResourceSlice) -> bool
self and other values to be equal, and is used by ==.Source§impl Resource for ResourceSlice
impl Resource for ResourceSlice
Source§const API_VERSION: &'static str = "resource.k8s.io/v1beta1"
const API_VERSION: &'static str = "resource.k8s.io/v1beta1"
Resource::GROUP and Resource::VERSION (eg "apiextensions.k8s.io/v1beta1")
or just the version for resources without a group (eg "v1"). Read more