v1alpha1

package
v1.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 3, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the scheduling v1alpha1 API group +kubebuilder:object:generate=true +groupName=scheduling.koordinator.sh

Index

Constants

View Source
const (
	PodMigrationJobReasonTimeout                   = "Timeout"
	PodMigrationJobReasonFailedCreateReservation   = "FailedCreateReservation"
	PodMigrationJobReasonReservationExpired        = "ReservationExpired"
	PodMigrationJobReasonUnschedulable             = "Unschedulable"
	PodMigrationJobReasonForbiddenMigratePod       = "ForbiddenMigratePod"
	PodMigrationJobReasonMissingPod                = "MissingPod"
	PodMigrationJobReasonMissingReservation        = "MissingReservation"
	PodMigrationJobReasonPreempting                = "Preempting"
	PodMigrationJobReasonPreemptComplete           = "PreemptComplete"
	PodMigrationJobReasonEvicting                  = "Evicting"
	PodMigrationJobReasonFailedEvict               = "FailedEvict"
	PodMigrationJobReasonEvictComplete             = "EvictComplete"
	PodMigrationJobReasonWaitForPodBindReservation = "WaitForPodBindReservation"
	PodMigrationJobReasonWaitForBoundPodReady      = "WaitForBoundPodReady"
)

These are valid reasons of PodMigrationJob.

View Source
const (
	ReasonReservationScheduled     = "Scheduled"
	ReasonReservationUnschedulable = "Unschedulable"

	ReasonReservationAvailable = "Available"
	ReasonReservationSucceeded = "Succeeded"
	ReasonReservationExpired   = "Expired"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "scheduling.koordinator.sh", Version: "v1alpha1"}

	SchemeGroupVersion = GroupVersion

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource is required by pkg/client/listers/...

Types

type ConditionStatus added in v0.6.0

type ConditionStatus string
const (
	ConditionStatusTrue    ConditionStatus = "True"
	ConditionStatusFalse   ConditionStatus = "False"
	ConditionStatusUnknown ConditionStatus = "Unknown"
)

type Device added in v0.6.0

type Device struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   DeviceSpec   `json:"spec,omitempty"`
	Status DeviceStatus `json:"status,omitempty"`
}

func (*Device) DeepCopy added in v0.6.0

func (in *Device) DeepCopy() *Device

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Device.

func (*Device) DeepCopyInto added in v0.6.0

func (in *Device) DeepCopyInto(out *Device)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Device) DeepCopyObject added in v0.6.0

func (in *Device) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DeviceAllocation added in v0.6.0

type DeviceAllocation struct {
	Type    DeviceType             `json:"type,omitempty"`
	Entries []DeviceAllocationItem `json:"entries,omitempty"`
}

func (*DeviceAllocation) DeepCopy added in v0.6.0

func (in *DeviceAllocation) DeepCopy() *DeviceAllocation

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceAllocation.

func (*DeviceAllocation) DeepCopyInto added in v0.6.0

