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
import (
"fmt"
"os"
// 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"
)
// Controller-manager main.
func main() {
if err := runControllerManagerCmd(); err != nil {
os.Exit(1)
}
}
func runControllerManagerCmd() error {
logs.InitLogs()
defer logs.FlushLogs()
ctx := apiserver.SetupSignalContext()
if err := app.NewControllerManagerCommand(ctx).Execute(); err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err)
os.Exit(1)
return err
}
return nil
}