Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the scheduling v1alpha1 API group +kubebuilder:object:generate=true +groupName=scheduling.koordinator.sh
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type ConditionStatus
- type Device
- type DeviceAllocation
- type DeviceAllocationItem
- type DeviceInfo
- type DeviceList
- type DeviceSpec
- type DeviceStatus
- type DeviceTopology
- type DeviceType
- type PodMigrateReservationOptions
- type PodMigrationJob
- type PodMigrationJobCondition
- type PodMigrationJobConditionStatus
- type PodMigrationJobConditionType
- type PodMigrationJobList
- type PodMigrationJobMode
- type PodMigrationJobPhase
- type PodMigrationJobPreemptedReservation
- type PodMigrationJobPreemptionOptions
- type PodMigrationJobSpec
- type PodMigrationJobStatus
- type Reservation
- type ReservationAllocatePolicy
- type ReservationCondition
- type ReservationConditionType
- type ReservationControllerReference
- type ReservationList
- type ReservationOwner
- type ReservationPhase
- type ReservationSpec
- type ReservationStatus
- type ReservationTemplateSpec
- type VirtualFunction
- type VirtualFunctionGroup
Constants ¶
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.
const ( ReasonReservationScheduled = "Scheduled" ReasonReservationUnschedulable = "Unschedulable" ReasonReservationAvailable = "Available" ReasonReservationSucceeded = "Succeeded" ReasonReservationExpired = "Expired" )
Variables ¶
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Device.
func (*Device) DeepCopyInto ¶ added in v0.6.0
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
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
func (in *DeviceAllocationItem) DeepCopy() *DeviceAllocationItem
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
func (in *PodMigrateReservationOptions) DeepCopy() *PodMigrateReservationOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMigrateReservationOptions.
func (*PodMigrateReservationOptions) DeepCopyInto ¶ added in v0.6.0
func (in *PodMigrateReservationOptions) DeepCopyInto(out *PodMigrateReservationOptions)
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
func (in *PodMigrationJobCondition) DeepCopy() *PodMigrationJobCondition
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
func (in *PodMigrationJobPreemptedReservation) DeepCopy() *PodMigrationJobPreemptedReservation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMigrationJobPreemptedReservation.
func (*PodMigrationJobPreemptedReservation) DeepCopyInto ¶ added in v0.6.0
func (in *PodMigrationJobPreemptedReservation) DeepCopyInto(out *PodMigrationJobPreemptedReservation)
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
func (in *PodMigrationJobPreemptionOptions) DeepCopy() *PodMigrationJobPreemptionOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMigrationJobPreemptionOptions.
func (*PodMigrationJobPreemptionOptions) DeepCopyInto ¶ added in v0.6.0
func (in *PodMigrationJobPreemptionOptions) DeepCopyInto(out *PodMigrationJobPreemptionOptions)
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
func (in *PodMigrationJobStatus) DeepCopy() *PodMigrationJobStatus
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 ¶
func (in *ReservationCondition) DeepCopy() *ReservationCondition
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 ¶
func (in *ReservationControllerReference) DeepCopy() *ReservationControllerReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReservationControllerReference.
func (*ReservationControllerReference) DeepCopyInto ¶
func (in *ReservationControllerReference) DeepCopyInto(out *ReservationControllerReference)
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
func (in *ReservationTemplateSpec) DeepCopy() *ReservationTemplateSpec
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
func (in *VirtualFunctionGroup) DeepCopy() *VirtualFunctionGroup
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.