Commit c434db7c authored by Brad Davidson's avatar Brad Davidson Committed by Brad Davidson

Wrap errors in runControllers for additional context

parent 422d266d
...@@ -7,6 +7,7 @@ import ( ...@@ -7,6 +7,7 @@ import (
"runtime" "runtime"
"github.com/k3s-io/helm-controller/pkg/generated/controllers/helm.cattle.io" "github.com/k3s-io/helm-controller/pkg/generated/controllers/helm.cattle.io"
"github.com/pkg/errors"
"github.com/rancher/k3s/pkg/deploy" "github.com/rancher/k3s/pkg/deploy"
"github.com/rancher/k3s/pkg/generated/controllers/k3s.cattle.io" "github.com/rancher/k3s/pkg/generated/controllers/k3s.cattle.io"
"github.com/rancher/k3s/pkg/version" "github.com/rancher/k3s/pkg/version"
...@@ -56,7 +57,7 @@ func NewContext(ctx context.Context, cfg string) (*Context, error) { ...@@ -56,7 +57,7 @@ func NewContext(ctx context.Context, cfg string) (*Context, error) {
restConfig.UserAgent = fmt.Sprintf("%s/%s (%s/%s) %s/%s", managerName, version.Version, runtime.GOOS, runtime.GOARCH, version.Program, version.GitCommit) restConfig.UserAgent = fmt.Sprintf("%s/%s (%s/%s) %s/%s", managerName, version.Version, runtime.GOOS, runtime.GOARCH, version.Program, version.GitCommit)
if err := crds(ctx, restConfig); err != nil { if err := crds(ctx, restConfig); err != nil {
return nil, err return nil, errors.Wrap(err, "failed to register CRDs")
} }
k8s := kubernetes.NewForConfigOrDie(restConfig) k8s := kubernetes.NewForConfigOrDie(restConfig)
......
...@@ -117,12 +117,12 @@ func runControllers(ctx context.Context, wg *sync.WaitGroup, config *Config) err ...@@ -117,12 +117,12 @@ func runControllers(ctx context.Context, wg *sync.WaitGroup, config *Config) err
sc, err := NewContext(ctx, controlConfig.Runtime.KubeConfigAdmin) sc, err := NewContext(ctx, controlConfig.Runtime.KubeConfigAdmin)
if err != nil { if err != nil {
return err return errors.Wrap(err, "failed to create new server context")
} }
wg.Wait() wg.Wait()
if err := stageFiles(ctx, sc, controlConfig); err != nil { if err := stageFiles(ctx, sc, controlConfig); err != nil {
return err return errors.Wrap(err, "failed to stage files")
} }
// run migration before we set controlConfig.Runtime.Core // run migration before we set controlConfig.Runtime.Core
...@@ -130,24 +130,24 @@ func runControllers(ctx context.Context, wg *sync.WaitGroup, config *Config) err ...@@ -130,24 +130,24 @@ func runControllers(ctx context.Context, wg *sync.WaitGroup, config *Config) err
sc.Core.Core().V1().Secret(), sc.Core.Core().V1().Secret(),
sc.Core.Core().V1().Node(), sc.Core.Core().V1().Node(),
controlConfig.Runtime.NodePasswdFile); err != nil { controlConfig.Runtime.NodePasswdFile); err != nil {
logrus.Warn(errors.Wrapf(err, "error migrating node-password file")) logrus.Warn(errors.Wrap(err, "error migrating node-password file"))
} }
controlConfig.Runtime.Core = sc.Core controlConfig.Runtime.Core = sc.Core
if controlConfig.Runtime.ClusterControllerStart != nil { if controlConfig.Runtime.ClusterControllerStart != nil {
if err := controlConfig.Runtime.ClusterControllerStart(ctx); err != nil { if err := controlConfig.Runtime.ClusterControllerStart(ctx); err != nil {
return errors.Wrapf(err, "starting cluster controllers") return errors.Wrap(err, "failed to start cluster controllers")
} }
} }
for _, controller := range config.Controllers { for _, controller := range config.Controllers {
if err := controller(ctx, sc); err != nil { if err := controller(ctx, sc); err != nil {
return errors.Wrap(err, "controller") return errors.Wrapf(err, "failed to start custom controller %s", util.GetFunctionName(controller))
} }
} }
if err := sc.Start(ctx); err != nil { if err := sc.Start(ctx); err != nil {
return err return errors.Wrap(err, "failed to start wranger controllers")
} }
start := func(ctx context.Context) { start := func(ctx context.Context) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment