Bläddra i källkod

Chore: Add prometheus basic auth proxy (#16882)

Andrej Ocenas 6 år sedan
förälder
incheckning
2abb009d68

+ 4 - 0
devenv/docker/blocks/prometheus_basic_auth_proxy/Dockerfile

@@ -0,0 +1,4 @@
+FROM nginx:alpine
+
+COPY nginx.conf /etc/nginx/nginx.conf
+COPY htpasswd /etc/nginx/htpasswd

+ 6 - 0
devenv/docker/blocks/prometheus_basic_auth_proxy/docker-compose.yaml

@@ -0,0 +1,6 @@
+# This will proxy all requests for http://localhost:10090 to
+# http://prometheus:9090 (Prometheus inside the docker compose)
+
+  nginxproxy:
+    build: docker/blocks/nginx_proxy
+    network_mode: host

+ 1 - 0
devenv/docker/blocks/prometheus_basic_auth_proxy/htpasswd

@@ -0,0 +1 @@
+prom:$apr1$bfu32njz$HHDDTjaeWHDzQs2UMXP.C1

+ 34 - 0
devenv/docker/blocks/prometheus_basic_auth_proxy/nginx.conf

@@ -0,0 +1,34 @@
+events { }
+
+http {
+  server {
+
+    listen 10090;
+
+    location / {
+
+      # Removes any Access-Control-Allow-Origin from Prometheus itself. When accessing from browser, having * or
+      # multiple values is not allowed in some cases
+      proxy_hide_header Access-Control-Allow-Origin;
+
+      # Allow the origin access. This is kinda wildcard but for browser it seems more strict and is needed for
+      # withCredentials requests.
+      add_header Access-Control-Allow-Origin $http_origin;
+
+      # When using withCredentials requests this must be true.
+      add_header Access-Control-Allow-Credentials true;
+
+      # Ask for basic auth except for pre flight OPTIONS request.
+      limit_except OPTIONS {
+        ################################################################
+        # The htpasswd file contains user:
+        # prom: test
+        ################################################################
+        auth_basic "prom";
+        auth_basic_user_file /etc/nginx/htpasswd;
+      }
+
+      proxy_pass http://prometheus:9090/;
+    }
+  }
+}