aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorleandroalves <leandroalves@yahooinc.com>2023-08-22 22:37:50 +0200
committerleandroalves <leandroalves@yahooinc.com>2023-08-22 22:37:50 +0200
commitb9ba4789eca6ca6fb851d0085e98e90092972565 (patch)
tree3771e546dcf61a61da57e0061629447b746786df
parent26456ae0f6ebba384c971e008374c7c5556f8f36 (diff)
Use the proxy server even for Non-cloudldalves/querybuilder
-rw-r--r--client/go/internal/cli/cmd/toolkit.go36
-rw-r--r--client/go/internal/toolkit/proxy.go27
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