// NewSchedulerCommand provides a CLI handler for the 'scheduler' command func NewSchedulerCommand(name, fullName string, out io.Writer) *cobra.Command { schedulerOptions := scheduleroptions.NewSchedulerServer() cmd := &cobra.Command{ Use: name, Short: "Launch Kubernetes scheduler (kube-scheduler)", Long: controllersLong, Run: func(c *cobra.Command, args []string) { startProfiler() logs.InitLogs() defer logs.FlushLogs() if err := schedulerapp.Run(schedulerOptions); err != nil { fmt.Fprintf(os.Stderr, "%v\n", err) os.Exit(1) } }, } cmd.SetOutput(out) flags := cmd.Flags() flags.SetNormalizeFunc(kflag.WordSepNormalizeFunc) schedulerOptions.AddFlags(flags) return cmd }
func main() { s := options.NewSchedulerServer() s.AddFlags(pflag.CommandLine) flag.InitFlags() logs.InitLogs() defer logs.FlushLogs() verflag.PrintAndExitIfRequested() app.Run(s) }
func main() { runtime.GOMAXPROCS(runtime.NumCPU()) s := options.NewSchedulerServer() s.AddFlags(pflag.CommandLine) flag.InitFlags() util.InitLogs() defer util.FlushLogs() verflag.PrintAndExitIfRequested() app.Run(s) }
// NewScheduler creates a new hyperkube Server object that includes the // description and flags. func NewScheduler() *Server { s := options.NewSchedulerServer() hks := Server{ SimpleUsage: "scheduler", Long: "Implements a Kubernetes scheduler. This will assign pods to kubelets based on capacity and constraints.", Run: func(_ *Server, _ []string) error { return app.Run(s) }, } s.AddFlags(hks.Flags()) return &hks }
func StartSchedulerServer(lk LocalkubeServer) func() error { config := options.NewSchedulerServer() // master details config.Master = lk.GetAPIServerInsecureURL() // defaults from command config.EnableProfiling = true return func() error { return scheduler.Run(config) } }
func main() { s := options.NewSchedulerServer() s.AddFlags(pflag.CommandLine) flag.InitFlags() logs.InitLogs() defer logs.FlushLogs() verflag.PrintAndExitIfRequested() if err := app.Run(s); err != nil { glog.Fatalf("scheduler app failed to run: %v", err) } }
func (b *bootkube) Run() error { errch := make(chan error) go func() { errch <- apiapp.Run(b.apiServer) }() go func() { errch <- cmapp.Run(b.controller) }() go func() { errch <- schedapp.Run(b.scheduler) }() go func() { if err := CreateAssets(filepath.Join(b.assetDir, asset.AssetPathManifests), assetTimeout); err != nil { errch <- err } }() go func() { errch <- WaitUntilPodsRunning(requiredPods, assetTimeout) }() // If any of the bootkube services exit, it means it is unrecoverable and we should exit. return <-errch }