From f11c44dd15fed6cc2677d57b12258b651a77a93e Mon Sep 17 00:00:00 2001 From: Inteon <42113979+inteon@users.noreply.github.com> Date: Thu, 22 Jul 2021 20:38:59 +0200 Subject: [PATCH] acme solver wait for server to shutdown Signed-off-by: Inteon <42113979+inteon@users.noreply.github.com> --- cmd/acmesolver/app/app.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/cmd/acmesolver/app/app.go b/cmd/acmesolver/app/app.go index 641aa644d..7b4954daa 100644 --- a/cmd/acmesolver/app/app.go +++ b/cmd/acmesolver/app/app.go @@ -18,6 +18,7 @@ package app import ( "context" + "time" "github.com/spf13/cobra" @@ -37,9 +38,15 @@ func NewACMESolverCommand(stopCh <-chan struct{}) *cobra.Command { rootCtx = logf.NewContext(rootCtx, nil, "acmesolver") log := logf.FromContext(rootCtx) + completedCh := make(chan struct{}) go func() { + defer close(completedCh) <-stopCh - if err := s.Shutdown(rootCtx); err != nil { + // allow a timeout for graceful shutdown + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + if err := s.Shutdown(ctx); err != nil { log.Error(err, "error shutting down acmesolver server") } }() @@ -48,6 +55,8 @@ func NewACMESolverCommand(stopCh <-chan struct{}) *cobra.Command { return err } + <-completedCh + return nil }, }