v1alpha2

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: 23 Imported by: 0

Documentation

Overview

Package v1alpha2 is the v1alpha2 version of the descheduler API

Index

Constants

View Source
const GroupName = "descheduler"

GroupName is the group name used in this package

View Source
const GroupVersion = "v1alpha2"

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)

	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: GroupVersion}

SchemeGroupVersion is group version used to register these objects

Functions

func Convert_config_ArbitrationArgs_To_v1alpha2_ArbitrationArgs added in v1.4.0

func Convert_config_ArbitrationArgs_To_v1alpha2_ArbitrationArgs(in *config.ArbitrationArgs, out *ArbitrationArgs, s conversion.Scope) error

Convert_config_ArbitrationArgs_To_v1alpha2_ArbitrationArgs is an autogenerated conversion function.

func Convert_config_DeschedulerConfiguration_To_v1alpha2_DeschedulerConfiguration

func Convert_config_DeschedulerConfiguration_To_v1alpha2_DeschedulerConfiguration(in *config.DeschedulerConfiguration, out *DeschedulerConfiguration, s conversion.Scope) error

func Convert_config_DeschedulerProfile_To_v1alpha2_DeschedulerProfile

func Convert_config_DeschedulerProfile_To_v1alpha2_DeschedulerProfile(in *config.DeschedulerProfile, out *DeschedulerProfile, s conversion.Scope) error

Convert_config_DeschedulerProfile_To_v1alpha2_DeschedulerProfile is an autogenerated conversion function.

func Convert_config_LoadAnomalyCondition_To_v1alpha2_LoadAnomalyCondition added in v1.2.0

func Convert_config_LoadAnomalyCondition_To_v1alpha2_LoadAnomalyCondition(in *config.LoadAnomalyCondition, out *LoadAnomalyCondition, s conversion.Scope) error

Convert_config_LoadAnomalyCondition_To_v1alpha2_LoadAnomalyCondition is an autogenerated conversion function.

func Convert_config_LowNodeLoadArgs_To_v1alpha2_LowNodeLoadArgs added in v1.1.0

func Convert_config_LowNodeLoadArgs_To_v1alpha2_LowNodeLoadArgs(in *config.LowNodeLoadArgs, out *LowNodeLoadArgs, s conversion.Scope) error

Convert_config_LowNodeLoadArgs_To_v1alpha2_LowNodeLoadArgs is an autogenerated conversion function.

func Convert_config_LowNodeLoadNodePool_To_v1alpha2_LowNodeLoadNodePool added in v1.3.0

func Convert_config_LowNodeLoadNodePool_To_v1alpha2_LowNodeLoadNodePool(in *config.LowNodeLoadNodePool, out *LowNodeLoadNodePool, s conversion.Scope) error

Convert_config_LowNodeLoadNodePool_To_v1alpha2_LowNodeLoadNodePool is an autogenerated conversion function.

func Convert_config_LowNodeLoadPodSelector_To_v1alpha2_LowNodeLoadPodSelector added in v1.1.0

func Convert_config_LowNodeLoadPodSelector_To_v1alpha2_LowNodeLoadPodSelector(in *config.LowNodeLoadPodSelector, out *LowNodeLoadPodSelector, s conversion.Scope) error

Convert_config_LowNodeLoadPodSelector_To_v1alpha2_LowNodeLoadPodSelector is an autogenerated conversion function.

func Convert_config_MigrationControllerArgs_To_v1alpha2_MigrationControllerArgs

func Convert_config_MigrationControllerArgs_To_v1alpha2_MigrationControllerArgs(in *config.MigrationControllerArgs, out *MigrationControllerArgs, s conversion.Scope) error

Convert_config_MigrationControllerArgs_To_v1alpha2_MigrationControllerArgs is an autogenerated conversion function.

func Convert_config_MigrationObjectLimiter_To_v1alpha2_MigrationObjectLimiter added in v1.1.1

func Convert_config_MigrationObjectLimiter_To_v1alpha2_MigrationObjectLimiter(in *config.MigrationObjectLimiter, out *MigrationObjectLimiter, s conversion.Scope) error

Convert_config_MigrationObjectLimiter_To_v1alpha2_MigrationObjectLimiter is an autogenerated conversion function.

func Convert_config_Namespaces_To_v1alpha2_Namespaces

