From 19c582c2b143ca609e5990972acee6e37b5761b4 Mon Sep 17 00:00:00 2001 From: Brendan Burns Date: Thu, 12 Nov 2015 21:43:21 -0800 Subject: [PATCH] Add kubectl to the hyperkube binary --- cmd/hyperkube/kubectl.go | 39 ++++++++++++++++++++++++++++++++++++++ cmd/hyperkube/main.go | 1 + cmd/kubectl/app/kubectl.go | 29 ++++++++++++++++++++++++++++ cmd/kubectl/kubectl.go | 7 +++---- 4 files changed, 72 insertions(+), 4 deletions(-) create mode 100644 cmd/hyperkube/kubectl.go create mode 100644 cmd/kubectl/app/kubectl.go diff --git a/cmd/hyperkube/kubectl.go b/cmd/hyperkube/kubectl.go new file mode 100644 index 00000000000..9da15cf73c1 --- /dev/null +++ b/cmd/hyperkube/kubectl.go @@ -0,0 +1,39 @@ +/* +Copyright 2015 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package main + +import ( + "os" + + "k8s.io/kubernetes/cmd/kubectl/app" +) + +func NewKubectlServer() *Server { + return &Server{ + name: "kubectl", + SimpleUsage: "Kubernetes command line client", + Long: "Kubernetes command line client", + Run: func(s *Server, args []string) error { + os.Args = os.Args[1:] + if err := app.Run(); err != nil { + os.Exit(1) + } + os.Exit(0) + return nil + }, + } +} diff --git a/cmd/hyperkube/main.go b/cmd/hyperkube/main.go index 3a2b92fa905..4d9c4995e3b 100644 --- a/cmd/hyperkube/main.go +++ b/cmd/hyperkube/main.go @@ -31,6 +31,7 @@ func main() { Long: "This is an all-in-one binary that can run any of the various Kubernetes servers.", } + hk.AddServer(NewKubectlServer()) hk.AddServer(NewKubeAPIServer()) hk.AddServer(NewKubeControllerManager()) hk.AddServer(NewScheduler()) diff --git a/cmd/kubectl/app/kubectl.go b/cmd/kubectl/app/kubectl.go new file mode 100644 index 00000000000..5c25410d9ed --- /dev/null +++ b/cmd/kubectl/app/kubectl.go @@ -0,0 +1,29 @@ +/* +Copyright 2015 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package app + +import ( + "os" + + "k8s.io/kubernetes/pkg/kubectl/cmd" + cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" +) + +func Run() error { + cmd := cmd.NewKubectlCommand(cmdutil.NewFactory(nil), os.Stdin, os.Stdout, os.Stderr) + return cmd.Execute() +} diff --git a/cmd/kubectl/kubectl.go b/cmd/kubectl/kubectl.go index 78af2a77902..4d6bc866da4 100644 --- a/cmd/kubectl/kubectl.go +++ b/cmd/kubectl/kubectl.go @@ -20,14 +20,13 @@ import ( "os" "runtime" - "k8s.io/kubernetes/pkg/kubectl/cmd" - cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" + "k8s.io/kubernetes/cmd/kubectl/app" ) func main() { runtime.GOMAXPROCS(runtime.NumCPU()) - cmd := cmd.NewKubectlCommand(cmdutil.NewFactory(nil), os.Stdin, os.Stdout, os.Stderr) - if err := cmd.Execute(); err != nil { + if err := app.Run(); err != nil { os.Exit(1) } + os.Exit(0) }