mirror of https://github.com/k3s-io/k3s
move signal handling for hyperkube apiserver and kubelet commands out of hyperkube main command
parent
1a162790f6
commit
7cbe2d6c5f
|
@ -31,7 +31,6 @@ go_library(
|
|||
"//cmd/kube-scheduler/app:go_default_library",
|
||||
"//cmd/kubeadm/app/cmd:go_default_library",
|
||||
"//cmd/kubelet/app:go_default_library",
|
||||
"//staging/src/k8s.io/apiserver/pkg/server:go_default_library",
|
||||
"//vendor/github.com/spf13/cobra:go_default_library",
|
||||
"//vendor/github.com/spf13/cobra/doc:go_default_library",
|
||||
"//vendor/github.com/spf13/pflag:go_default_library",
|
||||
|
|
|
@ -22,7 +22,6 @@ import (
|
|||
|
||||
"github.com/spf13/cobra/doc"
|
||||
"github.com/spf13/pflag"
|
||||
"k8s.io/apiserver/pkg/server"
|
||||
ccmapp "k8s.io/kubernetes/cmd/cloud-controller-manager/app"
|
||||
"k8s.io/kubernetes/cmd/genutils"
|
||||
apiservapp "k8s.io/kubernetes/cmd/kube-apiserver/app"
|
||||
|
@ -54,7 +53,7 @@ func main() {
|
|||
switch module {
|
||||
case "kube-apiserver":
|
||||
// generate docs for kube-apiserver
|
||||
apiserver := apiservapp.NewAPIServerCommand(server.SetupSignalHandler())
|
||||
apiserver := apiservapp.NewAPIServerCommand()
|
||||
doc.GenMarkdownTree(apiserver, outDir)
|
||||
case "kube-controller-manager":
|
||||
// generate docs for kube-controller-manager
|
||||
|
@ -74,7 +73,7 @@ func main() {
|
|||
doc.GenMarkdownTree(scheduler, outDir)
|
||||
case "kubelet":
|
||||
// generate docs for kubelet
|
||||
kubelet := kubeletapp.NewKubeletCommand(server.SetupSignalHandler())
|
||||
kubelet := kubeletapp.NewKubeletCommand()
|
||||
doc.GenMarkdownTree(kubelet, outDir)
|
||||
case "kubeadm":
|
||||
// resets global flags created by kubelet or other commands e.g.
|
||||
|
|
|
@ -25,7 +25,6 @@ go_library(
|
|||
"//cmd/kubeadm/app/cmd:go_default_library",
|
||||
"//cmd/kubelet/app:go_default_library",
|
||||
"//pkg/kubectl/cmd:go_default_library",
|
||||
"//staging/src/k8s.io/apiserver/pkg/server:go_default_library",
|
||||
"//vendor/github.com/cpuguy83/go-md2man/md2man:go_default_library",
|
||||
"//vendor/github.com/spf13/cobra:go_default_library",
|
||||
"//vendor/github.com/spf13/pflag:go_default_library",
|
||||
|
|
|
@ -26,7 +26,6 @@ import (
|
|||
mangen "github.com/cpuguy83/go-md2man/md2man"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/pflag"
|
||||
"k8s.io/apiserver/pkg/server"
|
||||
ccmapp "k8s.io/kubernetes/cmd/cloud-controller-manager/app"
|
||||
"k8s.io/kubernetes/cmd/genutils"
|
||||
apiservapp "k8s.io/kubernetes/cmd/kube-apiserver/app"
|
||||
|
@ -63,7 +62,7 @@ func main() {
|
|||
switch module {
|
||||
case "kube-apiserver":
|
||||
// generate manpage for kube-apiserver
|
||||
apiserver := apiservapp.NewAPIServerCommand(server.SetupSignalHandler())
|
||||
apiserver := apiservapp.NewAPIServerCommand()
|
||||
genMarkdown(apiserver, "", outDir)
|
||||
for _, c := range apiserver.Commands() {
|
||||
genMarkdown(c, "kube-apiserver", outDir)
|
||||
|
@ -98,7 +97,7 @@ func main() {
|
|||
}
|
||||
case "kubelet":
|
||||
// generate manpage for kubelet
|
||||
kubelet := kubeletapp.NewKubeletCommand(server.SetupSignalHandler())
|
||||
kubelet := kubeletapp.NewKubeletCommand()
|
||||
genMarkdown(kubelet, "", outDir)
|
||||
for _, c := range kubelet.Commands() {
|
||||
genMarkdown(c, "kubelet", outDir)
|
||||
|
|
|
@ -27,7 +27,6 @@ go_library(
|
|||
"//pkg/client/metrics/prometheus:go_default_library",
|
||||
"//pkg/kubectl/cmd:go_default_library",
|
||||
"//pkg/version/prometheus:go_default_library",
|
||||
"//staging/src/k8s.io/apiserver/pkg/server:go_default_library",
|
||||
"//staging/src/k8s.io/component-base/cli/flag:go_default_library",
|
||||
"//staging/src/k8s.io/component-base/logs:go_default_library",
|
||||
"//vendor/github.com/spf13/cobra:go_default_library",
|
||||
|
|
|
@ -32,7 +32,6 @@ import (
|
|||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/pflag"
|
||||
|
||||
"k8s.io/apiserver/pkg/server"
|
||||
cliflag "k8s.io/component-base/cli/flag"
|
||||
"k8s.io/component-base/logs"
|
||||
cloudcontrollermanager "k8s.io/kubernetes/cmd/cloud-controller-manager/app"
|
||||
|
@ -49,7 +48,7 @@ import (
|
|||
func main() {
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
|
||||
hyperkubeCommand, allCommandFns := NewHyperKubeCommand(server.SetupSignalHandler())
|
||||
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
|
||||
|
@ -84,15 +83,15 @@ func commandFor(basename string, defaultCommand *cobra.Command, commands []func(
|
|||
}
|
||||
|
||||
// NewHyperKubeCommand is the entry point for hyperkube
|
||||
func NewHyperKubeCommand(stopCh <-chan struct{}) (*cobra.Command, []func() *cobra.Command) {
|
||||
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(stopCh) }
|
||||
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(stopCh) }
|
||||
kubelet := func() *cobra.Command { return kubelet.NewKubeletCommand() }
|
||||
cloudController := func() *cobra.Command { return cloudcontrollermanager.NewCloudControllerManagerCommand() }
|
||||
|
||||
commandFns := []func() *cobra.Command{
|
||||
|
|
|
@ -22,7 +22,6 @@ go_library(
|
|||
"//cmd/kube-apiserver/app:go_default_library",
|
||||
"//pkg/util/prometheusclientgo:go_default_library",
|
||||
"//pkg/version/prometheus:go_default_library",
|
||||
"//staging/src/k8s.io/apiserver/pkg/server:go_default_library",
|
||||
"//staging/src/k8s.io/component-base/logs:go_default_library",
|
||||
],
|
||||
)
|
||||
|
|
|
@ -24,7 +24,6 @@ import (
|
|||
"os"
|
||||
"time"
|
||||
|
||||
"k8s.io/apiserver/pkg/server"
|
||||
"k8s.io/component-base/logs"
|
||||
"k8s.io/kubernetes/cmd/kube-apiserver/app"
|
||||
_ "k8s.io/kubernetes/pkg/util/prometheusclientgo" // load all the prometheus client-go plugins
|
||||
|
@ -34,7 +33,7 @@ import (
|
|||
func main() {
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
|
||||
command := app.NewAPIServerCommand(server.SetupSignalHandler())
|
||||
command := app.NewAPIServerCommand()
|
||||
|
||||
// TODO: once we switch everything over to Cobra commands, we can go back to calling
|
||||
// utilflag.InitFlags() (by removing its pflag.Parse() call). For now, we have to set the
|
||||
|
|
|
@ -88,7 +88,7 @@ const etcdRetryLimit = 60
|
|||
const etcdRetryInterval = 1 * time.Second
|
||||
|
||||
// NewAPIServerCommand creates a *cobra.Command object with default parameters
|
||||
func NewAPIServerCommand(stopCh <-chan struct{}) *cobra.Command {
|
||||
func NewAPIServerCommand() *cobra.Command {
|
||||
s := options.NewServerRunOptions()
|
||||
cmd := &cobra.Command{
|
||||
Use: "kube-apiserver",
|
||||
|
@ -111,7 +111,7 @@ cluster's shared state through which all other components interact.`,
|
|||
return utilerrors.NewAggregate(errs)
|
||||
}
|
||||
|
||||
return Run(completedOptions, stopCh)
|
||||
return Run(completedOptions, genericapiserver.SetupSignalHandler())
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -21,7 +21,6 @@ go_library(
|
|||
"//cmd/kubelet/app:go_default_library",
|
||||
"//pkg/client/metrics/prometheus:go_default_library",
|
||||
"//pkg/version/prometheus:go_default_library",
|
||||
"//staging/src/k8s.io/apiserver/pkg/server:go_default_library",
|
||||
"//staging/src/k8s.io/component-base/logs:go_default_library",
|
||||
],
|
||||
)
|
||||
|
|
|
@ -122,6 +122,7 @@ go_library(
|
|||
"//staging/src/k8s.io/apiserver/pkg/authentication/authenticatorfactory:go_default_library",
|
||||
"//staging/src/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library",
|
||||
"//staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory:go_default_library",
|
||||
"//staging/src/k8s.io/apiserver/pkg/server:go_default_library",
|
||||
"//staging/src/k8s.io/apiserver/pkg/server/healthz:go_default_library",
|
||||
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
||||
|
|
|
@ -46,6 +46,7 @@ import (
|
|||
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/apimachinery/pkg/util/wait"
|
||||
genericapiserver "k8s.io/apiserver/pkg/server"
|
||||
"k8s.io/apiserver/pkg/server/healthz"
|
||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||
clientset "k8s.io/client-go/kubernetes"
|
||||
|
@ -108,7 +109,7 @@ const (
|
|||
)
|
||||
|
||||
// NewKubeletCommand creates a *cobra.Command object with default parameters
|
||||
func NewKubeletCommand(stopCh <-chan struct{}) *cobra.Command {
|
||||
func NewKubeletCommand() *cobra.Command {
|
||||
cleanFlagSet := pflag.NewFlagSet(componentKubelet, pflag.ContinueOnError)
|
||||
cleanFlagSet.SetNormalizeFunc(cliflag.WordSepNormalizeFunc)
|
||||
kubeletFlags := options.NewKubeletFlags()
|
||||
|
@ -254,6 +255,9 @@ HTTP server: The kubelet can also listen for HTTP and respond to a simple API
|
|||
// add the kubelet config controller to kubeletDeps
|
||||
kubeletDeps.KubeletConfigController = kubeletConfigController
|
||||
|
||||
// set up stopCh here in order to be reused by kubelet and docker shim
|
||||
stopCh := genericapiserver.SetupSignalHandler()
|
||||
|
||||
// start the experimental docker shim, if enabled
|
||||
if kubeletServer.KubeletFlags.ExperimentalDockershim {
|
||||
if err := RunDockershim(&kubeletServer.KubeletFlags, kubeletConfig, stopCh); err != nil {
|
||||
|
|
|
@ -26,7 +26,6 @@ import (
|
|||
"os"
|
||||
"time"
|
||||
|
||||
"k8s.io/apiserver/pkg/server"
|
||||
"k8s.io/component-base/logs"
|
||||
"k8s.io/kubernetes/cmd/kubelet/app"
|
||||
_ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration
|
||||
|
@ -36,7 +35,7 @@ import (
|
|||
func main() {
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
|
||||
command := app.NewKubeletCommand(server.SetupSignalHandler())
|
||||
command := app.NewKubeletCommand()
|
||||
logs.InitLogs()
|
||||
defer logs.FlushLogs()
|
||||
|
||||
|
|
Loading…
Reference in New Issue