func Convert_config_Namespaces_To_v1alpha2_Namespaces(in *config.Namespaces, out *Namespaces, s conversion.Scope) error

Convert_config_Namespaces_To_v1alpha2_Namespaces is an autogenerated conversion function.

func Convert_config_PluginConfig_To_v1alpha2_PluginConfig

func Convert_config_PluginConfig_To_v1alpha2_PluginConfig(in *config.PluginConfig, out *PluginConfig, s conversion.Scope) error

Convert_config_PluginConfig_To_v1alpha2_PluginConfig is an autogenerated conversion function.

func Convert_config_PluginSet_To_v1alpha2_PluginSet

func Convert_config_PluginSet_To_v1alpha2_PluginSet(in *config.PluginSet, out *PluginSet, s conversion.Scope) error

Convert_config_PluginSet_To_v1alpha2_PluginSet is an autogenerated conversion function.

func Convert_config_Plugin_To_v1alpha2_Plugin

func Convert_config_Plugin_To_v1alpha2_Plugin(in *config.Plugin, out *Plugin, s conversion.Scope) error

Convert_config_Plugin_To_v1alpha2_Plugin is an autogenerated conversion function.

func Convert_config_Plugins_To_v1alpha2_Plugins

func Convert_config_Plugins_To_v1alpha2_Plugins(in *config.Plugins, out *Plugins, s conversion.Scope) error

Convert_config_Plugins_To_v1alpha2_Plugins is an autogenerated conversion function.

func Convert_config_PriorityThreshold_To_v1alpha2_PriorityThreshold

func Convert_config_PriorityThreshold_To_v1alpha2_PriorityThreshold(in *config.PriorityThreshold, out *PriorityThreshold, s conversion.Scope) error

Convert_config_PriorityThreshold_To_v1alpha2_PriorityThreshold is an autogenerated conversion function.

func Convert_v1alpha2_ArbitrationArgs_To_config_ArbitrationArgs added in v1.4.0

func Convert_v1alpha2_ArbitrationArgs_To_config_ArbitrationArgs(in *ArbitrationArgs, out *config.ArbitrationArgs, s conversion.Scope) error

Convert_v1alpha2_ArbitrationArgs_To_config_ArbitrationArgs is an autogenerated conversion function.

func Convert_v1alpha2_DeschedulerConfiguration_To_config_DeschedulerConfiguration

func Convert_v1alpha2_DeschedulerConfiguration_To_config_DeschedulerConfiguration(in *DeschedulerConfiguration, out *config.DeschedulerConfiguration, s conversion.Scope) error

func Convert_v1alpha2_DeschedulerProfile_To_config_DeschedulerProfile

func Convert_v1alpha2_DeschedulerProfile_To_config_DeschedulerProfile(in *DeschedulerProfile, out *config.DeschedulerProfile, s conversion.Scope) error

Convert_v1alpha2_DeschedulerProfile_To_config_DeschedulerProfile is an autogenerated conversion function.

func Convert_v1alpha2_LoadAnomalyCondition_To_config_LoadAnomalyCondition added in v1.2.0

func Convert_v1alpha2_LoadAnomalyCondition_To_config_LoadAnomalyCondition(in *LoadAnomalyCondition, out *config.LoadAnomalyCondition, s conversion.Scope) error

Convert_v1alpha2_LoadAnomalyCondition_To_config_LoadAnomalyCondition is an autogenerated conversion function.

func Convert_v1alpha2_LowNodeLoadArgs_To_config_LowNodeLoadArgs added in v1.1.0

func Convert_v1alpha2_LowNodeLoadArgs_To_config_LowNodeLoadArgs(in *LowNodeLoadArgs, out *config.LowNodeLoadArgs, s conversion.Scope) error

func Convert_v1alpha2_LowNodeLoadNodePool_To_config_LowNodeLoadNodePool added in v1.3.0

func Convert_v1alpha2_LowNodeLoadNodePool_To_config_LowNodeLoadNodePool(in *LowNodeLoadNodePool, out *config.LowNodeLoadNodePool, s conversion.Scope) error

Convert_v1alpha2_LowNodeLoadNodePool_To_config_LowNodeLoadNodePool is an autogenerated conversion function.

func Convert_v1alpha2_LowNodeLoadPodSelector_To_config_LowNodeLoadPodSelector added in v1.1.0

