v1beta1

package
v0.0.0-...-bc30bd0 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const GroupName = "godelscheduler.config.kubewharf.io"

GroupName is the group name used in this package

Variables

View Source
var (

	// AddToScheme is a global function that registers this API group & version to a scheme
	AddToScheme = localSchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1beta1"}

SchemeGroupVersion is group version used to register these objects

Functions

func Convert_config_GodelSchedulerConfiguration_To_v1beta1_GodelSchedulerConfiguration

func Convert_config_GodelSchedulerConfiguration_To_v1beta1_GodelSchedulerConfiguration(in *config.GodelSchedulerConfiguration, out *GodelSchedulerConfiguration, s conversion.Scope) error

Convert_config_GodelSchedulerConfiguration_To_v1beta1_GodelSchedulerConfiguration is an autogenerated conversion function.

func Convert_config_GodelSchedulerProfile_To_v1beta1_GodelSchedulerProfile

func Convert_config_GodelSchedulerProfile_To_v1beta1_GodelSchedulerProfile(in *config.GodelSchedulerProfile, out *GodelSchedulerProfile, s conversion.Scope) error

Convert_config_GodelSchedulerProfile_To_v1beta1_GodelSchedulerProfile is an autogenerated conversion function.

func Convert_v1beta1_GodelSchedulerConfiguration_To_config_GodelSchedulerConfiguration

func Convert_v1beta1_GodelSchedulerConfiguration_To_config_GodelSchedulerConfiguration(in *GodelSchedulerConfiguration, out *config.GodelSchedulerConfiguration, s conversion.Scope) error

Convert_v1beta1_GodelSchedulerConfiguration_To_config_GodelSchedulerConfiguration is an autogenerated conversion function.

func Convert_v1beta1_GodelSchedulerProfile_To_config_GodelSchedulerProfile

func Convert_v1beta1_GodelSchedulerProfile_To_config_GodelSchedulerProfile(in *GodelSchedulerProfile, out *config.GodelSchedulerProfile, s conversion.Scope) error

Convert_v1beta1_GodelSchedulerProfile_To_config_GodelSchedulerProfile is an autogenerated conversion function.

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 SetDefaults_GodelSchedulerConfiguration

func SetDefaults_GodelSchedulerConfiguration(obj *GodelSchedulerConfiguration)

SetDefaults_GodelSchedulerConfiguration sets additional defaults

func SetObjectDefaults_GodelSchedulerConfiguration

func SetObjectDefaults_GodelSchedulerConfiguration(in *GodelSchedulerConfiguration)

Types

type GodelSchedulerConfiguration

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

	// LeaderElection defines the configuration of leader election client.
	LeaderElection componentbaseconfig.LeaderElectionConfiguration `json:"leaderElection"`
	// SchedulerRenewIntervalSeconds is the duration for updating scheduler.
	// If this value is null, the default value (30s) will be used.
	SchedulerRenewIntervalSeconds int64 `json:"schedulerRenewIntervalSeconds"`

	// ClientConnection specifies the kubeconfig file and client connection
	// settings for the proxy server to use when communicating with the apiserver.
	ClientConnection componentbaseconfig.ClientConnectionConfiguration `json:"clientConnection"`
	// HealthzBindAddress is the IP address and port for the health check server to serve on,
	// defaulting to 0.0.0.0:10251
	HealthzBindAddress string `json:"healthzBindAddress,omitempty"`
	// MetricsBindAddress is the IP address and port for the metrics server to
	// serve on, defaulting to 0.0.0.0:10251.
	MetricsBindAddress string `json:"metricsBindAddress,omitempty"`

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

	// GodelSchedulerName is the name of the scheduler, scheduler will register scheduler crd with
	// this name, then dispatcher will choose one scheduler and use this scheduler's name to set the
	// selected-scheduler annotation on pod.
	GodelSchedulerName string `json:"godelSchedulerName,omitempty"`
	// SchedulerName specifies a scheduling system, scheduling components(dispatcher,
	// scheduler, binder) will not accept a pod, unless pod.Spec.SchedulerName == SchedulerName
	SchedulerName *string `json:"schedulerName,omitempty"`
	SubClusterKey *string `json:"subClusterKey,omitempty"`

	// Tracer defines the configuration of tracer
	Tracer *tracing.TracerConfiguration
	// reserved resources will be released after a period of time.
	ReservationTimeOutSeconds int64 `json:"reservationTimeOutSeconds,omitempty"`

	// TODO: update the comment
	// Profiles are scheduling profiles that kube-scheduler supports. Pods can
	// choose to be scheduled under a particular profile by setting its associated
	// scheduler name. Pods that don't specify any scheduler name are scheduled
	// with the "default-scheduler" profile, if present here.
	DefaultProfile     *GodelSchedulerProfile  `json:"defaultProfile,omitempty"`
	SubClusterProfiles []GodelSchedulerProfile `json:"subClusterProfiles,omitempty"`
}

