diff options
author | leandroalves <leandroalves@yahooinc.com> | 2023-08-22 22:37:50 +0200 |
---|---|---|
committer | leandroalves <leandroalves@yahooinc.com> | 2023-08-22 22:37:50 +0200 |
commit | b9ba4789eca6ca6fb851d0085e98e90092972565 (patch) | |
tree | 3771e546dcf61a61da57e0061629447b746786df | |
parent | 26456ae0f6ebba384c971e008374c7c5556f8f36 (diff) |
Use the proxy server even for Non-cloudldalves/querybuilder
-rw-r--r-- | client/go/internal/cli/cmd/toolkit.go | 36 | ||||
-rw-r--r-- | client/go/internal/toolkit/proxy.go | 27 |
2 files changed, 30 insertions, 33 deletions
diff --git a/client/go/internal/cli/cmd/toolkit.go b/client/go/internal/cli/cmd/toolkit.go index 0637974bf77..fd731c66242 100644 --- a/client/go/internal/cli/cmd/toolkit.go +++ b/client/go/internal/cli/cmd/toolkit.go @@ -64,20 +64,18 @@ a convenient interface for interacting with the Vespa service.`, // Only initialize and start the ProxyServer if target is cloud var proxyServer *toolkit.ProxyServer - if target.IsCloud() { - proxyServer, err = toolkit.NewProxyServer(service) - if err != nil { - return fmt.Errorf("could not initialize proxy server: %w", err) - } - wg.Add(1) - go func() { - defer wg.Done() - fmt.Printf("Proxy server is running on http://localhost:%d\n", proxyServer.Port) - if err := proxyServer.Start(); err != nil && !errors.Is(err, http.ErrServerClosed) { - log.Printf("Proxy server stopped with error: %v\n", err) - } - }() + proxyServer, err = toolkit.NewProxyServer(service, target) + if err != nil { + return fmt.Errorf("could not initialize proxy server: %w", err) } + wg.Add(1) + go func() { + defer wg.Done() + fmt.Printf("Proxy server is running on http://localhost:%d\n", proxyServer.Port) + if err := proxyServer.Start(); err != nil && !errors.Is(err, http.ErrServerClosed) { + log.Printf("Proxy server stopped with error: %v\n", err) + } + }() // Signal listener for graceful shutdown c := make(chan os.Signal, 1) @@ -90,17 +88,13 @@ a convenient interface for interacting with the Vespa service.`, if err := frontendServer.Shutdown(ctx); err != nil { log.Printf("Error stopping frontend server: %v\n", err) } - // Stop proxy server if it was started - if proxyServer != nil { - if err := proxyServer.Shutdown(ctx); err != nil { - log.Printf("Error stopping proxy server: %v\n", err) - } + // Stop proxy server + if err := proxyServer.Shutdown(ctx); err != nil { + log.Printf("Error stopping proxy server: %v\n", err) } // Decrement the wait group for each server to allow the main goroutine to exit wg.Done() - if proxyServer != nil { - wg.Done() - } + wg.Done() }() wg.Wait() diff --git a/client/go/internal/toolkit/proxy.go b/client/go/internal/toolkit/proxy.go index f881c280b19..a52927e2fca 100644 --- a/client/go/internal/toolkit/proxy.go +++ b/client/go/internal/toolkit/proxy.go @@ -17,13 +17,8 @@ type ProxyServer struct { } // NewProxyServer creates a new instance of ProxyServer. -func NewProxyServer(service *vespa.Service) (*ProxyServer, error) { - port := 8080 - - cert, err := tls.LoadX509KeyPair(service.TLSOptions.CertificateFile, service.TLSOptions.PrivateKeyFile) - if err != nil { - return nil, fmt.Errorf("failed to load Vespa certificate and key: %w", err) - } +func NewProxyServer(service *vespa.Service, target vespa.Target) (*ProxyServer, error) { + port := 8081 endpointUrl, err := url.Parse(service.BaseURL) if err != nil { @@ -32,11 +27,19 @@ func NewProxyServer(service *vespa.Service) (*ProxyServer, error) { // Create the reverse proxy proxy := httputil.NewSingleHostReverseProxy(endpointUrl) - proxy.Transport = &http.Transport{ - TLSClientConfig: &tls.Config{ - Certificates: []tls.Certificate{cert}, - InsecureSkipVerify: false, // True only if we want to skip verifying Vespa's server certificate - }, + + if target.IsCloud() { + // Load the certificate and key only for cloud targets + cert, err := tls.LoadX509KeyPair(service.TLSOptions.CertificateFile, service.TLSOptions.PrivateKeyFile) + if err != nil { + return nil, fmt.Errorf("failed to load Vespa certificate and key: %w", err) + } + proxy.Transport = &http.Transport{ + TLSClientConfig: &tls.Config{ + Certificates: []tls.Certificate{cert}, + InsecureSkipVerify: false, + }, + } } // Set up routes |