func Convert_v1alpha2_LowNodeLoadPodSelector_To_config_LowNodeLoadPodSelector(in *LowNodeLoadPodSelector, out *config.LowNodeLoadPodSelector, s conversion.Scope) error

Convert_v1alpha2_LowNodeLoadPodSelector_To_config_LowNodeLoadPodSelector is an autogenerated conversion function.

func Convert_v1alpha2_MigrationControllerArgs_To_config_MigrationControllerArgs

func Convert_v1alpha2_MigrationControllerArgs_To_config_MigrationControllerArgs(in *MigrationControllerArgs, out *config.MigrationControllerArgs, s conversion.Scope) error

Convert_v1alpha2_MigrationControllerArgs_To_config_MigrationControllerArgs is an autogenerated conversion function.

func Convert_v1alpha2_MigrationObjectLimiter_To_config_MigrationObjectLimiter added in v1.1.1

func Convert_v1alpha2_MigrationObjectLimiter_To_config_MigrationObjectLimiter(in *MigrationObjectLimiter, out *config.MigrationObjectLimiter, s conversion.Scope) error

Convert_v1alpha2_MigrationObjectLimiter_To_config_MigrationObjectLimiter is an autogenerated conversion function.

func Convert_v1alpha2_Namespaces_To_config_Namespaces

func Convert_v1alpha2_Namespaces_To_config_Namespaces(in *Namespaces, out *config.Namespaces, s conversion.Scope) error

Convert_v1alpha2_Namespaces_To_config_Namespaces is an autogenerated conversion function.

func Convert_v1alpha2_PluginConfig_To_config_PluginConfig

func Convert_v1alpha2_PluginConfig_To_config_PluginConfig(in *PluginConfig, out *config.PluginConfig, s conversion.Scope) error

Convert_v1alpha2_PluginConfig_To_config_PluginConfig is an autogenerated conversion function.

func Convert_v1alpha2_PluginSet_To_config_PluginSet

func Convert_v1alpha2_PluginSet_To_config_PluginSet(in *PluginSet, out *config.PluginSet, s conversion.Scope) error

Convert_v1alpha2_PluginSet_To_config_PluginSet is an autogenerated conversion function.

func Convert_v1alpha2_Plugin_To_config_Plugin

func Convert_v1alpha2_Plugin_To_config_Plugin(in *Plugin, out *config.Plugin, s conversion.Scope) error

Convert_v1alpha2_Plugin_To_config_Plugin is an autogenerated conversion function.

func Convert_v1alpha2_Plugins_To_config_Plugins

func Convert_v1alpha2_Plugins_To_config_Plugins(in *Plugins, out *config.Plugins, s conversion.Scope) error

Convert_v1alpha2_Plugins_To_config_Plugins is an autogenerated conversion function.

func Convert_v1alpha2_PriorityThreshold_To_config_PriorityThreshold

func Convert_v1alpha2_PriorityThreshold_To_config_PriorityThreshold(in *PriorityThreshold, out *config.PriorityThreshold, s conversion.Scope) error

Convert_v1alpha2_PriorityThreshold_To_config_PriorityThreshold is an autogenerated conversion function.

func GetPluginArgConversionScheme

func GetPluginArgConversionScheme() *runtime.Scheme

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns a Group qualified GroupKind

func RegisterConversions

func RegisterConversions(s *runtime.Scheme) error

RegisterConversions adds conversion functions to the given scheme. Public to allow building arbitrary schemes.

func RegisterDefaults

func RegisterDefaults(scheme *runtime.Scheme) error

RegisterDefaults adds defaulters functions to the given scheme. Public to allow building arbitrary schemes. All generated defaulters are covering - they call all nested defaulters.

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

func SetDefaults_DeschedulerConfiguration

func SetDefaults_DeschedulerConfiguration(obj *DeschedulerConfiguration)

SetDefaults_DeschedulerConfiguration sets additional defaults

func SetDefaults_LowNodeLoadArgs added in v1.1.0

func SetDefaults_LowNodeLoadArgs(obj *LowNodeLoadArgs)

func SetDefaults_MigrationControllerArgs

func SetDefaults_MigrationControllerArgs(obj *MigrationControllerArgs)

func SetObjectDefaults_DeschedulerConfiguration

