diff --git a/README.md b/README.md index 4ccce42a0..6b328e283 100644 --- a/README.md +++ b/README.md @@ -171,6 +171,16 @@ against the contracts. Please see [CONTRACT MONITORING](docs/CONTRACT_MONITORING.md) page for more details and syntax. +### Configure proxy host + +By default, mizu will be accessible via local host: 'http://localhost:8899/mizu/', it is possible to change the host, +for instance, to '0.0.0.0' which can grant access via machine IP address. +This setting can be changed via command line flag `--set tap.proxy-host=` or via config file: +tap + proxy-host: 0.0.0.0 +and when changed it will support accessing by IP + + ## How to Run local UI - run from mizu/agent `go run main.go --hars-read --hars-dir ` diff --git a/cli/cmd/common.go b/cli/cmd/common.go index b9c8f87f3..55690f9bb 100644 --- a/cli/cmd/common.go +++ b/cli/cmd/common.go @@ -21,7 +21,7 @@ func GetApiServerUrl() string { } func startProxyReportErrorIfAny(kubernetesProvider *kubernetes.Provider, cancel context.CancelFunc) { - err := kubernetes.StartProxy(kubernetesProvider, config.Config.Tap.GuiPort, config.Config.MizuResourcesNamespace, mizu.ApiServerPodName) + err := kubernetes.StartProxy(kubernetesProvider, config.Config.Tap.ProxyHost, config.Config.Tap.GuiPort, config.Config.MizuResourcesNamespace, mizu.ApiServerPodName) if err != nil { logger.Log.Errorf(uiUtils.Error, fmt.Sprintf("Error occured while running k8s proxy %v\n"+ "Try setting different port by using --%s", errormessage.FormatError(err), configStructs.GuiPortTapName)) diff --git a/cli/config/configStructs/tapConfig.go b/cli/config/configStructs/tapConfig.go index 35a71c9fd..de256fa0b 100644 --- a/cli/config/configStructs/tapConfig.go +++ b/cli/config/configStructs/tapConfig.go @@ -26,6 +26,7 @@ type TapConfig struct { UploadIntervalSec int `yaml:"upload-interval" default:"10"` PodRegexStr string `yaml:"regex" default:".*"` GuiPort uint16 `yaml:"gui-port" default:"8899"` + ProxyHost string `yaml:"proxy-host" default:"127.0.0.1"` Namespaces []string `yaml:"namespaces"` Analysis bool `yaml:"analysis" default:"false"` AllNamespaces bool `yaml:"all-namespaces" default:"false"` diff --git a/cli/kubernetes/proxy.go b/cli/kubernetes/proxy.go index d0b2c9fa4..cfb69e4db 100644 --- a/cli/kubernetes/proxy.go +++ b/cli/kubernetes/proxy.go @@ -14,12 +14,12 @@ import ( const k8sProxyApiPrefix = "/" const mizuServicePort = 80 -func StartProxy(kubernetesProvider *Provider, mizuPort uint16, mizuNamespace string, mizuServiceName string) error { +func StartProxy(kubernetesProvider *Provider, proxyHost string, mizuPort uint16, mizuNamespace string, mizuServiceName string) error { logger.Log.Debugf("Starting proxy. namespace: [%v], service name: [%s], port: [%v]", mizuNamespace, mizuServiceName, mizuPort) filter := &proxy.FilterServer{ - AcceptPaths: proxy.MakeRegexpArrayOrDie(".*"), + AcceptPaths: proxy.MakeRegexpArrayOrDie(proxy.DefaultPathAcceptRE), RejectPaths: proxy.MakeRegexpArrayOrDie(proxy.DefaultPathRejectRE), - AcceptHosts: proxy.MakeRegexpArrayOrDie(proxy.DefaultHostAcceptRE), + AcceptHosts: proxy.MakeRegexpArrayOrDie("^.*"), RejectMethods: proxy.MakeRegexpArrayOrDie(proxy.DefaultMethodRejectRE), } @@ -32,7 +32,7 @@ func StartProxy(kubernetesProvider *Provider, mizuPort uint16, mizuNamespace str mux.Handle("/static/", getRerouteHttpHandlerMizuStatic(proxyHandler, mizuNamespace, mizuServiceName)) mux.Handle("/mizu/", getRerouteHttpHandlerMizuAPI(proxyHandler, mizuNamespace, mizuServiceName)) - l, err := net.Listen("tcp", fmt.Sprintf("%s:%d", "0.0.0.0", int(mizuPort))) + l, err := net.Listen("tcp", fmt.Sprintf("%s:%d", proxyHost, int(mizuPort))) if err != nil { return err }