GodelSchedulerConfiguration configures a scheduler

func (*GodelSchedulerConfiguration) DecodeNestedObjects

func (in *GodelSchedulerConfiguration) DecodeNestedObjects(d runtime.Decoder) error

DecodeNestedObjects decodes plugin args for known types.

func (*GodelSchedulerConfiguration) DeepCopy

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

func (*GodelSchedulerConfiguration) DeepCopyInto

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

func (*GodelSchedulerConfiguration) DeepCopyObject

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

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

func (*GodelSchedulerConfiguration) EncodeNestedObjects

func (in *GodelSchedulerConfiguration) EncodeNestedObjects(e runtime.Encoder) error

EncodeNestedObjects encodes plugin args.

type GodelSchedulerProfile

type GodelSchedulerProfile struct {
	// ProfileKey associates the profile to a subcluster if it is not nil.
	SubClusterName string `json:"subClusterName,omitempty"`

	// BasePluginsForKubelet specify the set of default plugins.
	BasePluginsForKubelet *config.Plugins `json:"baseKubeletPlugins,omitempty"`

	// BasePluginsForNM specify the set of default plugins.
	BasePluginsForNM *config.Plugins `json:"baseNMPlugins,omitempty"`

	// PluginConfigs is an optional set of custom plugin arguments for each plugin.
	// Omitting config args for a plugin is equivalent to using the default config
	// for that plugin.
	PluginConfigs []config.PluginConfig `json:"pluginConfig,omitempty"`

	// PreemptionPluginConfigs is an optional set of custom plugin arguments for each preemption plugin.
	// Omitting config args for a preemption plugin is equivalent to using the default config
	// for that preemption plugin.
	PreemptionPluginConfigs []config.PluginConfig `json:"preemptionPluginConfigs,omitempty"`

	// TODO: reserve temporarily(godel).
	// PercentageOfNodesToScore is the percentage of all nodes that once found feasible
	// for running a pod, the scheduler stops its search for more feasible nodes in
	// the cluster. This helps improve scheduler's performance. Scheduler always tries to find
	// at least "minFeasibleNodesToFind" feasible nodes no matter what the value of this flag is.
	// Example: if the cluster size is 500 nodes and the value of this flag is 30,
	// then scheduler stops finding further feasible nodes once it finds 150 feasible ones.
	// When the value is 0, default percentage (5%--50% based on the size of the cluster) of the
	// nodes will be scored.
	PercentageOfNodesToScore *int32 `json:"percentageOfNodesToScore,omitempty"`

	// IncreasedPercentageOfNodesToScore is used to improve the scheduling quality for particular
	// pods for which the scheduler will find more feasible nodes. It is usually greater than PercenrageOfNodesToScore.
	IncreasedPercentageOfNodesToScore *int32 `json:"increasedPercentageOfNodesToScore,omitempty"`

	// DisablePreemption disables the pod preemption feature.
	DisablePreemption *bool `json:"disablePreemption,omitempty"`

	// BlockQueue indicates whether a BlockQueue is required.
	BlockQueue *bool `json:"blockQueue,omitempty"`

	// UnitQueueSortPlugin specifies the sort plugin used in scheduling queue, defining the priority of pods in scheduling queue.
	UnitQueueSortPlugin           *config.Plugin `json:"unitQueueSortPlugin,omitempty"`
	AttemptImpactFactorOnPriority *float64       `json:"attemptImpactFactorOnPriority,omitempty"`
	// UnitInitialBackoffSeconds is the initial backoff for unschedulable pods.
	// If specified, it must be greater than 0. If this value is null, the default value (10s)
	// will be used.
	UnitInitialBackoffSeconds *int64 `json:"unitInitialBackoffSeconds,omitempty"`
	// UnitMaxBackoffSeconds is the max backoff for unschedulable pods.
	// If specified, it must be greater than or equal to unitInitialBackoffSeconds. If this value is null,
	// the default value (10s) will be used.
	UnitMaxBackoffSeconds *int64 `json:"unitMaxBackoffSeconds,omitempty"`
	// Max attempts waiting for deletion completed
	MaxWaitingDeletionDuration int64 `json:"maxWaitingDeletionDuration,omitempty"`

	// CandidatesSelectPolicies
	CandidatesSelectPolicy *string `json:"candidatesSelectPolicy,omitempty"`

	// BetterSelectPolicies
	BetterSelectPolicies *config.StringSlice `json:"betterSelectPolicies,omitempty"`
}

GodelSchedulerProfile is a scheduling profile.

func (*GodelSchedulerProfile) DeepCopy

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

func (*GodelSchedulerProfile) DeepCopyInto

func (in *GodelSchedulerProfile) DeepCopyInto(out *GodelSchedulerProfile)

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