func SetObjectDefaults_DeschedulerConfiguration(in *DeschedulerConfiguration)

func SetObjectDefaults_LowNodeLoadArgs added in v1.1.0

func SetObjectDefaults_LowNodeLoadArgs(in *LowNodeLoadArgs)

func SetObjectDefaults_MigrationControllerArgs

func SetObjectDefaults_MigrationControllerArgs(in *MigrationControllerArgs)

Types

type ArbitrationArgs added in v1.4.0

type ArbitrationArgs struct {
	// Enabled defines if Arbitration Mechanism should be enabled.
	// Default is true
	Enabled bool `json:"enabled,omitempty"`

	// Interval defines the running interval (ms) of the Arbitration Mechanism.
	// Default is 500 ms
	Interval *metav1.Duration `json:"interval,omitempty"`
}

ArbitrationArgs holds arguments used to configure the Arbitration Mechanism.

func (*ArbitrationArgs) DeepCopy added in v1.4.0

func (in *ArbitrationArgs) DeepCopy() *ArbitrationArgs

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

func (*ArbitrationArgs) DeepCopyInto added in v1.4.0

func (in *ArbitrationArgs) DeepCopyInto(out *ArbitrationArgs)

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

type DeschedulerConfiguration

type DeschedulerConfiguration struct {
	metav1.TypeMeta

	// LeaderElection defines the configuration of leader election client.
	LeaderElection v1alpha1.LeaderElectionConfiguration `json:"leaderElection"`

	// ClientConnection specifies the kubeconfig file and client connection
	// settings for the proxy server to use when communicating with the apiserver.
	ClientConnection v1alpha1.ClientConnectionConfiguration `json:"clientConnection"`

	// DebuggingConfiguration holds configuration for Debugging related features
	// TODO: We might wanna make this a substruct like Debugging componentbaseconfigv1alpha1.DebuggingConfiguration
	v1alpha1.DebuggingConfiguration `json:",inline"`

	// Note: Both HealthzBindAddress and MetricsBindAddress fields are deprecated.
	// Only empty address or port 0 is allowed. Anything else will fail validation.
	// HealthzBindAddress is the IP address and port for the health check server to serve on.
	HealthzBindAddress *string `json:"healthzBindAddress,omitempty"`
	// MetricsBindAddress is the IP address and port for the metrics server to serve on.
	MetricsBindAddress *string `json:"metricsBindAddress,omitempty"`

	// Time interval for descheduler to run
	DeschedulingInterval metav1.Duration `json:"deschedulingInterval,omitempty"`

	// Dry run
	DryRun bool `json:"dryRun,omitempty"`

	// Profiles
	Profiles []DeschedulerProfile `json:"profiles,omitempty"`

	// NodeSelector for a set of nodes to operate over
	NodeSelector *metav1.LabelSelector `json:"nodeSelector,omitempty"`

	// MaxNoOfPodsToEvictPerNode restricts maximum of pods to be evicted per node.
	MaxNoOfPodsToEvictPerNode *uint `json:"maxNoOfPodsToEvictPerNode,omitempty"`

	// MaxNoOfPodsToEvictPerNamespace restricts maximum of pods to be evicted per namespace.
	MaxNoOfPodsToEvictPerNamespace *uint `json:"maxNoOfPodsToEvictPerNamespace,omitempty"`
}

DeschedulerConfiguration configures a descheduler

func (*DeschedulerConfiguration) DecodeNestedObjects

func (c *DeschedulerConfiguration) DecodeNestedObjects(d runtime.Decoder) error

DecodeNestedObjects decodes plugin args for known types.

func (*DeschedulerConfiguration) DeepCopy

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

func (*DeschedulerConfiguration) DeepCopyInto

func (in *DeschedulerConfiguration) DeepCopyInto(out *DeschedulerConfiguration)

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

func (*DeschedulerConfiguration) DeepCopyObject

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

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

func (*DeschedulerConfiguration) EncodeNestedObjects

func (c *DeschedulerConfiguration) EncodeNestedObjects(e runtime.Encoder) error

EncodeNestedObjects encodes plugin args.

type DeschedulerProfile

type DeschedulerProfile struct {
	Name         string         `json:"name,omitempty"`
	PluginConfig []PluginConfig `json:"pluginConfig,omitempty"`
	Plugins      *Plugins       `json:"plugins,omitempty"`
}

