bug: controller-manager's os.Exit will not wait for the defer function

Signed-off-by: kerthcet <kerthcet@gmail.com>
This commit is contained in:
kerthcet 2022-01-28 10:07:54 +08:00
parent 85554ff187
commit 98842ed756
1 changed files with 9 additions and 5 deletions

View File

@ -1,7 +1,6 @@
package main package main
import ( import (
"fmt"
"os" "os"
// Note that Kubernetes registers workqueue metrics to default prometheus Registry. And the registry will be // Note that Kubernetes registers workqueue metrics to default prometheus Registry. And the registry will be
@ -21,15 +20,20 @@ import (
"github.com/karmada-io/karmada/cmd/controller-manager/app" "github.com/karmada-io/karmada/cmd/controller-manager/app"
) )
// Controller-manager main.
func main() { func main() {
if err := runControllerManagerCmd(); err != nil {
os.Exit(1)
}
}
func runControllerManagerCmd() error {
logs.InitLogs() logs.InitLogs()
defer logs.FlushLogs() defer logs.FlushLogs()
ctx := apiserver.SetupSignalContext() ctx := apiserver.SetupSignalContext()
if err := app.NewControllerManagerCommand(ctx).Execute(); err != nil { if err := app.NewControllerManagerCommand(ctx).Execute(); err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err) return err
os.Exit(1)
} }
return nil
} }