From e8f260d7c0ba3a0b56b384859d7c33daaf958e0c Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Mon, 30 Dec 2024 16:48:23 +0100
Subject: [PATCH] Added gateway config

---
 helm/dbrepo/files/dbrepo.conf                | 171 +++++++++++++++++++
 helm/dbrepo/templates/gateway-configmap.yaml |  10 ++
 helm/dbrepo/values.yaml                      | 170 +-----------------
 3 files changed, 182 insertions(+), 169 deletions(-)
 create mode 100644 helm/dbrepo/files/dbrepo.conf
 create mode 100644 helm/dbrepo/templates/gateway-configmap.yaml

diff --git a/helm/dbrepo/files/dbrepo.conf b/helm/dbrepo/files/dbrepo.conf
new file mode 100644
index 0000000000..15daf4381d
--- /dev/null
+++ b/helm/dbrepo/files/dbrepo.conf
@@ -0,0 +1,171 @@
+# This is required to proxy Grafana Live WebSocket connections.
+map $http_upgrade $connection_upgrade {
+  default upgrade;
+  '' close;
+}
+
+client_max_body_size 20G;
+
+resolver 127.0.0.11 valid=30s; # docker dns
+
+upstream broker {
+    server broker-service:15672;
+}
+
+upstream analyse {
+    server analyse-service:8080;
+}
+
+upstream data {
+    server data-service:8080;
+}
+
+upstream metadata {
+    server metadata-service:8080;
+}
+
+upstream search {
+    server search-service:8080;
+}
+
+upstream ui {
+    server ui:3000;
+}
+
+upstream upload {
+    server upload-service:8080;
+}
+
+upstream dashboard-service {
+    server dashboard-service:3000;
+}
+
+server {
+    listen 8080 default_server;
+    server_name _;
+
+    location = /basic_status {
+        stub_status;
+    }
+
+    location /dashboard/ {
+        rewrite  ^/dashboard/(.*)  /$1 break;
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://dashboard-service;
+        proxy_read_timeout      90;
+    }
+
+    # Proxy Grafana Live WebSocket connections.
+    location /dashboard/api/live/ {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_set_header        Upgrade $http_upgrade;
+        proxy_set_header        Connection $connection_upgrade;
+        proxy_http_version      1.1;
+        proxy_pass              http://dashboard-service;
+        proxy_read_timeout      90;
+    }
+
+    location /api/search {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://search;
+        proxy_read_timeout      90;
+    }
+
+    location /api/upload {
+#         allow 128.130.0.0/16;
+#         deny all;
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_set_header        X-Forwarded-Host $host;
+        proxy_pass              http://upload;
+        proxy_read_timeout      90;
+        # Disable request and response buffering
+        proxy_request_buffering off;
+        proxy_buffering         off;
+        proxy_http_version      1.1;
+    }
+
+    location /api/analyse {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://analyse;
+        proxy_read_timeout      90;
+    }
+
+    location ~ /api/database/([0-9]+)/table/([0-9]+)/(data|history|export) {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://data;
+        proxy_read_timeout      90;
+    }
+
+    location ~ /api/database/([0-9]+)/view/([0-9]+)/(data|export) {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://data;
+        proxy_read_timeout      90;
+    }
+
+    location ~ /api/database/([0-9]+)/view {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://metadata;
+        proxy_read_timeout      90;
+    }
+
+    location ~ /api/database/([0-9]+)/subset {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://data;
+        proxy_read_timeout      600;
+    }
+
+    location ~ /api/(database|concept|container|identifier|image|message|license|oai|ontology|unit|user) {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://metadata;
+        proxy_read_timeout      90;
+    }
+
+    location ~ /pid/([0-9]+) {
+        rewrite /pid/(.*) /api/identifier/$1 break;
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://metadata;
+        proxy_read_timeout      90;
+    }
+
+    location / {
+        proxy_set_header        Host $host;
+        proxy_set_header        X-Real-IP $remote_addr;
+        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_set_header        X-Forwarded-Proto $scheme;
+        proxy_pass              http://ui;
+        proxy_read_timeout      90;
+    }
+}
diff --git a/helm/dbrepo/templates/gateway-configmap.yaml b/helm/dbrepo/templates/gateway-configmap.yaml
new file mode 100644
index 0000000000..3af39f8138
--- /dev/null
+++ b/helm/dbrepo/templates/gateway-configmap.yaml
@@ -0,0 +1,10 @@
+{{- if .Values.gatewayservice.enabled }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: gateway-service-setup
+  namespace: {{ include "common.names.namespace" . | quote }}
+data:
+  {{ (.Files.Glob "files/dbrepo.conf").AsConfig | nindent 2 }}
+{{- end }}
diff --git a/helm/dbrepo/values.yaml b/helm/dbrepo/values.yaml
index b4f253a182..9f966ec356 100644
--- a/helm/dbrepo/values.yaml
+++ b/helm/dbrepo/values.yaml
@@ -1011,175 +1011,7 @@ gatewayservice:
   ## @skip gatewayservice.fullnameOverride
   fullnameOverride: gateway-service
   ## @param gatewayservice.serverBlock The extra configuration for the reverse proxy
-  serverBlock: |
-    # This is required to proxy Grafana Live WebSocket connections.
-    map $http_upgrade $connection_upgrade {
-      default upgrade;
-      '' close;
-    }
-
-    upstream analyse {
-        server analyse-service;
-    }
-
-    upstream data {
-        server data-service;
-    }
-
-    upstream metadata {
-        server metadata-service;
-    }
-
-    upstream search {
-        server search-service;
-    }
-
-    upstream ui {
-        server ui;
-    }
-
-    upstream upload {
-        server upload-service;
-    }
-
-    upstream dashboard-service {
-        server dashboard-service:3000;
-    }
-
-    server {
-        listen 8080 default_server;
-        server_name _;
-
-        location /assets/ {
-            root                    /etc/nginx/assets;
-            expires                 max;
-            access_log              off;
-            autoindex               on;
-            autoindex_exact_size    off;
-            autoindex_format        html;
-            autoindex_localtime     on;
-        }
-
-        location /dashboard/ {
-            proxy_set_header        Host $host;
-            proxy_set_header        X-Real-IP $remote_addr;
-            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header        X-Forwarded-Proto $scheme;
-            proxy_pass              http://dashboard-service;
-            proxy_read_timeout      90;
-        }
-
-        # Proxy Grafana Live WebSocket connections.
-        location /dashboard/api/live/ {
-            proxy_set_header        Host $host;
-            proxy_set_header        X-Real-IP $remote_addr;
-            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header        X-Forwarded-Proto $scheme;
-            proxy_set_header        Upgrade $http_upgrade;
-            proxy_set_header        Connection $connection_upgrade;
-            proxy_http_version      1.1;
-            proxy_pass              http://dashboard-service;
-            proxy_read_timeout      90;
-        }
-
-        location /api/search {
-            proxy_set_header        Host $host;
-            proxy_set_header        X-Real-IP $remote_addr;
-            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header        X-Forwarded-Proto $scheme;
-            proxy_pass              http://search;
-            proxy_read_timeout      90;
-        }
-
-        location /api/upload {
-    #         allow 128.130.0.0/16;
-    #         deny all;
-            proxy_set_header        Host $host;
-            proxy_set_header        X-Real-IP $remote_addr;
-            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header        X-Forwarded-Proto $scheme;
-            proxy_set_header        X-Forwarded-Host $host;
-            proxy_pass              http://upload;
-            proxy_read_timeout      90;
-            # Disable request and response buffering
-            proxy_request_buffering off;
-            proxy_buffering         off;
-            proxy_http_version      1.1;
-        }
-
-        location /api/analyse {
-            proxy_set_header        Host $host;
-            proxy_set_header        X-Real-IP $remote_addr;
-            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header        X-Forwarded-Proto $scheme;
-            proxy_pass              http://analyse;
-            proxy_read_timeout      90;
-        }
-
-        location ~ /api/database/([0-9]+)/table/([0-9]+)/(data|history|export|statistic) {
-            proxy_set_header        Host $host;
-            proxy_set_header        X-Real-IP $remote_addr;
-            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header        X-Forwarded-Proto $scheme;
-            proxy_pass              http://data;
-            proxy_read_timeout      90;
-        }
-
-        location ~ /api/database/([0-9]+)/view/([0-9]+)/(data|export) {
-            proxy_set_header        Host $host;
-            proxy_set_header        X-Real-IP $remote_addr;
-            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header        X-Forwarded-Proto $scheme;
-            proxy_pass              http://data;
-            proxy_read_timeout      90;
-        }
-
-        location ~ /api/database/([0-9]+)/view {
-            proxy_set_header        Host $host;
-            proxy_set_header        X-Real-IP $remote_addr;
-            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header        X-Forwarded-Proto $scheme;
-            proxy_pass              http://metadata;
-            proxy_read_timeout      90;
-        }
-
-        location ~ /api/database/([0-9]+)/subset {
-            proxy_set_header        Host $host;
-            proxy_set_header        X-Real-IP $remote_addr;
-            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header        X-Forwarded-Proto $scheme;
-            proxy_pass              http://data;
-            proxy_read_timeout      600;
-        }
-
-        location ~ /api/(database|concept|container|identifier|image|message|license|oai|ontology|unit|user) {
-            proxy_set_header        Host $host;
-            proxy_set_header        X-Real-IP $remote_addr;
-            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header        X-Forwarded-Proto $scheme;
-            proxy_pass              http://metadata;
-            proxy_read_timeout      90;
-        }
-
-        location ~ /pid/([0-9]+) {
-            rewrite /pid/(.*) /api/identifier/$1 break;
-            proxy_set_header        Host $host;
-            proxy_set_header        X-Real-IP $remote_addr;
-            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header        X-Forwarded-Proto $scheme;
-            proxy_pass              http://metadata;
-            proxy_read_timeout      90;
-        }
-
-        location / {
-            proxy_set_header        Host $host;
-            proxy_set_header        X-Real-IP $remote_addr;
-            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
-            proxy_set_header        X-Forwarded-Proto $scheme;
-            proxy_pass              http://ui;
-            proxy_read_timeout      90;
-        }
-    }
+  existingServerBlockConfigmap: gateway-service-setup
   ## @param gatewayservice.replicaCount The number of replicas.
   replicaCount: 3
 
-- 
GitLab