DeschedulerProfile is a descheduling profile.

func (*DeschedulerProfile) DeepCopy

func (in *DeschedulerProfile) DeepCopy() *DeschedulerProfile

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

func (*DeschedulerProfile) DeepCopyInto

func (in *DeschedulerProfile) DeepCopyInto(out *DeschedulerProfile)

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

type LoadAnomalyCondition added in v1.2.0

type LoadAnomalyCondition struct {
	// Timeout indicates the expiration time of the abnormal state, the default is 1 minute
	Timeout *metav1.Duration `json:"timeout,omitempty"`
	// ConsecutiveAbnormalities indicates the number of consecutive abnormalities
	ConsecutiveAbnormalities uint32 `json:"consecutiveAbnormalities,omitempty"`
	// ConsecutiveNormalities indicates the number of consecutive normalities
	ConsecutiveNormalities uint32 `json:"consecutiveNormalities,omitempty"`
}

func (*LoadAnomalyCondition) DeepCopy added in v1.2.0

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

func (*LoadAnomalyCondition) DeepCopyInto added in v1.2.0

func (in *LoadAnomalyCondition) DeepCopyInto(out *LoadAnomalyCondition)

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

type LowNodeLoadArgs added in v1.1.0

type LowNodeLoadArgs struct {
	metav1.TypeMeta `json:",inline"`

	// Paused indicates whether the LoadHotspot should to work or not.
	// Default is false
	Paused *bool `json:"paused,omitempty"`

	// DryRun means only execute the entire deschedule logic but don't migrate Pod
	// Default is false
	DryRun *bool `json:"dryRun,omitempty"`

	// NumberOfNodes can be configured to activate the strategy only when the number of under utilized nodes are above the configured value.
	// This could be helpful in large clusters where a few nodes could go under utilized frequently or for a short period of time.
	// By default, NumberOfNodes is set to zero.
	NumberOfNodes *int32 `json:"numberOfNodes,omitempty"`

	// NodeMetricExpirationSeconds indicates the NodeMetric expiration in seconds.
	// When NodeMetrics expired, the node is considered abnormal, and should not be considered by deschedule plugin.
	// Default is 180 seconds.
	NodeMetricExpirationSeconds *int64 `json:"nodeMetricExpirationSeconds,omitempty"`

	// Naming this one differently since namespaces are still
	// considered while considering resoures used by pods
	// but then filtered out before eviction
	EvictableNamespaces *Namespaces `json:"evictableNamespaces,omitempty"`

	// NodeSelector selects the nodes that matched labelSelector
	NodeSelector *metav1.LabelSelector `json:"nodeSelector,omitempty"`

	// PodSelectors selects the pods that matched labelSelector
	PodSelectors []LowNodeLoadPodSelector `json:"podSelectors,omitempty"`

	// NodeFit if enabled, it will check whether the candidate Pods have suitable nodes, including NodeAffinity, TaintTolerance, and whether resources are sufficient.
	// by default, NodeFit is set to true.
	NodeFit *bool `json:"nodeFit,omitempty"`

	// If UseDeviationThresholds is set to `true`, the thresholds are considered as percentage deviations from mean resource usage.
	// `LowThresholds` will be deducted from the mean among all nodes and `HighThresholds` will be added to the mean.
	// A resource consumption above (resp. below) this window is considered as overutilization (resp. underutilization).
	UseDeviationThresholds *bool `json:"useDeviationThresholds,omitempty"`

	// HighThresholds defines the target usage threshold of resources
	HighThresholds ResourceThresholds `json:"highThresholds,omitempty"`

	// LowThresholds defines the low usage threshold of resources
	LowThresholds ResourceThresholds `json:"lowThresholds,omitempty"`

	// ResourceWeights indicates the weights of resources.
	// The weights of CPU and Memory are both 1 by default.
	ResourceWeights map[corev1.ResourceName]int64 `json:"resourceWeights,omitempty"`

	// AnomalyCondition indicates the node load anomaly thresholds,
	// the default is 5 consecutive times exceeding HighThresholds,
	// it is determined that the node is abnormal, and the Pods need to be migrated to reduce the load.
	AnomalyCondition *LoadAnomalyCondition `json:"anomalyCondition,omitempty"`

	// DetectorCacheTimeout indicates the cache expiration time of nodeAnomalyDetectors, the default is 5 minute
	DetectorCacheTimeout *metav1.Duration `json:"detectorCacheTimeout,omitempty"`

	// NodePools supports multiple different types of batch nodes to configure different strategies
	NodePools []LowNodeLoadNodePool `json:"nodePools,omitempty"`
}

