mirror of
https://github.com/kubeshark/kubeshark.git
synced 2025-05-03 22:28:33 +00:00
* Make `logger` a separate module such that don't depend on `shared` module as a whole for logging * Update `Dockerfile`
67 lines
1.8 KiB
Go
67 lines
1.8 KiB
Go
package cmd
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"github.com/up9inc/mizu/cli/utils"
|
|
|
|
"github.com/up9inc/mizu/cli/apiserver"
|
|
"github.com/up9inc/mizu/cli/config"
|
|
"github.com/up9inc/mizu/cli/mizu/fsUtils"
|
|
"github.com/up9inc/mizu/cli/uiUtils"
|
|
"github.com/up9inc/mizu/logger"
|
|
"github.com/up9inc/mizu/shared/kubernetes"
|
|
)
|
|
|
|
func runMizuView() {
|
|
kubernetesProvider, err := getKubernetesProviderForCli()
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
defer cancel()
|
|
|
|
url := config.Config.View.Url
|
|
|
|
if url == "" {
|
|
exists, err := kubernetesProvider.DoesServiceExist(ctx, config.Config.MizuResourcesNamespace, kubernetes.ApiServerPodName)
|
|
if err != nil {
|
|
logger.Log.Errorf("Failed to found mizu service %v", err)
|
|
cancel()
|
|
return
|
|
}
|
|
if !exists {
|
|
logger.Log.Infof("%s service not found, you should run `mizu tap` command first", kubernetes.ApiServerPodName)
|
|
cancel()
|
|
return
|
|
}
|
|
|
|
url = GetApiServerUrl(config.Config.View.GuiPort)
|
|
|
|
response, err := http.Get(fmt.Sprintf("%s/", url))
|
|
if err == nil && response.StatusCode == 200 {
|
|
logger.Log.Infof("Found a running service %s and open port %d", kubernetes.ApiServerPodName, config.Config.View.GuiPort)
|
|
return
|
|
}
|
|
logger.Log.Infof("Establishing connection to k8s cluster...")
|
|
startProxyReportErrorIfAny(kubernetesProvider, ctx, cancel, config.Config.View.GuiPort)
|
|
}
|
|
|
|
apiServerProvider := apiserver.NewProvider(url, apiserver.DefaultRetries, apiserver.DefaultTimeout)
|
|
if err := apiServerProvider.TestConnection(); err != nil {
|
|
logger.Log.Errorf(uiUtils.Error, fmt.Sprintf("Couldn't connect to API server, for more info check logs at %s", fsUtils.GetLogFilePath()))
|
|
return
|
|
}
|
|
|
|
logger.Log.Infof("Mizu is available at %s", url)
|
|
|
|
if !config.Config.HeadlessMode {
|
|
uiUtils.OpenBrowser(url)
|
|
}
|
|
|
|
utils.WaitForFinish(ctx, cancel)
|
|
}
|