Documentation ¶
Index ¶
- Constants
- Variables
- func Convert_config_GodelSchedulerConfiguration_To_v1beta1_GodelSchedulerConfiguration(in *config.GodelSchedulerConfiguration, out *GodelSchedulerConfiguration, ...) error
- func Convert_config_GodelSchedulerProfile_To_v1beta1_GodelSchedulerProfile(in *config.GodelSchedulerProfile, out *GodelSchedulerProfile, ...) error
- func Convert_v1beta1_GodelSchedulerConfiguration_To_config_GodelSchedulerConfiguration(in *GodelSchedulerConfiguration, out *config.GodelSchedulerConfiguration, ...) error
- func Convert_v1beta1_GodelSchedulerProfile_To_config_GodelSchedulerProfile(in *GodelSchedulerProfile, out *config.GodelSchedulerProfile, ...) error
- func RegisterConversions(s *runtime.Scheme) error
- func RegisterDefaults(scheme *runtime.Scheme) error
- func SetDefaults_GodelSchedulerConfiguration(obj *GodelSchedulerConfiguration)
- func SetObjectDefaults_GodelSchedulerConfiguration(in *GodelSchedulerConfiguration)
- type GodelSchedulerConfiguration
- func (in *GodelSchedulerConfiguration) DecodeNestedObjects(d runtime.Decoder) error
- func (in *GodelSchedulerConfiguration) DeepCopy() *GodelSchedulerConfiguration
- func (in *GodelSchedulerConfiguration) DeepCopyInto(out *GodelSchedulerConfiguration)
- func (in *GodelSchedulerConfiguration) DeepCopyObject() runtime.Object
- func (in *GodelSchedulerConfiguration) EncodeNestedObjects(e runtime.Encoder) error
- type GodelSchedulerProfile
Constants ¶
const GroupName = "godelscheduler.config.kubewharf.io"
GroupName is the group name used in this package
Variables ¶
var (
// AddToScheme is a global function that registers this API group & version to a scheme
AddToScheme = localSchemeBuilder.AddToScheme
)
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 ¶
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 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 ¶
func (in *GodelSchedulerConfiguration) DeepCopy() *GodelSchedulerConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GodelSchedulerConfiguration.
func (*GodelSchedulerConfiguration) DeepCopyInto ¶
func (in *GodelSchedulerConfiguration) DeepCopyInto(out *GodelSchedulerConfiguration)
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 ¶
func (in *GodelSchedulerProfile) DeepCopy() *GodelSchedulerProfile
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.