func (*LowNodeLoadArgs) DeepCopy added in v1.1.0

func (in *LowNodeLoadArgs) DeepCopy() *LowNodeLoadArgs

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

func (*LowNodeLoadArgs) DeepCopyInto added in v1.1.0

func (in *LowNodeLoadArgs) DeepCopyInto(out *LowNodeLoadArgs)

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

func (*LowNodeLoadArgs) DeepCopyObject added in v1.1.0

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

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

type LowNodeLoadNodePool added in v1.3.0

type LowNodeLoadNodePool struct {
	// Name represents the name of pool
	Name string `json:"name,omitempty"`
	// NodeSelector selects the nodes that matched labelSelector
	NodeSelector *metav1.LabelSelector `json:"nodeSelector,omitempty"`
	// If UseDeviationThresholds is set to `true`, the thresholds are considered as percentage deviations from mean resource usage.
	// `LowThresholds` will be deducted from the mean among all nodes and `HighThresholds` will be added to the mean.
	// A resource consumption above (resp. below) this window is considered as overutilization (resp. underutilization).
	UseDeviationThresholds bool `json:"useDeviationThresholds,omitempty"`

	// HighThresholds defines the target usage threshold of resources
	HighThresholds ResourceThresholds `json:"highThresholds,omitempty"`

	// LowThresholds defines the low usage threshold of resources
	LowThresholds ResourceThresholds `json:"lowThresholds,omitempty"`

	// ResourceWeights indicates the weights of resources.
	// The weights of resources are both 1 by default.
	ResourceWeights map[corev1.ResourceName]int64 `json:"resourceWeights,omitempty"`

	// AnomalyCondition indicates the node load anomaly thresholds,
	// the default is 5 consecutive times exceeding HighThresholds,
	// it is determined that the node is abnormal, and the Pods need to be migrated to reduce the load.
	AnomalyCondition *LoadAnomalyCondition `json:"anomalyCondition,omitempty"`
}

func (*LowNodeLoadNodePool) DeepCopy added in v1.3.0

func (in *LowNodeLoadNodePool) DeepCopy() *LowNodeLoadNodePool

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

func (*LowNodeLoadNodePool) DeepCopyInto added in v1.3.0

func (in *LowNodeLoadNodePool) DeepCopyInto(out *LowNodeLoadNodePool)

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

type LowNodeLoadPodSelector added in v1.1.0

type LowNodeLoadPodSelector struct {
	Name string `json:"name,omitempty"`

	// Selector label query over pods for migrated
	Selector *metav1.LabelSelector `json:"selector,omitempty"`
}

func (*LowNodeLoadPodSelector) DeepCopy added in v1.1.0

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

func (*LowNodeLoadPodSelector) DeepCopyInto added in v1.1.0

func (in *LowNodeLoadPodSelector) DeepCopyInto(out *LowNodeLoadPodSelector)

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

type MigrationControllerArgs

