v1

package
v0.4.17-0rc0 Latest Latest
Warning

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

Go to latest
Published: Aug 28, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package v1 contains API Schema definitions for the nodetopology v1 API group +kubebuilder:object:generate=true +groupName=nodetopology.openshift.io

Index

Constants

View Source
const (
	Separator = '/'
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "nodetopology.openshift.io", Version: "v1"}

	// 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

	// SchemeGroupVersion is DEPRECATED, needed for the client generation
	SchemeGroupVersion = GroupVersion
)

Functions

func CloneTolerations

func CloneTolerations(tols []corev1.Toleration) []corev1.Toleration

func SetDefaults_NUMAResourcesSchedulerSpec

func SetDefaults_NUMAResourcesSchedulerSpec(spec *NUMAResourcesSchedulerSpec)

func SortedTolerations

func SortedTolerations(tols []corev1.Toleration) []corev1.Toleration

SortedTolerations return a sorted clone of the provided toleration slice

Types

type CacheResyncDebugMode

type CacheResyncDebugMode string

+kubebuilder:validation:Enum=Disabled;DumpJSONFile

const (
	// CacheResyncDisabled disables additional report of the scheduler cache state.
	CacheResyncDebugDisabled CacheResyncDebugMode = "Disabled"

	// CacheResyncDumpJSONFile makes the scheduler cache dump its internal state as JSON at each failed resync. Default.
	CacheResyncDebugDumpJSONFile CacheResyncDebugMode = "DumpJSONFile"
)

type CacheResyncDetectionMode

type CacheResyncDetectionMode string

+kubebuilder:validation:Enum=Relaxed;Aggressive

const (
	// CacheResyncDetectionRelaxed makes the NodeResourceTopologyMatch plugin reconcile the node state only when detecting guaranteed QoS pods request NUMA-specific resources.
	CacheResyncDetectionRelaxed CacheResyncDetectionMode = "Relaxed"

	// CacheResyncDetectionRelaxed makes the NodeResourceTopologyMatch plugin reconcile the node state when detecting any guaranteed QoS pods.
	CacheResyncDetectionAggressive CacheResyncDetectionMode = "Aggressive"
)

type InfoRefreshMode

type InfoRefreshMode string

+kubebuilder:validation:Enum=Periodic;Events;PeriodicAndEvents

const (
	// InfoRefreshPeriodic is the default. Periodically polls the state and reports it.
	InfoRefreshPeriodic InfoRefreshMode = "Periodic"

	// InfoRefreshEvents reports a new state each time a pod lifecycle event is received.
	InfoRefreshEvents InfoRefreshMode = "Events"

	// InfoRefreshPeriodicAndEvents enables both periodic and event-based reporting.
	InfoRefreshPeriodicAndEvents InfoRefreshMode = "PeriodicAndEvents"
)

type InfoRefreshPauseMode

type InfoRefreshPauseMode string

+kubebuilder:validation:Enum=Disabled;Enabled

const (
	// InfoRefreshPauseDisabled enables RTE and NRT sync
	InfoRefreshPauseDisabled InfoRefreshPauseMode = "Disabled"

	// InfoRefreshPauseEnabled pauses RTE and disables the NRT sync
	InfoRefreshPauseEnabled InfoRefreshPauseMode = "Enabled"
)

type MachineConfigPool

type MachineConfigPool struct {
	// Name the name of the machine config pool
	Name string `json:"name"`
	// Conditions represents the latest available observations of MachineConfigPool current state.
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="Optional conditions reported for this NodeGroup"
	Conditions []mcov1.MachineConfigPoolCondition `json:"conditions,omitempty"`
	// NodeGroupConfig represents the latest available configuration applied to this MachineConfigPool
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="Optional configuration enforced on this NodeGroup"
	Config *NodeGroupConfig `json:"config,omitempty"`
}

MachineConfigPool defines the observed state of each MachineConfigPool selected by node groups

func (*MachineConfigPool) DeepCopy

func (in *MachineConfigPool) DeepCopy() *MachineConfigPool

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

func (*MachineConfigPool) DeepCopyInto

func (in *MachineConfigPool) DeepCopyInto(out *MachineConfigPool)

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

type NUMAResourcesOperator

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

	Spec   NUMAResourcesOperatorSpec   `json:"spec,omitempty"`
	Status NUMAResourcesOperatorStatus `json:"status,omitempty"`
}

NUMAResourcesOperator is the Schema for the numaresourcesoperators API +operator-sdk:csv:customresourcedefinitions:displayName="NUMA Resources Operator",resources={{DaemonSet,v1,rte-daemonset,ConfigMap,v1,rte-configmap}}

