// NewSchedulerCommand provides a CLI handler for the 'scheduler' command func NewSchedulerCommand(name, fullName string, out io.Writer) *cobra.Command { s := app.NewSchedulerServer() cmd := &cobra.Command{ Use: name, Short: "Launch Kubernetes scheduler (kube-scheduler)", Long: controllersLong, Run: func(c *cobra.Command, args []string) { startProfiler() util.InitLogs() defer util.FlushLogs() if err := s.Run(pflag.CommandLine.Args()); err != nil { fmt.Fprintf(os.Stderr, "%v\n", err) os.Exit(1) } }, } cmd.SetOutput(out) flags := cmd.Flags() //TODO: uncomment after picking up a newer cobra //pflag.AddFlagSetToPFlagSet(flag, flags) s.AddFlags(flags) return cmd }
// NewScheduler creates a new hyperkube Server object that includes the // description and flags. func NewScheduler() *Server { s := scheduler.NewSchedulerServer() hks := Server{ SimpleUsage: "scheduler", Long: "Implements a Kubernetes scheduler. This will assign pods to kubelets based on capacity and constraints.", Run: func(_ *Server, args []string) error { return s.Run(args) }, } s.AddFlags(hks.Flags()) return &hks }
func main() { runtime.GOMAXPROCS(runtime.NumCPU()) s := app.NewSchedulerServer() s.AddFlags(pflag.CommandLine) util.InitFlags() util.InitLogs() defer util.FlushLogs() verflag.PrintAndExitIfRequested() s.Run(pflag.CommandLine.Args()) }