From e9ee10287b33abbc88116ca1ef7f4bd22adcfe76 Mon Sep 17 00:00:00 2001 From: Andrei Pohilko Date: Mon, 13 Mar 2023 15:26:32 +0000 Subject: [PATCH] Improve console message in case no k8s connection possible --- main.go | 9 ++++++++- pkg/dashboard/server.go | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index b950965..a816d51 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( "context" "fmt" + "github.com/joomcode/errorx" "os" "os/signal" "strings" @@ -73,7 +74,13 @@ func main() { address, webServerDone, err := server.StartServer(ctx, cancel) if err != nil { - log.Fatalf("Failed to start Helm Dashboard: %+v", err) + if errorx.IsOfType(err, errorx.InitializationFailed) { + log.Debugf("Full error: %+v", err) + log.Errorf("No Kubernetes cluster connection possible. Make sure you have valid kubeconfig file or run dashboard from inside cluster. See https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/") + os.Exit(1) + } else { + log.Fatalf("Failed to start Helm Dashboard: %+v", err) + } } if !opts.NoTracking { diff --git a/pkg/dashboard/server.go b/pkg/dashboard/server.go index eaadf0d..4022f73 100644 --- a/pkg/dashboard/server.go +++ b/pkg/dashboard/server.go @@ -46,7 +46,7 @@ func (s *Server) StartServer(ctx context.Context, cancel context.CancelFunc) (st err = s.detectClusterMode(data) if err != nil { - return "", nil, err + return "", nil, errorx.Decorate(err, "Failed to detect cluster mode") } go checkUpgrade(data.StatusInfo) @@ -80,7 +80,7 @@ func (s *Server) detectClusterMode(data *objects.DataLayer) error { } ns, err := app.K8s.GetNameSpaces() if err != nil { // no point in continuing without kubectl context and k8s connection - return err + return errorx.InitializationFailed.Wrap(err, "No k8s cluster connection") } log.Debugf("Got %d namespaces listed", len(ns.Items)) data.StatusInfo.ClusterMode = true