func (*NUMAResourcesOperator) DeepCopy

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

func (*NUMAResourcesOperator) DeepCopyInto

func (in *NUMAResourcesOperator) DeepCopyInto(out *NUMAResourcesOperator)

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

func (*NUMAResourcesOperator) DeepCopyObject

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

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

func (*NUMAResourcesOperator) Hub

func (*NUMAResourcesOperator) Hub()

Hub marks this type as a conversion hub.

type NUMAResourcesOperatorList

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

NUMAResourcesOperatorList contains a list of NUMAResourcesOperator

func (*NUMAResourcesOperatorList) DeepCopy

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

func (*NUMAResourcesOperatorList) DeepCopyInto

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

func (*NUMAResourcesOperatorList) DeepCopyObject

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

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

type NUMAResourcesOperatorSpec

type NUMAResourcesOperatorSpec struct {
	// Group of Nodes to enable RTE on
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Group of nodes to enable RTE on"
	NodeGroups []NodeGroup `json:"nodeGroups,omitempty"`
	// Optional Resource Topology Exporter image URL
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Optional RTE image URL",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	ExporterImage string `json:"imageSpec,omitempty"`
	// Valid values are: "Normal", "Debug", "Trace", "TraceAll".
	// Defaults to "Normal".
	// +optional
	// +kubebuilder:default=Normal
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="RTE log verbosity"
	LogLevel operatorv1.LogLevel `json:"logLevel,omitempty"`
	// Optional Namespace/Name glob patterns of pod to ignore at node level
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Optional ignore pod namespace/name glob patterns"
	PodExcludes []NamespacedName `json:"podExcludes,omitempty"`
}

NUMAResourcesOperatorSpec defines the desired state of NUMAResourcesOperator

func (*NUMAResourcesOperatorSpec) DeepCopy

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

func (*NUMAResourcesOperatorSpec) DeepCopyInto

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

type NUMAResourcesOperatorStatus

type NUMAResourcesOperatorStatus struct {
	// DaemonSets of the configured RTEs, one per node group
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="RTE DaemonSets"
	DaemonSets []NamespacedName `json:"daemonsets,omitempty"`
	// MachineConfigPools resolved from configured node groups
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="RTE MCPs from node groups"
	MachineConfigPools []MachineConfigPool `json:"machineconfigpools,omitempty"`
	// Conditions show the current state of the NUMAResourcesOperator Operator
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="Condition reported"
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// RelatedObjects list of objects of interest for this operator
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="Related Objects"
	RelatedObjects []configv1.ObjectReference `json:"relatedObjects,omitempty"`
}

NUMAResourcesOperatorStatus defines the observed state of NUMAResourcesOperator

func (*NUMAResourcesOperatorStatus) DeepCopy

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

func (*NUMAResourcesOperatorStatus) DeepCopyInto

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

type NUMAResourcesScheduler

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

	Spec   NUMAResourcesSchedulerSpec   `json:"spec,omitempty"`
	Status NUMAResourcesSchedulerStatus `json:"status,omitempty"`
}

NUMAResourcesScheduler is the Schema for the numaresourcesschedulers API +operator-sdk:csv:customresourcedefinitions:displayName="NUMA Aware Scheduler",resources={{Deployment,v1,secondary-scheduler-deployment}}

func (*NUMAResourcesScheduler) DeepCopy

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

func (*NUMAResourcesScheduler) DeepCopyInto

func (in *NUMAResourcesScheduler) DeepCopyInto(out *NUMAResourcesScheduler)

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

func (*NUMAResourcesScheduler) DeepCopyObject

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

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

func (*NUMAResourcesScheduler) Hub

func (*NUMAResourcesScheduler) Hub()

Hub marks this type as a conversion hub.

type NUMAResourcesSchedulerList

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

NUMAResourcesSchedulerList contains a list of NUMAResourcesScheduler

func (*NUMAResourcesSchedulerList) DeepCopy

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

func (*NUMAResourcesSchedulerList) DeepCopyInto

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

func (*NUMAResourcesSchedulerList) DeepCopyObject

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

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

type NUMAResourcesSchedulerSpec

type NUMAResourcesSchedulerSpec struct {
	// Scheduler container image URL
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Scheduler container image URL",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	SchedulerImage string `json:"imageSpec"`
	// Scheduler name to be used in pod templates
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Scheduler name",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	SchedulerName string `json:"schedulerName,omitempty"`
	// Valid values are: "Normal", "Debug", "Trace", "TraceAll".
	// Defaults to "Normal".
	// +optional
	// +kubebuilder:default=Normal
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Scheduler log verbosity"
	LogLevel operatorv1.LogLevel `json:"logLevel,omitempty"`
	// Set the cache resync period. Use explicit 0 to disable.
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Scheduler cache resync period setting",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	CacheResyncPeriod *metav1.Duration `json:"cacheResyncPeriod,omitempty"`
	// Set the cache resync debug options. Defaults to disable.
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Scheduler cache resync debug setting",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	CacheResyncDebug *CacheResyncDebugMode `json:"cacheResyncDebug,omitempty"`
	// Set the informer type to be used by the scheduler to connect to the apiserver. Defaults to dedicated.
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Scheduler cache apiserver informer setting",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	SchedulerInformer *SchedulerInformerMode `json:"schedulerInformer,omitempty"`
	// Set the cache resync detection mode. Default is to trigger resyncs only when detected guaranteed QoS pods which require NUMA-specific resources.
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Scheduler cache resync detection setting",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	CacheResyncDetection *CacheResyncDetectionMode `json:"cacheResyncDetection,omitempty"`
	// ScoringStrategy a scoring model that determine how the plugin will score the nodes. Defaults to LeastAllocated.
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Scheduler scoring strategy setting",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	ScoringStrategy *ScoringStrategyParams `json:"scoringStrategy,omitempty"`
	// Replicas control how many scheduler pods must be configured for High Availability (HA)
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Scheduler replicas",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:int"}
	Replicas *int32 `json:"replicas,omitempty"`
}

NUMAResourcesSchedulerSpec defines the desired state of NUMAResourcesScheduler

func (*NUMAResourcesSchedulerSpec) DeepCopy

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

func (*NUMAResourcesSchedulerSpec) DeepCopyInto

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

func (NUMAResourcesSchedulerSpec) Normalize

type NUMAResourcesSchedulerStatus

type NUMAResourcesSchedulerStatus struct {
	// Deployment of the secondary scheduler, namespaced name
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="Scheduler deployment"
	Deployment NamespacedName `json:"deployment,omitempty"`
	// Scheduler name to be used in pod templates
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="Scheduler name"
	SchedulerName string `json:"schedulerName,omitempty"`
	// CacheResyncPeriod shows the current cache resync period
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="Scheduler cache resync period"
	CacheResyncPeriod *metav1.Duration `json:"cacheResyncPeriod,omitempty"`
	// Conditions show the current state of the NUMAResourcesOperator Operator
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// RelatedObjects list of objects of interest for this operator
	//+operator-sdk:csv:customresourcedefinitions:type=status,displayName="Related Objects"
	RelatedObjects []configv1.ObjectReference `json:"relatedObjects,omitempty"`
}

NUMAResourcesSchedulerStatus defines the observed state of NUMAResourcesScheduler

func (*NUMAResourcesSchedulerStatus) DeepCopy

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

func (*NUMAResourcesSchedulerStatus) DeepCopyInto

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

type NamespacedName

type NamespacedName struct {
	Namespace string `json:"namespace,omitempty"`
	Name      string `json:"name,omitempty"`
}

NamespacedName comprises a resource name, with a mandatory namespace, rendered as "<namespace>/<name>".

func (*NamespacedName) DeepCopy

func (in *NamespacedName) DeepCopy() *NamespacedName

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

func (*NamespacedName) DeepCopyInto

func (in *NamespacedName) DeepCopyInto(out *NamespacedName)

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

func (NamespacedName) String

func (n NamespacedName) String() string

String returns the general purpose string representation

type NodeGroup

type NodeGroup struct {
	// MachineConfigPoolSelector defines label selector for the machine config pool
	// +optional
	MachineConfigPoolSelector *metav1.LabelSelector `json:"machineConfigPoolSelector,omitempty"`
	// Config defines the RTE behavior for this NodeGroup
	// +optional
	Config *NodeGroupConfig `json:"config,omitempty"`
}

NodeGroup defines group of nodes that will run resource topology exporter daemon set You can choose the group of node by MachineConfigPoolSelector or by NodeSelector

func (*NodeGroup) DeepCopy

func (in *NodeGroup) DeepCopy() *NodeGroup

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

func (*NodeGroup) DeepCopyInto

func (in *NodeGroup) DeepCopyInto(out *NodeGroup)

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

func (NodeGroup) NormalizeConfig

func (nodeGroup NodeGroup) NormalizeConfig() NodeGroupConfig

type NodeGroupConfig