func (in *DeviceAllocation) DeepCopyInto(out *DeviceAllocation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceAllocationItem added in v0.6.0

type DeviceAllocationItem struct {
	Name      string  `json:"name,omitempty"`
	Namespace string  `json:"namespace,omitempty"`
	UUID      string  `json:"uuid,omitempty"`
	Minors    []int32 `json:"minors,omitempty"`
}

func (*DeviceAllocationItem) DeepCopy added in v0.6.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceAllocationItem.

func (*DeviceAllocationItem) DeepCopyInto added in v0.6.0

func (in *DeviceAllocationItem) DeepCopyInto(out *DeviceAllocationItem)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceInfo added in v0.6.0

type DeviceInfo struct {
	// Type represents the type of device
	Type DeviceType `json:"type,omitempty"`
	// Labels represents the device properties that can be used to organize and categorize (scope and select) objects
	Labels map[string]string `json:"labels,omitempty"`
	// UUID represents the UUID of device
	UUID string `json:"id,omitempty"`
	// Minor represents the Minor number of Device, starting from 0
	Minor *int32 `json:"minor,omitempty"`
	// ModuleID represents the physical id of Device
	ModuleID *int32 `json:"moduleID,omitempty"`
	// Health indicates whether the device is normal
	// +kubebuilder:default=false
	Health bool `json:"health"`
	// Resources is a set of (resource name, quantity) pairs
	Resources corev1.ResourceList `json:"resources,omitempty"`
	// Topology represents the topology information about the device
	Topology *DeviceTopology `json:"topology,omitempty"`
	// VFGroups represents the virtual function devices
	VFGroups []VirtualFunctionGroup `json:"vfGroups,omitempty"`
}

func (*DeviceInfo) DeepCopy added in v0.6.0

func (in *DeviceInfo) DeepCopy() *DeviceInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceInfo.

func (*DeviceInfo) DeepCopyInto added in v0.6.0

func (in *DeviceInfo) DeepCopyInto(out *DeviceInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceList added in v0.6.0

type DeviceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []Device `json:"items"`
}

func (*DeviceList) DeepCopy added in v0.6.0

func (in *DeviceList) DeepCopy() *DeviceList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceList.

func (*DeviceList) DeepCopyInto added in v0.6.0

func (in *DeviceList) DeepCopyInto(out *DeviceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DeviceList) DeepCopyObject added in v0.6.0

func (in *DeviceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DeviceSpec added in v0.6.0

type DeviceSpec struct {
	Devices []DeviceInfo `json:"devices,omitempty"`
}

func (*DeviceSpec) DeepCopy added in v0.6.0

func (in *DeviceSpec) DeepCopy() *DeviceSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceSpec.

func (*DeviceSpec) DeepCopyInto added in v0.6.0

func (in *DeviceSpec) DeepCopyInto(out *DeviceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceStatus added in v0.6.0

type DeviceStatus struct {
	Allocations []DeviceAllocation `json:"allocations,omitempty"`
}

func (*DeviceStatus) DeepCopy added in v0.6.0

func (in *DeviceStatus) DeepCopy() *DeviceStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceStatus.

func (*DeviceStatus) DeepCopyInto added in v0.6.0

func (in *DeviceStatus) DeepCopyInto(out *DeviceStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceTopology added in v1.3.0

type DeviceTopology struct {
	// SocketID is the ID of CPU Socket to which the device belongs
	SocketID int32 `json:"socketID"`
	// NodeID is the ID of NUMA Node to which the device belongs, it should be unique across different CPU Sockets
	NodeID int32 `json:"nodeID"`
	// PCIEID is the ID of PCIE Switch to which the device is connected, it should be unique across difference NUMANodes
	PCIEID string `json:"pcieID"`
	// BusID is the domain:bus:device.function formatted identifier of PCI/PCIE device
	BusID string `json:"busID,omitempty"`
}

func (*DeviceTopology) DeepCopy added in v1.3.0

func (in *DeviceTopology) DeepCopy() *DeviceTopology

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceTopology.

func (*DeviceTopology) DeepCopyInto added in v1.3.0

func (in *DeviceTopology) DeepCopyInto(out *DeviceTopology)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceType added in v0.6.0

type DeviceType string
const (
	GPU  DeviceType = "gpu"
	FPGA DeviceType = "fpga"
	RDMA DeviceType = "rdma"
)

type PodMigrateReservationOptions added in v0.6.0

type PodMigrateReservationOptions struct {
	// ReservationRef if specified, PodMigrationJob will check if the status of Reservation is available.
	// ReservationRef if not specified, PodMigrationJob controller will create Reservation by Template,
	// and update the ReservationRef to reference the Reservation
	// +optional
	ReservationRef *corev1.ObjectReference `json:"reservationRef,omitempty"`

	// Template is the object that describes the Reservation that will be created if not specified ReservationRef
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	// +optional
	Template *ReservationTemplateSpec `json:"template,omitempty"`

	// PreemptionOption decides whether to preempt other Pods.
	// The preemption is safe and reserves resources for preempted Pods.
	// +optional
	PreemptionOptions *PodMigrationJobPreemptionOptions `json:"preemptionOptions,omitempty"`
}

func (*PodMigrateReservationOptions) DeepCopy added in v0.6.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMigrateReservationOptions.

func (*PodMigrateReservationOptions) DeepCopyInto added in v0.6.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodMigrationJob added in v0.6.0

type PodMigrationJob struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PodMigrationJobSpec   `json:"spec,omitempty"`
	Status PodMigrationJobStatus `json:"status,omitempty"`
}

func (*PodMigrationJob) DeepCopy added in v0.6.0

func (in *PodMigrationJob) DeepCopy() *PodMigrationJob

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMigrationJob.

func (*PodMigrationJob) DeepCopyInto added in v0.6.0

func (in *PodMigrationJob) DeepCopyInto(out *PodMigrationJob)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PodMigrationJob) DeepCopyObject added in v0.6.0

func (in *PodMigrationJob) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PodMigrationJobCondition added in v0.6.0

type PodMigrationJobCondition struct {
	// Type is the type of the condition.
	Type PodMigrationJobConditionType `json:"type"`
	// Status is the status of the condition.
	// Can be True, False, Unknown.
	Status PodMigrationJobConditionStatus `json:"status"`
	// Last time we probed the condition.
	// +nullable
	LastProbeTime metav1.Time `json:"lastProbeTime,omitempty"`
	// Last time the condition transitioned from one status to another.
	// +nullable
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// Unique, one-word, CamelCase reason for the condition's last transition.
	Reason string `json:"reason,omitempty"`
	// Human-readable message indicating details about last transition.
	Message string `json:"message,omitempty"`
}

func (*PodMigrationJobCondition) DeepCopy added in v0.6.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMigrationJobCondition.

func (*PodMigrationJobCondition) DeepCopyInto added in v0.6.0

func (in *PodMigrationJobCondition) DeepCopyInto(out *PodMigrationJobCondition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodMigrationJobConditionStatus added in v0.6.0

type PodMigrationJobConditionStatus string
const (
	PodMigrationJobConditionStatusTrue    PodMigrationJobConditionStatus = "True"
	PodMigrationJobConditionStatusFalse   PodMigrationJobConditionStatus = "False"
	PodMigrationJobConditionStatusUnknown PodMigrationJobConditionStatus = "Unknown"
)

type PodMigrationJobConditionType added in v0.6.0

type PodMigrationJobConditionType string
const (
	PodMigrationJobConditionReservationCreated             PodMigrationJobConditionType = "ReservationCreated"
	PodMigrationJobConditionReservationScheduled           PodMigrationJobConditionType = "ReservationScheduled"
	PodMigrationJobConditionPreemption                     PodMigrationJobConditionType = "Preemption"
	PodMigrationJobConditionEviction                       PodMigrationJobConditionType = "Eviction"
	PodMigrationJobConditionPodScheduled                   PodMigrationJobConditionType = "PodScheduled"
	PodMigrationJobConditionReservationPodBoundReservation PodMigrationJobConditionType = "PodBoundReservation"
	PodMigrationJobConditionBoundPodReady                  PodMigrationJobConditionType = "BoundPodReady"
	PodMigrationJobConditionReservationBound               PodMigrationJobConditionType = "ReservationBound"
)

These are valid conditions of PodMigrationJob.

type PodMigrationJobList added in v0.6.0

type PodMigrationJobList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PodMigrationJob `json:"items"`
}

PodMigrationJobList contains a list of PodMigrationJob

func (*PodMigrationJobList) DeepCopy added in v0.6.0

func (in *PodMigrationJobList) DeepCopy() *PodMigrationJobList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMigrationJobList.

func (*PodMigrationJobList) DeepCopyInto added in v0.6.0

func (in *PodMigrationJobList) DeepCopyInto(out *PodMigrationJobList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PodMigrationJobList) DeepCopyObject added in v0.6.0

func (in *PodMigrationJobList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PodMigrationJobMode added in v0.6.0

type PodMigrationJobMode string
const (
	PodMigrationJobModeReservationFirst PodMigrationJobMode = "ReservationFirst"
	PodMigrationJobModeEvictionDirectly PodMigrationJobMode = "EvictDirectly"
)

type PodMigrationJobPhase added in v0.6.0

type PodMigrationJobPhase string
const (
	// PodMigrationJobPending represents the initial status
	PodMigrationJobPending PodMigrationJobPhase = "Pending"
	// PodMigrationJobRunning represents the PodMigrationJob is being processed
	PodMigrationJobRunning PodMigrationJobPhase = "Running"
	// PodMigrationJobSucceeded represents the PodMigrationJob processed successfully
	PodMigrationJobSucceeded PodMigrationJobPhase = "Succeeded"
	// PodMigrationJobFailed represents the PodMigrationJob process failed caused by Timeout, Reservation failed, etc.
	PodMigrationJobFailed PodMigrationJobPhase = "Failed"
	// PodMigrationJobAborted represents the user forcefully aborted the PodMigrationJob.
	PodMigrationJobAborted PodMigrationJobPhase = "Aborted"
)

type PodMigrationJobPreemptedReservation added in v0.6.0

type PodMigrationJobPreemptedReservation struct {
	// Namespace represents the namespace of Reservation
	Namespace string `json:"namespace,omitempty"`
	// Name represents the name of Reservation
	Name string `json:"name,omitempty"`
	// NodeName represents the assigned node for Reservation by scheduler
	NodeName string `json:"nodeName,omitempty"`
	// Phase represents the Phase of Reservation
	Phase string `json:"phase,omitempty"`
	// PreemptedPodRef represents the Pod that be preempted
	PreemptedPodRef *corev1.ObjectReference `json:"preemptedPodRef,omitempty"`
	// PodsRef represents the newly created Pods after being preempted
	PodsRef []corev1.ObjectReference `json:"podsRef,omitempty"`
}

func (*PodMigrationJobPreemptedReservation) DeepCopy added in v0.6.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMigrationJobPreemptedReservation.

func (*PodMigrationJobPreemptedReservation) DeepCopyInto added in v0.6.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodMigrationJobPreemptionOptions added in v0.6.0

type PodMigrationJobPreemptionOptions struct {
}

func (*PodMigrationJobPreemptionOptions) DeepCopy added in v0.6.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMigrationJobPreemptionOptions.

func (*PodMigrationJobPreemptionOptions) DeepCopyInto added in v0.6.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodMigrationJobSpec added in v0.6.0

type PodMigrationJobSpec struct {
	// Paused indicates whether the PodMigrationJob should to work or not.
	// Default is false
	// +optional
	Paused bool `json:"paused,omitempty"`

	// TTL controls the PodMigrationJob timeout duration.
	// +optional
	TTL *metav1.Duration `json:"ttl,omitempty"`

	// Mode represents the operating mode of the Job
	// Default is PodMigrationJobModeReservationFirst
	// +optional
	Mode PodMigrationJobMode `json:"mode,omitempty"`

	// PodRef represents the Pod that be migrated
	// +required
	PodRef *corev1.ObjectReference `json:"podRef"`

	// ReservationOptions defines the Reservation options for migrated Pod
	// +optional
	ReservationOptions *PodMigrateReservationOptions `json:"reservationOptions,omitempty"`

	// DeleteOptions defines the deleting options for the migrated Pod and preempted Pods
	// +optional
	DeleteOptions *metav1.DeleteOptions `json:"deleteOptions,omitempty"`
}

func (*PodMigrationJobSpec) DeepCopy added in v0.6.0

func (in *PodMigrationJobSpec) DeepCopy() *PodMigrationJobSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMigrationJobSpec.

func (*PodMigrationJobSpec) DeepCopyInto added in v0.6.0

func (in *PodMigrationJobSpec) DeepCopyInto(out *PodMigrationJobSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodMigrationJobStatus added in v0.6.0

type PodMigrationJobStatus struct {
	// PodMigrationJobPhase represents the phase of a PodMigrationJob is a simple, high-level summary of where the PodMigrationJob is in its lifecycle.
	// e.g. Pending/Running/Failed
	Phase PodMigrationJobPhase `json:"phase,omitempty"`
	// Status represents the current status of PodMigrationJob
	// e.g. ReservationCreated
	Status string `json:"status,omitempty"`
	// Reason represents a brief CamelCase message indicating details about why the PodMigrationJob is in this state.
	Reason string `json:"reason,omitempty"`
	// Message represents a human-readable message indicating details about why the PodMigrationJob is in this state.
	Message string `json:"message,omitempty"`
	// Conditions records the stats of PodMigrationJob
	Conditions []PodMigrationJobCondition `json:"conditions,omitempty"`
	// NodeName represents the node's name of migrated Pod
	NodeName string `json:"nodeName,omitempty"`
	// PodRef represents the newly created Pod after being migrated
	PodRef *corev1.ObjectReference `json:"podRef,omitempty"`
	// PreemptedPodsRef represents the Pods that be preempted
	PreemptedPodsRef []corev1.ObjectReference `json:"preemptedPodsRef,omitempty"`
	// PreemptedPodsReservations records information about Reservations created due to preemption
	PreemptedPodsReservations []PodMigrationJobPreemptedReservation `json:"preemptedPodsReservation,omitempty"`
}

func (*PodMigrationJobStatus) DeepCopy added in v0.6.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMigrationJobStatus.

func (*PodMigrationJobStatus) DeepCopyInto added in v0.6.0

func (in *PodMigrationJobStatus) DeepCopyInto(out *PodMigrationJobStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Reservation

type Reservation struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ReservationSpec   `json:"spec,omitempty"`
	Status ReservationStatus `json:"status,omitempty"`
}

Reservation is the Schema for the reservation API. A Reservation object is non-namespaced. Any namespaced affinity/anti-affinity of reservation scheduling can be specified in the spec.template.

func (*Reservation) DeepCopy

func (in *Reservation) DeepCopy() *Reservation

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Reservation.

func (*Reservation) DeepCopyInto

func (in *Reservation) DeepCopyInto(out *Reservation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Reservation) DeepCopyObject

func (in *Reservation) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ReservationAllocatePolicy added in v1.3.0

type ReservationAllocatePolicy string
const (
	// ReservationAllocatePolicyDefault means that there is no restriction on the policy of reserved resources,
	// and allocated from the Reservation first, and if it is insufficient, it is allocated from the node.
	ReservationAllocatePolicyDefault ReservationAllocatePolicy = ""
	// ReservationAllocatePolicyAligned indicates that the Pod allocates resources from the Reservation first.
	// If the remaining resources of the Reservation are insufficient, it can be allocated from the node,
	// but it is required to strictly follow the resource specifications of the Pod.
	// This can be used to avoid the problem that a Pod uses multiple Reservations at the same time.
	ReservationAllocatePolicyAligned ReservationAllocatePolicy = "Aligned"
	// ReservationAllocatePolicyRestricted means that the resources
	// requested by the Pod overlap with the resources reserved by the Reservation,
	// then these intersection resources can only be allocated from the Reservation,
	// but resources declared in Pods but not reserved in Reservations can be allocated from Nodes.
	// ReservationAllocatePolicyRestricted includes the semantics of ReservationAllocatePolicyAligned.
	ReservationAllocatePolicyRestricted ReservationAllocatePolicy = "Restricted"
)

type ReservationCondition

type ReservationCondition struct {
	Type               ReservationConditionType `json:"type,omitempty"`
	Status             ConditionStatus          `json:"status,omitempty"`
	Reason             string                   `json:"reason,omitempty"`
	Message            string                   `json:"message,omitempty"`
	LastProbeTime      metav1.Time              `json:"lastProbeTime,omitempty"`
	LastTransitionTime metav1.Time              `json:"lastTransitionTime,omitempty"`
}

func (*ReservationCondition) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReservationCondition.

func (*ReservationCondition) DeepCopyInto

func (in *ReservationCondition) DeepCopyInto(out *ReservationCondition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReservationConditionType added in v0.6.0

type ReservationConditionType string
const (
	ReservationConditionScheduled ReservationConditionType = "Scheduled"
	ReservationConditionReady     ReservationConditionType = "Ready"
)

type ReservationControllerReference

type ReservationControllerReference struct {
	// Extend with a `namespace` field for reference different namespaces.
	metav1.OwnerReference `json:",inline"`
	Namespace             string `json:"namespace,omitempty"`
}

func (*ReservationControllerReference) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReservationControllerReference.

func (*ReservationControllerReference) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReservationList

type ReservationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Reservation `json:"items"`
}

ReservationList contains a list of Reservation

func (*ReservationList) DeepCopy

func (in *ReservationList) DeepCopy() *ReservationList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReservationList.

func (*ReservationList) DeepCopyInto

func (in *ReservationList) DeepCopyInto(out *ReservationList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ReservationList) DeepCopyObject

func (in *ReservationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ReservationOwner

type ReservationOwner struct {
	// Multiple field selectors are ANDed.
	// +optional
	Object *corev1.ObjectReference `json:"object,omitempty"`
	// +optional
	Controller *ReservationControllerReference `json:"controller,omitempty"`
	// +optional
	LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"`
}

ReservationOwner indicates the owner specification which can allocate reserved resources. +kubebuilder:validation:MinProperties=1

func (*ReservationOwner) DeepCopy

func (in *ReservationOwner) DeepCopy() *ReservationOwner

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReservationOwner.

func (*ReservationOwner) DeepCopyInto

func (in *ReservationOwner) DeepCopyInto(out *ReservationOwner)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReservationPhase

type ReservationPhase string
const (
	// ReservationPending indicates the Reservation has not been processed by the scheduler or is unschedulable for
	// some reasons (e.g. the resource requirements cannot get satisfied).
	ReservationPending ReservationPhase = "Pending"
	// ReservationAvailable indicates the Reservation is both scheduled and available for allocation.
	ReservationAvailable ReservationPhase = "Available"
	// ReservationSucceeded indicates the Reservation is scheduled and allocated for a owner, but not allocatable anymore.
	ReservationSucceeded ReservationPhase = "Succeeded"
	// ReservationWaiting indicates the Reservation is scheduled, but the resources to reserve are not ready for
	// allocation (e.g. in pre-allocation for running pods).
	ReservationWaiting ReservationPhase = "Waiting"
	// ReservationFailed indicates the Reservation is failed to reserve resources, due to expiration or marked as
	// unavailable, which the object is not available to allocate and will get cleaned in the future.
	ReservationFailed ReservationPhase = "Failed"
)

type ReservationSpec

type ReservationSpec struct {

	// Template defines the scheduling requirements (resources, affinities, images, ...) processed by the scheduler just
	// like a normal pod.
	// If the `template.spec.nodeName` is specified, the scheduler will not choose another node but reserve resources on
	// the specified node.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:validation:Required
	Template *corev1.PodTemplateSpec `json:"template"`
	// Specify the owners who can allocate the reserved resources.
	// Multiple owner selectors and ORed.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	Owners []ReservationOwner `json:"owners"`
	// Time-to-Live period for the reservation.
	// `expires` and `ttl` are mutually exclusive. Defaults to 24h. Set 0 to disable expiration.
	// +kubebuilder:default="24h"
	// +optional
	TTL *metav1.Duration `json:"ttl,omitempty"`
	// Expired timestamp when the reservation is expected to expire.
	// If both `expires` and `ttl` are set, `expires` is checked first.
	// `expires` and `ttl` are mutually exclusive. Defaults to being set dynamically at runtime based on the `ttl`.
	// +optional
	Expires *metav1.Time `json:"expires,omitempty"`
	// By default, the resources requirements of reservation (specified in `template.spec`) is filtered by whether the
	// node has sufficient free resources (i.e. Reservation Request <  Node Free).
	// When `preAllocation` is set, the scheduler will skip this validation and allow overcommitment. The scheduled
	// reservation would be waiting to be available until free resources are sufficient.
	// +optional
	PreAllocation bool `json:"preAllocation,omitempty"`
	// When `AllocateOnce` is set, the reserved resources are only available for the first owner who allocates successfully
	// and are not allocatable to other owners anymore. Defaults to true.
	// +kubebuilder:default=true
	// +optional
	AllocateOnce *bool `json:"allocateOnce,omitempty"`
	// AllocatePolicy represents the allocation policy of reserved resources that Reservation expects.
	// +kubebuilder:validation:Enum=Aligned;Restricted
	// +optional
	AllocatePolicy ReservationAllocatePolicy `json:"allocatePolicy,omitempty"`
	// Unschedulable controls reservation schedulability of new pods. By default, reservation is schedulable.
	// +optional
	Unschedulable bool `json:"unschedulable,omitempty"`
}

func (*ReservationSpec) DeepCopy

func (in *ReservationSpec) DeepCopy() *ReservationSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReservationSpec.

func (*ReservationSpec) DeepCopyInto

func (in *ReservationSpec) DeepCopyInto(out *ReservationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReservationStatus

type ReservationStatus struct {

	// The `phase` indicates whether is reservation is waiting for process, available to allocate or failed/expired to
	// get cleanup.
	// +optional
	Phase ReservationPhase `json:"phase,omitempty"`
	// The `conditions` indicate the messages of reason why the reservation is still pending.
	// +optional
	Conditions []ReservationCondition `json:"conditions,omitempty"`
	// Current resource owners which allocated the reservation resources.
	// +optional
	CurrentOwners []corev1.ObjectReference `json:"currentOwners,omitempty"`
	// Name of node the reservation is scheduled on.
	// +optional
	NodeName string `json:"nodeName,omitempty"`
	// Resource reserved and allocatable for owners.
	// +optional
	Allocatable corev1.ResourceList `json:"allocatable,omitempty"`
	// Resource allocated by current owners.
	// +optional
	Allocated corev1.ResourceList `json:"allocated,omitempty"`
}

func (*ReservationStatus) DeepCopy

func (in *ReservationStatus) DeepCopy() *ReservationStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReservationStatus.

func (*ReservationStatus) DeepCopyInto

func (in *ReservationStatus) DeepCopyInto(out *ReservationStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReservationTemplateSpec added in v0.6.0

type ReservationTemplateSpec struct {
	// Standard object's metadata.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired behavior of the Reservation.
	// +optional
	Spec ReservationSpec `json:"spec,omitempty"`
}

ReservationTemplateSpec describes the data a Reservation should have when created from a template

func (*ReservationTemplateSpec) DeepCopy added in v0.6.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReservationTemplateSpec.

func (*ReservationTemplateSpec) DeepCopyInto added in v0.6.0

func (in *ReservationTemplateSpec) DeepCopyInto(out *ReservationTemplateSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VirtualFunction added in v1.3.0

type VirtualFunction struct {
	// Minor represents the Minor number of VirtualFunction, starting from 0, used to identify virtual function.
	Minor int32 `json:"minor"`
	// BusID is the domain:bus:device.function formatted identifier of PCI/PCIE virtual function device
	BusID string `json:"busID,omitempty"`
}

func (*VirtualFunction) DeepCopy added in v1.3.0

func (in *VirtualFunction) DeepCopy() *VirtualFunction

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualFunction.

func (*VirtualFunction) DeepCopyInto added in v1.3.0

func (in *VirtualFunction) DeepCopyInto(out *VirtualFunction)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VirtualFunctionGroup added in v1.3.0

type VirtualFunctionGroup struct {
	// Labels represents the Virtual Function properties that can be used to organize and categorize (scope and select) objects
	Labels map[string]string `json:"labels,omitempty"`
	// VFs are the virtual function devices which belong to the group
	VFs []VirtualFunction `json:"vfs,omitempty"`
}

func (*VirtualFunctionGroup) DeepCopy added in v1.3.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualFunctionGroup.

func (*VirtualFunctionGroup) DeepCopyInto added in v1.3.0

func (in *VirtualFunctionGroup) DeepCopyInto(out *VirtualFunctionGroup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL