diff --git a/cmd/BUILD b/cmd/BUILD index 28f5bfaf120..5f243e13d75 100644 --- a/cmd/BUILD +++ b/cmd/BUILD @@ -20,7 +20,6 @@ filegroup( "//cmd/genswaggertypedocs:all-srcs", "//cmd/genutils:all-srcs", "//cmd/genyaml:all-srcs", - "//cmd/hyperkube:all-srcs", "//cmd/importverifier:all-srcs", "//cmd/kube-apiserver:all-srcs", "//cmd/kube-controller-manager:all-srcs", diff --git a/cmd/hyperkube/BUILD b/cmd/hyperkube/BUILD deleted file mode 100644 index a3f4dd22b2b..00000000000 --- a/cmd/hyperkube/BUILD +++ /dev/null @@ -1,48 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "//build:go.bzl", - go_binary = "go_binary_conditional_pure", -) -load("@io_bazel_rules_go//go:def.bzl", "go_library") -load("//staging/src/k8s.io/component-base/version:def.bzl", "version_x_defs") - -go_binary( - name = "hyperkube", - embed = [":go_default_library"], - x_defs = version_x_defs(), -) - -go_library( - name = "go_default_library", - srcs = ["main.go"], - importpath = "k8s.io/kubernetes/cmd/hyperkube", - deps = [ - "//cmd/cloud-controller-manager/app:go_default_library", - "//cmd/kube-apiserver/app:go_default_library", - "//cmd/kube-controller-manager/app:go_default_library", - "//cmd/kube-proxy/app:go_default_library", - "//cmd/kube-scheduler/app:go_default_library", - "//cmd/kubelet/app:go_default_library", - "//pkg/kubectl/cmd:go_default_library", - "//staging/src/k8s.io/component-base/cli/flag:go_default_library", - "//staging/src/k8s.io/component-base/logs:go_default_library", - "//staging/src/k8s.io/component-base/metrics/prometheus/restclient:go_default_library", - "//staging/src/k8s.io/component-base/metrics/prometheus/version:go_default_library", - "//vendor/github.com/spf13/cobra:go_default_library", - "//vendor/github.com/spf13/pflag:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/cmd/hyperkube/OWNERS b/cmd/hyperkube/OWNERS deleted file mode 100644 index c28de235565..00000000000 --- a/cmd/hyperkube/OWNERS +++ /dev/null @@ -1,4 +0,0 @@ -# See the OWNERS docs at https://go.k8s.io/owners - -labels: -- sig/release diff --git a/cmd/hyperkube/main.go b/cmd/hyperkube/main.go deleted file mode 100644 index 9b606bd139e..00000000000 --- a/cmd/hyperkube/main.go +++ /dev/null @@ -1,125 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors. - -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. -*/ - -// A binary that can morph into all of the other kubernetes binaries. You can -// also soft-link to it busybox style. -// -package main - -import ( - goflag "flag" - "math/rand" - "os" - "path/filepath" - "time" - - "github.com/spf13/cobra" - "github.com/spf13/pflag" - - cliflag "k8s.io/component-base/cli/flag" - "k8s.io/component-base/logs" - _ "k8s.io/component-base/metrics/prometheus/restclient" // for client metric registration - _ "k8s.io/component-base/metrics/prometheus/version" // for version metric registration - cloudcontrollermanager "k8s.io/kubernetes/cmd/cloud-controller-manager/app" - kubeapiserver "k8s.io/kubernetes/cmd/kube-apiserver/app" - kubecontrollermanager "k8s.io/kubernetes/cmd/kube-controller-manager/app" - kubeproxy "k8s.io/kubernetes/cmd/kube-proxy/app" - kubescheduler "k8s.io/kubernetes/cmd/kube-scheduler/app" - kubelet "k8s.io/kubernetes/cmd/kubelet/app" - kubectl "k8s.io/kubernetes/pkg/kubectl/cmd" -) - -func main() { - rand.Seed(time.Now().UnixNano()) - - hyperkubeCommand, allCommandFns := NewHyperKubeCommand() - - // TODO: once we switch everything over to Cobra commands, we can go back to calling - // cliflag.InitFlags() (by removing its pflag.Parse() call). For now, we have to set the - // normalize func and add the go flag set by hand. - pflag.CommandLine.SetNormalizeFunc(cliflag.WordSepNormalizeFunc) - pflag.CommandLine.AddGoFlagSet(goflag.CommandLine) - // cliflag.InitFlags() - logs.InitLogs() - defer logs.FlushLogs() - - basename := filepath.Base(os.Args[0]) - if err := commandFor(basename, hyperkubeCommand, allCommandFns).Execute(); err != nil { - os.Exit(1) - } -} - -func commandFor(basename string, defaultCommand *cobra.Command, commands []func() *cobra.Command) *cobra.Command { - for _, commandFn := range commands { - command := commandFn() - if command.Name() == basename { - return command - } - for _, alias := range command.Aliases { - if alias == basename { - return command - } - } - } - - return defaultCommand -} - -// NewHyperKubeCommand is the entry point for hyperkube -func NewHyperKubeCommand() (*cobra.Command, []func() *cobra.Command) { - // these have to be functions since the command is polymorphic. Cobra wants you to be top level - // command to get executed - apiserver := func() *cobra.Command { return kubeapiserver.NewAPIServerCommand() } - controller := func() *cobra.Command { return kubecontrollermanager.NewControllerManagerCommand() } - proxy := func() *cobra.Command { return kubeproxy.NewProxyCommand() } - scheduler := func() *cobra.Command { return kubescheduler.NewSchedulerCommand() } - kubectlCmd := func() *cobra.Command { return kubectl.NewDefaultKubectlCommand() } - kubelet := func() *cobra.Command { return kubelet.NewKubeletCommand() } - cloudController := func() *cobra.Command { - cmd := cloudcontrollermanager.NewCloudControllerManagerCommand() - cmd.Deprecated = "please use the cloud controller manager specific " + - "to your external cloud provider" - return cmd - } - - commandFns := []func() *cobra.Command{ - apiserver, - controller, - proxy, - scheduler, - kubectlCmd, - kubelet, - cloudController, - } - - cmd := &cobra.Command{ - Use: "hyperkube", - Short: "Request a new project", - Run: func(cmd *cobra.Command, args []string) { - if len(args) != 0 { - cmd.Help() - os.Exit(1) - } - - }, - } - - for i := range commandFns { - cmd.AddCommand(commandFns[i]()) - } - - return cmd, commandFns -}