15954: Add workbench1.
authorTom Clegg <tom@tomclegg.ca>
Fri, 14 Feb 2020 18:07:03 +0000 (13:07 -0500)
committerTom Clegg <tom@tomclegg.ca>
Fri, 14 Feb 2020 18:07:03 +0000 (13:07 -0500)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@tomclegg.ca>

lib/boot/nginx.go
sdk/python/tests/nginx.conf
sdk/python/tests/run_test_server.py

index b5b712af6899875cdf5fe1b6351d2cb7e4dcaf70..c5bfd605afac4485bd391c6d87cc5016eddfc0de 100644 (file)
@@ -40,6 +40,7 @@ func (runNginx) Run(ctx context.Context, fail func(error), boot *Booter) error {
                {"KEEPWEBDL", boot.cluster.Services.WebDAVDownload},
                {"KEEPPROXY", boot.cluster.Services.Keepproxy},
                {"GIT", boot.cluster.Services.GitHTTP},
+               {"WORKBENCH1", boot.cluster.Services.Workbench1},
                {"WS", boot.cluster.Services.Websocket},
        } {
                vars[cmpt.varname+"PORT"], err = internalPort(cmpt.svc)
index e9be122354c933dbea9b828b093a1ca295c087e7..b42090fed14287218ff3232b3fc44cdb05cabeab 100644 (file)
@@ -106,6 +106,22 @@ http {
       proxy_redirect off;
     }
   }
+  upstream workbench1 {
+    server localhost:{{WORKBENCH1PORT}};
+  }
+  server {
+    listen *:{{WORKBENCH1SSLPORT}} ssl default_server;
+    server_name workbench1;
+    ssl_certificate "{{SSLCERT}}";
+    ssl_certificate_key "{{SSLKEY}}";
+    location  / {
+      proxy_pass http://workbench1;
+      proxy_set_header Host $http_host;
+      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+      proxy_set_header X-Forwarded-Proto https;
+      proxy_redirect off;
+    }
+  }
   upstream controller {
     server localhost:{{CONTROLLERPORT}};
   }
index 5c05c124c642c7467d6252b8bcb420c8ca271767..005c75edf01591558047a164c1aae722d4e3ed55 100644 (file)
@@ -617,6 +617,8 @@ def run_nginx():
     nginxconf['GITSSLPORT'] = external_port_from_config("GitHTTP")
     nginxconf['WSPORT'] = internal_port_from_config("Websocket")
     nginxconf['WSSSLPORT'] = external_port_from_config("Websocket")
+    nginxconf['WORKBENCH1PORT'] = internal_port_from_config("Workbench1")
+    nginxconf['WORKBENCH1SSLPORT'] = external_port_from_config("Workbench1")
     nginxconf['SSLCERT'] = os.path.join(SERVICES_SRC_DIR, 'api', 'tmp', 'self-signed.pem')
     nginxconf['SSLKEY'] = os.path.join(SERVICES_SRC_DIR, 'api', 'tmp', 'self-signed.key')
     nginxconf['ACCESSLOG'] = _logfilename('nginx_access')
@@ -648,6 +650,8 @@ def setup_config():
     controller_external_port = find_available_port()
     websocket_port = find_available_port()
     websocket_external_port = find_available_port()
+    workbench1_port = find_available_port()
+    workbench1_external_port = find_available_port()
     git_httpd_port = find_available_port()
     git_httpd_external_port = find_available_port()
     keepproxy_port = find_available_port()
@@ -683,6 +687,12 @@ def setup_config():
                 "http://%s:%s"%(localhost, websocket_port): {},
             },
         },
+        "Workbench1": {
+            "ExternalURL": "https://%s:%s/" % (localhost, workbench1_external_port),
+            "InternalURLs": {
+                "http://%s:%s"%(localhost, workbench1_port): {},
+            },
+        },
         "GitHTTP": {
             "ExternalURL": "https://%s:%s" % (localhost, git_httpd_external_port),
             "InternalURLs": {