Documentation ¶
Overview ¶
Package v1alpha2 is the v1alpha2 version of the descheduler API
Index ¶
- Constants
- Variables
- func Convert_config_DefaultEvictorArgs_To_v1alpha2_DefaultEvictorArgs(in *config.DefaultEvictorArgs, out *DefaultEvictorArgs, s conversion.Scope) error
- func Convert_config_DeschedulerConfiguration_To_v1alpha2_DeschedulerConfiguration(in *config.DeschedulerConfiguration, out *DeschedulerConfiguration, ...) error
- func Convert_config_DeschedulerProfile_To_v1alpha2_DeschedulerProfile(in *config.DeschedulerProfile, out *DeschedulerProfile, s conversion.Scope) error
- func Convert_config_LowNodeLoadArgs_To_v1alpha2_LowNodeLoadArgs(in *config.LowNodeLoadArgs, out *LowNodeLoadArgs, s conversion.Scope) error
- func Convert_config_LowNodeLoadPodSelector_To_v1alpha2_LowNodeLoadPodSelector(in *config.LowNodeLoadPodSelector, out *LowNodeLoadPodSelector, ...) error
- func Convert_config_MigrationControllerArgs_To_v1alpha2_MigrationControllerArgs(in *config.MigrationControllerArgs, out *MigrationControllerArgs, ...) error
- func Convert_config_MigrationObjectLimiter_To_v1alpha2_MigrationObjectLimiter(in *config.MigrationObjectLimiter, out *MigrationObjectLimiter, ...) error
- func Convert_config_Namespaces_To_v1alpha2_Namespaces(in *config.Namespaces, out *Namespaces, s conversion.Scope) error
- func Convert_config_PluginConfig_To_v1alpha2_PluginConfig(in *config.PluginConfig, out *PluginConfig, s conversion.Scope) error
- func Convert_config_PluginSet_To_v1alpha2_PluginSet(in *config.PluginSet, out *PluginSet, s conversion.Scope) error
- func Convert_config_Plugin_To_v1alpha2_Plugin(in *config.Plugin, out *Plugin, s conversion.Scope) error
- func Convert_config_Plugins_To_v1alpha2_Plugins(in *config.Plugins, out *Plugins, s conversion.Scope) error
- func Convert_config_PriorityThreshold_To_v1alpha2_PriorityThreshold(in *config.PriorityThreshold, out *PriorityThreshold, s conversion.Scope) error
- func Convert_config_RemovePodsViolatingNodeAffinityArgs_To_v1alpha2_RemovePodsViolatingNodeAffinityArgs(in *config.RemovePodsViolatingNodeAffinityArgs, ...) error
- func Convert_v1alpha2_DefaultEvictorArgs_To_config_DefaultEvictorArgs(in *DefaultEvictorArgs, out *config.DefaultEvictorArgs, s conversion.Scope) error
- func Convert_v1alpha2_DeschedulerConfiguration_To_config_DeschedulerConfiguration(in *DeschedulerConfiguration, out *config.DeschedulerConfiguration, ...) error
- func Convert_v1alpha2_DeschedulerProfile_To_config_DeschedulerProfile(in *DeschedulerProfile, out *config.DeschedulerProfile, s conversion.Scope) error
- func Convert_v1alpha2_LowNodeLoadArgs_To_config_LowNodeLoadArgs(in *LowNodeLoadArgs, out *config.LowNodeLoadArgs, s conversion.Scope) error
- func Convert_v1alpha2_LowNodeLoadPodSelector_To_config_LowNodeLoadPodSelector(in *LowNodeLoadPodSelector, out *config.LowNodeLoadPodSelector, ...) error
- func Convert_v1alpha2_MigrationControllerArgs_To_config_MigrationControllerArgs(in *MigrationControllerArgs, out *config.MigrationControllerArgs, ...) error
- func Convert_v1alpha2_MigrationObjectLimiter_To_config_MigrationObjectLimiter(in *MigrationObjectLimiter, out *config.MigrationObjectLimiter, ...) error
- func Convert_v1alpha2_Namespaces_To_config_Namespaces(in *Namespaces, out *config.Namespaces, s conversion.Scope) error
- func Convert_v1alpha2_PluginConfig_To_config_PluginConfig(in *PluginConfig, out *config.PluginConfig, s conversion.Scope) error
- func Convert_v1alpha2_PluginSet_To_config_PluginSet(in *PluginSet, out *config.PluginSet, s conversion.Scope) error
- func Convert_v1alpha2_Plugin_To_config_Plugin(in *Plugin, out *config.Plugin, s conversion.Scope) error
- func Convert_v1alpha2_Plugins_To_config_Plugins(in *Plugins, out *config.Plugins, s conversion.Scope) error
- func Convert_v1alpha2_PriorityThreshold_To_config_PriorityThreshold(in *PriorityThreshold, out *config.PriorityThreshold, s conversion.Scope) error
- func Convert_v1alpha2_RemovePodsViolatingNodeAffinityArgs_To_config_RemovePodsViolatingNodeAffinityArgs(in *RemovePodsViolatingNodeAffinityArgs, ...) error
- func GetPluginArgConversionScheme() *runtime.Scheme
- func Kind(kind string) schema.GroupKind
- func RegisterConversions(s *runtime.Scheme) error
- func RegisterDefaults(scheme *runtime.Scheme) error
- func Resource(resource string) schema.GroupResource
- func SetDefaults_DefaultEvictorArgs(obj *DefaultEvictorArgs)
- func SetDefaults_DeschedulerConfiguration(obj *DeschedulerConfiguration)
- func SetDefaults_LowNodeLoadArgs(obj *LowNodeLoadArgs)
- func SetDefaults_MigrationControllerArgs(obj *MigrationControllerArgs)
- func SetDefaults_RemovePodsViolatingNodeAffinityArgs(obj *RemovePodsViolatingNodeAffinityArgs)
- func SetObjectDefaults_DefaultEvictorArgs(in *DefaultEvictorArgs)
- func SetObjectDefaults_DeschedulerConfiguration(in *DeschedulerConfiguration)
- func SetObjectDefaults_LowNodeLoadArgs(in *LowNodeLoadArgs)
- func SetObjectDefaults_MigrationControllerArgs(in *MigrationControllerArgs)
- func SetObjectDefaults_RemovePodsViolatingNodeAffinityArgs(in *RemovePodsViolatingNodeAffinityArgs)
- type DefaultEvictorArgs
- type DeschedulerConfiguration
- func (c *DeschedulerConfiguration) DecodeNestedObjects(d runtime.Decoder) error
- func (in *DeschedulerConfiguration) DeepCopy() *DeschedulerConfiguration
- func (in *DeschedulerConfiguration) DeepCopyInto(out *DeschedulerConfiguration)
- func (in *DeschedulerConfiguration) DeepCopyObject() runtime.Object
- func (c *DeschedulerConfiguration) EncodeNestedObjects(e runtime.Encoder) error
- type DeschedulerProfile
- type LowNodeLoadArgs
- type LowNodeLoadPodSelector
- type MigrationControllerArgs
- type MigrationLimitObjectType
- type MigrationObjectLimiter
- type Namespaces
- type ObjectLimiterMap
- type Percentage
- type Plugin
- type PluginConfig
- type PluginSet
- type Plugins
- type PriorityThreshold
- type RemovePodsViolatingNodeAffinityArgs
- type ResourceThresholds
Constants ¶
const GroupName = "descheduler"
GroupName is the group name used in this package
const GroupVersion = "v1alpha2"
Variables ¶
var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme )
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: GroupVersion}
SchemeGroupVersion is group version used to register these objects
Functions ¶
func Convert_config_DefaultEvictorArgs_To_v1alpha2_DefaultEvictorArgs ¶
func Convert_config_DefaultEvictorArgs_To_v1alpha2_DefaultEvictorArgs(in *config.DefaultEvictorArgs, out *DefaultEvictorArgs, s conversion.Scope) error
Convert_config_DefaultEvictorArgs_To_v1alpha2_DefaultEvictorArgs 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_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_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_config_RemovePodsViolatingNodeAffinityArgs_To_v1alpha2_RemovePodsViolatingNodeAffinityArgs ¶
func Convert_config_RemovePodsViolatingNodeAffinityArgs_To_v1alpha2_RemovePodsViolatingNodeAffinityArgs(in *config.RemovePodsViolatingNodeAffinityArgs, out *RemovePodsViolatingNodeAffinityArgs, s conversion.Scope) error
Convert_config_RemovePodsViolatingNodeAffinityArgs_To_v1alpha2_RemovePodsViolatingNodeAffinityArgs is an autogenerated conversion function.
func Convert_v1alpha2_DefaultEvictorArgs_To_config_DefaultEvictorArgs ¶
func Convert_v1alpha2_DefaultEvictorArgs_To_config_DefaultEvictorArgs(in *DefaultEvictorArgs, out *config.DefaultEvictorArgs, s conversion.Scope) error
Convert_v1alpha2_DefaultEvictorArgs_To_config_DefaultEvictorArgs 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_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
Convert_v1alpha2_LowNodeLoadArgs_To_config_LowNodeLoadArgs 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 Convert_v1alpha2_RemovePodsViolatingNodeAffinityArgs_To_config_RemovePodsViolatingNodeAffinityArgs ¶
func Convert_v1alpha2_RemovePodsViolatingNodeAffinityArgs_To_config_RemovePodsViolatingNodeAffinityArgs(in *RemovePodsViolatingNodeAffinityArgs, out *config.RemovePodsViolatingNodeAffinityArgs, s conversion.Scope) error
Convert_v1alpha2_RemovePodsViolatingNodeAffinityArgs_To_config_RemovePodsViolatingNodeAffinityArgs is an autogenerated conversion function.
func RegisterConversions ¶
RegisterConversions adds conversion functions to the given scheme. Public to allow building arbitrary schemes.
func RegisterDefaults ¶
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_DefaultEvictorArgs ¶
func SetDefaults_DefaultEvictorArgs(obj *DefaultEvictorArgs)
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 SetDefaults_RemovePodsViolatingNodeAffinityArgs ¶
func SetDefaults_RemovePodsViolatingNodeAffinityArgs(obj *RemovePodsViolatingNodeAffinityArgs)
func SetObjectDefaults_DefaultEvictorArgs ¶
func SetObjectDefaults_DefaultEvictorArgs(in *DefaultEvictorArgs)
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)
func SetObjectDefaults_RemovePodsViolatingNodeAffinityArgs ¶
func SetObjectDefaults_RemovePodsViolatingNodeAffinityArgs(in *RemovePodsViolatingNodeAffinityArgs)
Types ¶
type DefaultEvictorArgs ¶
type DefaultEvictorArgs struct { metav1.TypeMeta DryRun *bool `json:"dryRun,omitempty"` // MaxNoOfPodsToEvictPerNode restricts maximum of pods to be evicted per node. MaxNoOfPodsToEvictPerNode *int `json:"maxNoOfPodsToEvictPerNode,omitempty"` // MaxNoOfPodsToEvictPerNamespace restricts maximum of pods to be evicted per namespace. MaxNoOfPodsToEvictPerNamespace *int `json:"maxNoOfPodsToEvictPerNamespace,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"` // NodeFit sets whether to consider taints, node selectors, // and pod affinity when evicting. A pod whose tolerations, node selectors, // and affinity match a node other than the one it is currently running on // is evictable. NodeFit bool `json:"nodeFit"` // PriorityThreshold represents a threshold for pod's priority class. // Any pod whose priority class is lower is evictable. 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"` }
DefaultEvictorArgs holds arguments used to configure the DefaultEvictor plugin.
func (*DefaultEvictorArgs) DeepCopy ¶
func (in *DefaultEvictorArgs) DeepCopy() *DefaultEvictorArgs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DefaultEvictorArgs.
func (*DefaultEvictorArgs) DeepCopyInto ¶
func (in *DefaultEvictorArgs) DeepCopyInto(out *DefaultEvictorArgs)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DefaultEvictorArgs) DeepCopyObject ¶
func (in *DefaultEvictorArgs) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
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"` }
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 ¶
func (in *DeschedulerConfiguration) DeepCopy() *DeschedulerConfiguration
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 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"` // 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"` }
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 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
func (in *LowNodeLoadPodSelector) DeepCopy() *LowNodeLoadPodSelector
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"` // 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"` // 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"` // 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"` // 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"` // EvictQPS controls the number of evict per second EvictQPS string `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"` }
MigrationControllerArgs holds arguments used to configure the MigrationController
func (*MigrationControllerArgs) DeepCopy ¶
func (in *MigrationControllerArgs) DeepCopy() *MigrationControllerArgs
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
func (in *MigrationObjectLimiter) DeepCopy() *MigrationObjectLimiter
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
type ObjectLimiterMap map[MigrationLimitObjectType]MigrationObjectLimiter
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Plugin.
func (*Plugin) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginSet.
func (*PluginSet) DeepCopyInto ¶
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"` Evictor PluginSet `json:"evict,omitempty"` }
func (*Plugins) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Plugins.
func (*Plugins) DeepCopyInto ¶
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 RemovePodsViolatingNodeAffinityArgs ¶
type RemovePodsViolatingNodeAffinityArgs struct { metav1.TypeMeta Namespaces *Namespaces `json:"namespaces,omitempty"` LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"` NodeAffinityType []string `json:"nodeAffinityType,omitempty"` }
RemovePodsViolatingNodeAffinityArgs holds arguments used to configure the RemovePodsViolatingNodeAffinity plugin.
func (*RemovePodsViolatingNodeAffinityArgs) DeepCopy ¶
func (in *RemovePodsViolatingNodeAffinityArgs) DeepCopy() *RemovePodsViolatingNodeAffinityArgs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemovePodsViolatingNodeAffinityArgs.
func (*RemovePodsViolatingNodeAffinityArgs) DeepCopyInto ¶
func (in *RemovePodsViolatingNodeAffinityArgs) DeepCopyInto(out *RemovePodsViolatingNodeAffinityArgs)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RemovePodsViolatingNodeAffinityArgs) DeepCopyObject ¶
func (in *RemovePodsViolatingNodeAffinityArgs) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
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.