type NodeGroupConfig struct {
	// PodsFingerprinting defines if pod fingerprint should be reported for the machines belonging to this group
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable or disable the pods fingerprinting setting",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	PodsFingerprinting *PodsFingerprintingMode `json:"podsFingerprinting,omitempty"`
	// InfoRefreshMode sets the mechanism which will be used to refresh the topology info.
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Topology info mechanism setting",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	InfoRefreshMode *InfoRefreshMode `json:"infoRefreshMode,omitempty"`
	// InfoRefreshPeriod sets the topology info refresh period. Use explicit 0 to disable.
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Topology info refresh period setting",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	InfoRefreshPeriod *metav1.Duration `json:"infoRefreshPeriod,omitempty"`
	// InfoRefreshPause defines if updates to NRTs are paused for the machines belonging to this group
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Enable or disable the RTE pause setting",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	InfoRefreshPause *InfoRefreshPauseMode `json:"infoRefreshPause,omitempty"`
	// Tolerations overrides tolerations to be set into RTE daemonsets for this NodeGroup. If not empty, the tolerations will be the one set here.
	// Leave empty to make the system use the default tolerations.
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Extra tolerations for the topology updater daemonset",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
}

NodeGroupConfig exposes topology info reporting setting per node group

func DefaultNodeGroupConfig

func DefaultNodeGroupConfig() NodeGroupConfig

func (*NodeGroupConfig) DeepCopy

func (in *NodeGroupConfig) DeepCopy() *NodeGroupConfig

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

func (*NodeGroupConfig) DeepCopyInto

func (in *NodeGroupConfig) DeepCopyInto(out *NodeGroupConfig)

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

func (NodeGroupConfig) Merge

func (current NodeGroupConfig) Merge(updated NodeGroupConfig) NodeGroupConfig

func (*NodeGroupConfig) SetDefaults

func (ngc *NodeGroupConfig) SetDefaults()

func (*NodeGroupConfig) ToString

func (ngc *NodeGroupConfig) ToString() string

type PodsFingerprintingMode

type PodsFingerprintingMode string

+kubebuilder:validation:Enum=Disabled;Enabled;EnabledExclusiveResources

const (
	// PodsFingerprintingDisabled disables the pod fingerprinting reporting.
	PodsFingerprintingDisabled PodsFingerprintingMode = "Disabled"

	// PodsFingerprintingEnabled enables the pod fingerprint considering all the pods running on nodes. It is the default.
	PodsFingerprintingEnabled PodsFingerprintingMode = "Enabled"

	// PodsFingerprintingEnabledExclusiveResources enables the pod fingerprint considering only pods which have exclusive resources assigned.
	PodsFingerprintingEnabledExclusiveResources PodsFingerprintingMode = "EnabledExclusiveResources"
)

type ResourceSpecParams

type ResourceSpecParams struct {
	// Name of the resource.
	Name string `json:"name"`
	// Weight of the resource.
	Weight int64 `json:"weight,omitempty"`
}

func (*ResourceSpecParams) DeepCopy

func (in *ResourceSpecParams) DeepCopy() *ResourceSpecParams

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

func (*ResourceSpecParams) DeepCopyInto

func (in *ResourceSpecParams) DeepCopyInto(out *ResourceSpecParams)

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

type SchedulerInformerMode

type SchedulerInformerMode string

+kubebuilder:validation:Enum=Shared;Dedicated

const (
	// SchedulerInformerDedicated makes the NodeResourceTopologyMatch plugin use the default framework informer.
	SchedulerInformerShared SchedulerInformerMode = "Shared"

	// SchedulerInformerDedicated sets an additional separate informer just for the NodeResourceTopologyMatch plugin. Default.
	SchedulerInformerDedicated SchedulerInformerMode = "Dedicated"
)

type ScoringStrategyParams

type ScoringStrategyParams struct {
	Type      ScoringStrategyType  `json:"type,omitempty"`
	Resources []ResourceSpecParams `json:"resources,omitempty"`
}

func (*ScoringStrategyParams) DeepCopy

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

func (*ScoringStrategyParams) DeepCopyInto

func (in *ScoringStrategyParams) DeepCopyInto(out *ScoringStrategyParams)

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

type ScoringStrategyType

type ScoringStrategyType string

+kubebuilder:validation:Enum=MostAllocated;BalancedAllocation;LeastAllocated

const (
	// MostAllocated strategy favors node with the least amount of available resource
	MostAllocated ScoringStrategyType = "MostAllocated"
	// BalancedAllocation strategy favors nodes with balanced resource usage rate
	BalancedAllocation ScoringStrategyType = "BalancedAllocation"
	// LeastAllocated strategy favors node with the most amount of available resource
	LeastAllocated ScoringStrategyType = "LeastAllocated"
)

Directories

Path Synopsis
helper

Jump to

Keyboard shortcuts

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