From 39be04c4e6f27faf16a5a657f9a1a8f2d0f44c0b Mon Sep 17 00:00:00 2001 From: Leonardo Cecchi Date: Fri, 29 Nov 2024 09:56:30 +0100 Subject: [PATCH] fix: exit code 0 on clean shutdown Signed-off-by: Leonardo Cecchi --- internal/cnpgi/instance/manager.go | 5 +++++ internal/cnpgi/operator/manager.go | 5 +++++ internal/cnpgi/restore/manager.go | 4 ++++ 3 files changed, 14 insertions(+) diff --git a/internal/cnpgi/instance/manager.go b/internal/cnpgi/instance/manager.go index 0c4dfa2..19add3a 100644 --- a/internal/cnpgi/instance/manager.go +++ b/internal/cnpgi/instance/manager.go @@ -2,6 +2,7 @@ package instance import ( "context" + "errors" "os" "path" @@ -94,6 +95,10 @@ func Start(ctx context.Context) error { } if err := mgr.Start(ctrl.SetupSignalHandler()); err != nil { + if errors.Is(err, context.Canceled) { + return nil + } + setupLog.Error(err, "problem running manager") return err } diff --git a/internal/cnpgi/operator/manager.go b/internal/cnpgi/operator/manager.go index f7ca78a..fa0e1d5 100644 --- a/internal/cnpgi/operator/manager.go +++ b/internal/cnpgi/operator/manager.go @@ -19,6 +19,7 @@ package operator import ( "context" "crypto/tls" + "errors" // +kubebuilder:scaffold:imports cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" @@ -155,6 +156,10 @@ func Start(ctx context.Context) error { setupLog.Info("starting manager") if err := mgr.Start(ctx); err != nil { + if errors.Is(err, context.Canceled) { + return nil + } + setupLog.Error(err, "problem running manager") return err } diff --git a/internal/cnpgi/restore/manager.go b/internal/cnpgi/restore/manager.go index ac00640..6e29362 100644 --- a/internal/cnpgi/restore/manager.go +++ b/internal/cnpgi/restore/manager.go @@ -2,6 +2,7 @@ package restore import ( "context" + "errors" "os" cnpgv1 "github.com/cloudnative-pg/cloudnative-pg/api/v1" @@ -93,6 +94,9 @@ func Start(ctx context.Context) error { } if err := mgr.Start(ctrl.SetupSignalHandler()); err != nil { + if errors.Is(err, context.Canceled) { + return nil + } setupLog.Error(err, "problem running manager") return err }