type MigrationControllerArgs struct {
	metav1.TypeMeta

	// DryRun means only execute the entire migration logic except create Reservation or Delete Pod
	// Default is false
	DryRun bool `json:"dryRun,omitempty"`

	// MaxConcurrentReconciles is the maximum number of concurrent Reconciles which can be run. Defaults to 1.
	MaxConcurrentReconciles *int32 `json:"maxConcurrentReconciles,omitempty"`

	// EvictFailedBarePods allows pods without ownerReferences and in failed phase to be evicted.
	EvictFailedBarePods bool `json:"evictFailedBarePods"`

	// EvictLocalStoragePods allows pods using local storage to be evicted.
	EvictLocalStoragePods bool `json:"evictLocalStoragePods"`

	// EvictSystemCriticalPods allows eviction of pods of any priority (including Kubernetes system pods)
	EvictSystemCriticalPods bool `json:"evictSystemCriticalPods"`

	// IgnorePVCPods prevents pods with PVCs from being evicted.
	IgnorePvcPods bool `json:"ignorePvcPods"`

	// PriorityThreshold filtering only pods under the threshold can be evicted
	PriorityThreshold *PriorityThreshold `json:"priorityThreshold,omitempty"`

	// LabelSelector sets whether to apply label filtering when evicting.
	// Any pod matching the label selector is considered evictable.
	LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"`

	// Namespaces carries a list of included/excluded namespaces
	Namespaces *Namespaces `json:"namespaces,omitempty"`

	// NodeFit if enabled, it will check whether the candidate Pods have suitable nodes,
	// including NodeAffinity, TaintTolerance, and whether resources are sufficient.
	NodeFit bool `json:"nodeFit,omitempty"`

	// NodeSelector for a set of nodes to operate over
	NodeSelector string `json:"nodeSelector,omitempty"`

	// MaxMigratingPerNode represents he maximum number of pods that can be migrating during migrate per node.
	MaxMigratingPerNode *int32 `json:"maxMigratingPerNode,omitempty"`

	// MaxMigratingPerNamespace represents he maximum number of pods that can be migrating during migrate per namespace.
	MaxMigratingPerNamespace *int32 `json:"maxMigratingPerNamespace,omitempty"`

	// MaxMigratingPerWorkload represents he maximum number of pods that can be migrating during migrate per workload.
	// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
	MaxMigratingPerWorkload *intstr.IntOrString `json:"maxMigratingPerWorkload,omitempty"`

	// MaxUnavailablePerWorkload represents he maximum number of pods that can be unavailable during migrate per workload.
	// The unavailable state includes NotRunning/NotReady/Migrating/Evicting
	// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
	MaxUnavailablePerWorkload *intstr.IntOrString `json:"maxUnavailablePerWorkload,omitempty"`

	// SkipCheckExpectedReplicas if enabled, it will allow eviction expectedReplicas equals maxUnavailable or maxMigrating.
	// Default is false
	SkipCheckExpectedReplicas *bool `json:"skipCheckExpectedReplicas,omitempty"`

	// ObjectLimiters control the frequency of migration/eviction to make it smoother,
	// and also protect Pods of the same class from being evicted frequently.
	// e.g. limiting the frequency of Pods of the same workload being evicted.
	// The default is to set the MigrationLimitObjectWorkload limiter.
	ObjectLimiters ObjectLimiterMap `json:"objectLimiters,omitempty"`

	// DefaultJobMode represents the default operating mode of the PodMigrationJob
	// Default is PodMigrationJobModeReservationFirst
	DefaultJobMode string `json:"defaultJobMode,omitempty"`

	// DefaultJobTTL represents the default TTL of the PodMigrationJob
	// Default is 5 minute
	DefaultJobTTL *metav1.Duration `json:"defaultJobTTL,omitempty"`

	// SchedulerNames defines options to assign schedulers that can handle reservation if pmj.mode is ReservationFirst, koord-scheduler by default.
	SchedulerNames []string `json:"schedulerNames,omitempty"`

	// EvictQPS controls the number of evict per second
	EvictQPS *config.Float64OrString `json:"evictQPS,omitempty"`
	// EvictBurst is the maximum number of tokens
	EvictBurst *int32 `json:"evictBurst,omitempty"`
	// EvictionPolicy represents how to delete Pod, support "Delete" and "Eviction", default value is "Eviction"
	EvictionPolicy string `json:"evictionPolicy,omitempty"`
	// DefaultDeleteOptions defines options when deleting migrated pods and preempted pods through the method specified by EvictionPolicy
	DefaultDeleteOptions *metav1.DeleteOptions `json:"defaultDeleteOptions,omitempty"`

	// ArbitrationArgs defines the control parameters of the Arbitration Mechanism.
	ArbitrationArgs *ArbitrationArgs `json:"arbitrationArgs,omitempty"`
}

MigrationControllerArgs holds arguments used to configure the MigrationController

func (*MigrationControllerArgs) DeepCopy

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

func (*MigrationControllerArgs) DeepCopyInto

func (in *MigrationControllerArgs) DeepCopyInto(out *MigrationControllerArgs)

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

func (*MigrationControllerArgs) DeepCopyObject

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

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

type MigrationLimitObjectType added in v1.1.1

