kubernetes-models
Version:
51 lines (50 loc) • 4.16 kB
TypeScript
import { IIoK8sApimachineryPkgApisMetaV1ObjectMeta } from "@kubernetes-models/apimachinery/apis/meta/v1/ObjectMeta";
import { IIoK8sApiResourceV1ResourceSliceSpec } from "./ResourceSliceSpec.js";
import { ModelData, TypeMeta, Model } from "@kubernetes-models/base";
/**
* 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.
*/
export interface IResourceSlice extends TypeMeta {
"apiVersion": "resource.k8s.io/v1";
"kind": "ResourceSlice";
/**
* Standard object metadata
*/
"metadata"?: IIoK8sApimachineryPkgApisMetaV1ObjectMeta;
/**
* Contains the information published by the driver.
*
* Changing the spec automatically increments the metadata.generation number.
*/
"spec": IIoK8sApiResourceV1ResourceSliceSpec;
}
/**
* 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.
*/
export declare class ResourceSlice extends Model<IResourceSlice> implements IResourceSlice {
"apiVersion": IResourceSlice["apiVersion"];
"kind": IResourceSlice["kind"];
"metadata"?: IIoK8sApimachineryPkgApisMetaV1ObjectMeta;
"spec": IIoK8sApiResourceV1ResourceSliceSpec;
static apiVersion: IResourceSlice["apiVersion"];
static kind: IResourceSlice["kind"];
static is: import("@kubernetes-models/base").TypeMetaGuard<IResourceSlice>;
constructor(data?: ModelData<IResourceSlice>);
}
export type { IResourceSlice as IIoK8sApiResourceV1ResourceSlice, ResourceSlice as IoK8sApiResourceV1ResourceSlice };