From f80ddac1bcfd93a6b564a586078a65110705c8b5 Mon Sep 17 00:00:00 2001 From: sanposhiho <44139130+sanposhiho@users.noreply.github.com> Date: Fri, 3 Sep 2021 21:25:00 +0900 Subject: [PATCH] Fix: return error instead of os.Exit when something goes wrong --- cmd/kube-proxy/app/server.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/cmd/kube-proxy/app/server.go b/cmd/kube-proxy/app/server.go index f7cb4adc8f2..84629b18e24 100644 --- a/cmd/kube-proxy/app/server.go +++ b/cmd/kube-proxy/app/server.go @@ -475,33 +475,34 @@ Service cluster IPs and ports are currently found through Docker-links-compatibl environment variables specifying ports opened by the service proxy. There is an optional addon that provides cluster DNS for these cluster IPs. The user must create a service with the apiserver API to configure the proxy.`, - Run: func(cmd *cobra.Command, args []string) { + RunE: func(cmd *cobra.Command, args []string) error { verflag.PrintAndExitIfRequested() cliflag.PrintFlags(cmd.Flags()) if err := initForOS(opts.WindowsService); err != nil { klog.ErrorS(err, "Failed OS init") - // ACTION REQUIRED: Exit code changed from 255 to 1 - os.Exit(1) + return err } if err := opts.Complete(); err != nil { klog.ErrorS(err, "Failed complete") - // ACTION REQUIRED: Exit code changed from 255 to 1 - os.Exit(1) + return err } if err := opts.Validate(); err != nil { klog.ErrorS(err, "Failed validate") - // ACTION REQUIRED: Exit code changed from 255 to 1 - os.Exit(1) + return err } if err := opts.Run(); err != nil { klog.ErrorS(err, "Error running ProxyServer") - os.Exit(1) + return err } + + return nil }, + SilenceUsage: true, + SilenceErrors: true, Args: func(cmd *cobra.Command, args []string) error { for _, arg := range args { if len(arg) > 0 {