From b123592e8315d15c068adf67fd9aef44d6fc7c55 Mon Sep 17 00:00:00 2001 From: Jan Chaloupka Date: Tue, 8 Mar 2016 19:22:24 +0100 Subject: [PATCH] hyperkube.server: don't parse args for any command --- cmd/hyperkube/hyperkube.go | 16 +++++++++------- cmd/hyperkube/kube-controller-manager.go | 1 + cmd/hyperkube/kube-proxy.go | 1 + cmd/hyperkube/kube-scheduler.go | 1 + cmd/hyperkube/kubectl.go | 1 + cmd/hyperkube/kubelet.go | 1 + cmd/hyperkube/server.go | 1 + 7 files changed, 15 insertions(+), 7 deletions(-) diff --git a/cmd/hyperkube/hyperkube.go b/cmd/hyperkube/hyperkube.go index 5272c5d..fda068a 100644 --- a/cmd/hyperkube/hyperkube.go +++ b/cmd/hyperkube/hyperkube.go @@ -154,14 +154,16 @@ func (hk *HyperKube) Run(args []string) error { return err } - s.Flags().AddFlagSet(hk.Flags()) - err = s.Flags().Parse(args) - if err != nil || hk.helpFlagVal { - if err != nil { - hk.Printf("Error: %v\n\n", err) + if !s.NoParse { + s.Flags().AddFlagSet(hk.Flags()) + err = s.Flags().Parse(args) + if err != nil || hk.helpFlagVal { + if err != nil { + hk.Printf("Error: %v\n\n", err) + } + s.Usage() + return err } - s.Usage() - return err } verflag.PrintAndExitIfRequested() diff --git a/cmd/hyperkube/kube-controller-manager.go b/cmd/hyperkube/kube-controller-manager.go index 009b14a..8c9fd98 100644 --- a/cmd/hyperkube/kube-controller-manager.go +++ b/cmd/hyperkube/kube-controller-manager.go @@ -33,6 +33,7 @@ func NewKubeControllerManager() *Server { Run: func(_ *Server, args []string) error { return s.Run(args) }, + NoParse: false, } s.AddFlags(hks.Flags()) return &hks diff --git a/cmd/hyperkube/kube-proxy.go b/cmd/hyperkube/kube-proxy.go index cf3b12a..69ea610 100644 --- a/cmd/hyperkube/kube-proxy.go +++ b/cmd/hyperkube/kube-proxy.go @@ -33,6 +33,7 @@ func NewKubeProxy() *Server { services and forwarding it to the appropriate pods. It generally runs on nodes next to the Kubelet and proxies traffic from local pods to remote pods. It is also used when handling incoming external traffic.`, + NoParse: false, } config.AddFlags(hks.Flags()) diff --git a/cmd/hyperkube/kube-scheduler.go b/cmd/hyperkube/kube-scheduler.go index aba7c4f..7a272de 100644 --- a/cmd/hyperkube/kube-scheduler.go +++ b/cmd/hyperkube/kube-scheduler.go @@ -33,6 +33,7 @@ func NewScheduler() *Server { Run: func(_ *Server, args []string) error { return s.Run(args) }, + NoParse: false, } s.AddFlags(hks.Flags()) return &hks diff --git a/cmd/hyperkube/kubectl.go b/cmd/hyperkube/kubectl.go index 954422d..f35c75c 100644 --- a/cmd/hyperkube/kubectl.go +++ b/cmd/hyperkube/kubectl.go @@ -34,5 +34,6 @@ func NewKubectlServer() *Server { os.Exit(0) return nil }, + NoParse: true, } } diff --git a/cmd/hyperkube/kubelet.go b/cmd/hyperkube/kubelet.go index e12b20d..40d9ef1 100644 --- a/cmd/hyperkube/kubelet.go +++ b/cmd/hyperkube/kubelet.go @@ -35,6 +35,7 @@ func NewKubelet() *Server { Run: func(_ *Server, _ []string) error { return s.Run(nil) }, + NoParse: false, } s.AddFlags(hks.Flags()) return &hks diff --git a/cmd/hyperkube/server.go b/cmd/hyperkube/server.go index 6b6e5ce..0baa814 100644 --- a/cmd/hyperkube/server.go +++ b/cmd/hyperkube/server.go @@ -34,6 +34,7 @@ type Server struct { SimpleUsage string // One line description of the server. Long string // Longer free form description of the server Run serverRunFunc // Run the server. This is not expected to return. + NoParse bool // Don't parse options. Some commands do it on their own. flags *pflag.FlagSet // Flags for the command (and all dependents) name string -- 1.9.3