From 324bb55986ecc30d8cbb0ab2f55d6635611f0bc8 Mon Sep 17 00:00:00 2001 From: Brian Downs Date: Wed, 19 Aug 2020 16:54:58 -0700 Subject: [PATCH] add ctx to hook, handle hook errors Signed-off-by: Brian Downs --- pkg/cli/cmds/server.go | 4 +++- pkg/server/server.go | 4 +++- pkg/server/types.go | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/pkg/cli/cmds/server.go b/pkg/cli/cmds/server.go index 9ebc003349..5746ac59d6 100644 --- a/pkg/cli/cmds/server.go +++ b/pkg/cli/cmds/server.go @@ -1,6 +1,8 @@ package cmds import ( + "context" + "github.com/rancher/k3s/pkg/daemons/config" "github.com/rancher/k3s/pkg/version" "github.com/rancher/spur/cli" @@ -55,7 +57,7 @@ type Server struct { ClusterInit bool ClusterReset bool EncryptSecrets bool - StartupHooks []func(config.Control) error + StartupHooks []func(context.Context, config.Control) error } var ServerConfig Server diff --git a/pkg/server/server.go b/pkg/server/server.go index 90019ff6c1..12bb4a0cc2 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -61,7 +61,9 @@ func StartServer(ctx context.Context, config *Config) error { } for _, hook := range config.StartupHooks { - hook(config.ControlConfig) + if err := hook(ctx, config.ControlConfig); err != nil { + return errors.Wrap(err, "startup hook") + } } ip := net2.ParseIP(config.ControlConfig.BindAddress) diff --git a/pkg/server/types.go b/pkg/server/types.go index b92f11330a..69f96389e1 100644 --- a/pkg/server/types.go +++ b/pkg/server/types.go @@ -1,6 +1,8 @@ package server import ( + "context" + "github.com/rancher/k3s/pkg/daemons/config" ) @@ -10,5 +12,5 @@ type Config struct { ControlConfig config.Control Rootless bool SupervisorPort int - StartupHooks []func(config.Control) error + StartupHooks []func(context.Context, config.Control) error }