type MigrationLimitObjectType string
const (
	MigrationLimitObjectWorkload MigrationLimitObjectType = "workload"
)

type MigrationObjectLimiter added in v1.1.1

type MigrationObjectLimiter struct {
	// Duration indicates the time window of the desired limit.
	Duration metav1.Duration `json:"duration,omitempty"`
	// MaxMigrating indicates the maximum number of migrations/evictions allowed within the window time.
	// If configured as 0, the maximum number will be calculated according to MaxMigratingPerWorkload.
	MaxMigrating *intstr.IntOrString `json:"maxMigrating,omitempty"`
}

MigrationObjectLimiter means that if the specified dimension has multiple migrations within the configured time period and exceeds the configured threshold, it will be limited.

func (*MigrationObjectLimiter) DeepCopy added in v1.1.1

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

func (*MigrationObjectLimiter) DeepCopyInto added in v1.1.1

func (in *MigrationObjectLimiter) DeepCopyInto(out *MigrationObjectLimiter)

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

type Namespaces

type Namespaces struct {
	Include []string `json:"include,omitempty"`
	Exclude []string `json:"exclude,omitempty"`
}

Namespaces carries a list of included/excluded namespaces for which a given strategy is applicable

func (*Namespaces) DeepCopy

func (in *Namespaces) DeepCopy() *Namespaces

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

func (*Namespaces) DeepCopyInto

func (in *Namespaces) DeepCopyInto(out *Namespaces)

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

type ObjectLimiterMap added in v1.1.1

func (ObjectLimiterMap) DeepCopy added in v1.1.1

func (in ObjectLimiterMap) DeepCopy() ObjectLimiterMap

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

func (ObjectLimiterMap) DeepCopyInto added in v1.1.1

func (in ObjectLimiterMap) DeepCopyInto(out *ObjectLimiterMap)

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

type Percentage added in v1.1.0

type Percentage float64

type Plugin

type Plugin struct {
	// Name defines the name of plugin
	Name string `json:"name,omitempty"`
}

func (*Plugin) DeepCopy

func (in *Plugin) DeepCopy() *Plugin

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

func (*Plugin) DeepCopyInto

func (in *Plugin) DeepCopyInto(out *Plugin)

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

type PluginConfig

type PluginConfig struct {
	Name string               `json:"name"`
	Args runtime.RawExtension `json:"args,omitempty"`
}

func (*PluginConfig) DeepCopy

func (in *PluginConfig) DeepCopy() *PluginConfig

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

func (*PluginConfig) DeepCopyInto

func (in *PluginConfig) DeepCopyInto(out *PluginConfig)

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

type PluginSet

type PluginSet struct {
	Enabled  []Plugin `json:"enabled,omitempty"`
	Disabled []Plugin `json:"disabled,omitempty"`
}

func (*PluginSet) DeepCopy

func (in *PluginSet) DeepCopy() *PluginSet

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

func (*PluginSet) DeepCopyInto

func (in *PluginSet) DeepCopyInto(out *PluginSet)

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

type Plugins

type Plugins struct {
	Deschedule PluginSet `json:"deschedule,omitempty"`
	Balance    PluginSet `json:"balance,omitempty"`
	Evict      PluginSet `json:"evict,omitempty"`
	Filter     PluginSet `json:"filter,omitempty"`
}

func (*Plugins) DeepCopy

func (in *Plugins) DeepCopy() *Plugins

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

func (*Plugins) DeepCopyInto

func (in *Plugins) DeepCopyInto(out *Plugins)

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

type PriorityThreshold

type PriorityThreshold struct {
	Value *int32 `json:"value,omitempty"`
	Name  string `json:"name,omitempty"`
}

func (*PriorityThreshold) DeepCopy

func (in *PriorityThreshold) DeepCopy() *PriorityThreshold

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

func (*PriorityThreshold) DeepCopyInto

func (in *PriorityThreshold) DeepCopyInto(out *PriorityThreshold)

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

type ResourceThresholds added in v1.1.0

type ResourceThresholds map[corev1.ResourceName]Percentage

func (ResourceThresholds) DeepCopy added in v1.1.0

func (in ResourceThresholds) DeepCopy() ResourceThresholds

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

func (ResourceThresholds) DeepCopyInto added in v1.1.0

func (in ResourceThresholds) DeepCopyInto(out *ResourceThresholds)

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