16356: Makes health aggregator accessible from the outside on arvados boot.
authorLucas Di Pentima <lucas@di-pentima.com.ar>
Wed, 22 Apr 2020 21:09:24 +0000 (18:09 -0300)
committerLucas Di Pentima <lucas@di-pentima.com.ar>
Wed, 22 Apr 2020 21:09:24 +0000 (18:09 -0300)
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas@di-pentima.com.ar>

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

index ecbb7a9d3a40f9cfb916f7c89ff3f5841a38ac23..0f105d6b6ca3ad8b835f90c626060edd454aa513 100644 (file)
@@ -47,6 +47,7 @@ func (runNginx) Run(ctx context.Context, fail func(error), super *Supervisor) er
                {"KEEPWEBDL", super.cluster.Services.WebDAVDownload},
                {"KEEPPROXY", super.cluster.Services.Keepproxy},
                {"GIT", super.cluster.Services.GitHTTP},
+               {"HEALTH", super.cluster.Services.Health},
                {"WORKBENCH1", super.cluster.Services.Workbench1},
                {"WS", super.cluster.Services.Websocket},
        } {
index 7f5d6a9baae2dd4eaa2b2e66fea9585f7be3bdc1..26f38ac2319e520f99d574564031c48a550df4c6 100644 (file)
@@ -549,6 +549,7 @@ func (super *Supervisor) autofillConfig(cfg *arvados.Config) error {
                if svc.ExternalURL.Host == "" {
                        if svc == &cluster.Services.Controller ||
                                svc == &cluster.Services.GitHTTP ||
+                               svc == &cluster.Services.Health ||
                                svc == &cluster.Services.Keepproxy ||
                                svc == &cluster.Services.WebDAV ||
                                svc == &cluster.Services.WebDAVDownload ||
index 6e872a615c5fe9a8bebbe0c315497a527dd77e21..85b4f5b37bc619b3da2076c130b2494d9f977956 100644 (file)
@@ -71,6 +71,25 @@ http {
       proxy_request_buffering off;
     }
   }
+  upstream health {
+    server {{LISTENHOST}}:{{HEALTHPORT}};
+  }
+  server {
+    listen {{LISTENHOST}}:{{HEALTHSSLPORT}} ssl default_server;
+    server_name health;
+    ssl_certificate "{{SSLCERT}}";
+    ssl_certificate_key "{{SSLKEY}}";
+    location  / {
+      proxy_pass http://health;
+      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;
+
+      proxy_http_version 1.1;
+      proxy_request_buffering off;
+    }
+  }
   server {
     listen {{LISTENHOST}}:{{KEEPWEBDLSSLPORT}} ssl default_server;
     server_name keep-web-dl ~.*;
index 734bb04270bcfc7c94891542add7806b390350bc..420fcc48cb1b2516514925a8107276939f416b73 100644 (file)
@@ -615,6 +615,8 @@ def run_nginx():
     nginxconf['KEEPPROXYSSLPORT'] = external_port_from_config("Keepproxy")
     nginxconf['GITPORT'] = internal_port_from_config("GitHTTP")
     nginxconf['GITSSLPORT'] = external_port_from_config("GitHTTP")
+    nginxconf['HEALTHPORT'] = internal_port_from_config("Health")
+    nginxconf['HEALTHSSLPORT'] = external_port_from_config("Health")
     nginxconf['WSPORT'] = internal_port_from_config("Websocket")
     nginxconf['WSSSLPORT'] = external_port_from_config("Websocket")
     nginxconf['WORKBENCH1PORT'] = internal_port_from_config("Workbench1")