about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@google.com>2019-09-02T17·19+0100
committerVincent Ambo <tazjin@google.com>2019-09-02T17·19+0100
commit785a5a29976a9682bd1a8a30c2bfa50185a0b5cf (patch)
treefd33afa806f979cfe95d6e81c8679c08473d9d65
parente6cb12ebfb5f620710d699dcd378bdf08d12d797 (diff)
feat(k8s): Add nginx instance for oslo.pub redirect
The redirect is currently all that this instance does. It is required
because HTTP load balancers in GCP don't support URL rewriting.
-rw-r--r--infra/kubernetes/nginx/nginx.conf36
-rw-r--r--infra/kubernetes/nginx/nginx.yaml55
-rw-r--r--infra/kubernetes/primary-cluster.yaml1
3 files changed, 92 insertions, 0 deletions
diff --git a/infra/kubernetes/nginx/nginx.conf b/infra/kubernetes/nginx/nginx.conf
new file mode 100644
index 0000000000..cdc228b494
--- /dev/null
+++ b/infra/kubernetes/nginx/nginx.conf
@@ -0,0 +1,36 @@
+daemon off;
+worker_processes  1;
+error_log stderr;
+
+events {
+    worker_connections  1024;
+}
+
+http {
+    log_format json_combined escape=json
+    '{'
+        '"time_local":"$time_local",'
+        '"remote_addr":"$remote_addr",'
+        '"remote_user":"$remote_user",'
+        '"request":"$request",'
+        '"status": "$status",'
+        '"body_bytes_sent":"$body_bytes_sent",'
+        '"request_time":"$request_time",'
+        '"http_referrer":"$http_referer",'
+        '"http_user_agent":"$http_user_agent"'
+        '}';
+
+    access_log /dev/stdout json_combined;
+
+    sendfile        on;
+    keepalive_timeout  65;
+
+    server {
+        listen       80;
+        server_name  oslo.pub;
+
+        location / {
+            return 302 https://www.google.com/maps/d/viewer?mid=1pJIYY9cuEdt9DuMTbb4etBVq7hs;
+        }
+    }
+}
diff --git a/infra/kubernetes/nginx/nginx.yaml b/infra/kubernetes/nginx/nginx.yaml
new file mode 100644
index 0000000000..935aa6bc1a
--- /dev/null
+++ b/infra/kubernetes/nginx/nginx.yaml
@@ -0,0 +1,55 @@
+# Deploy an nginx instance which serves ... redirects.
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: nginx-conf
+data:
+  nginx.conf: {{ insertFile "nginx.conf" | toJson }}
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: nginx
+  labels:
+    app: nginx
+spec:
+  replicas: 2
+  selector:
+    matchLabels:
+      app: nginx
+  template:
+    metadata:
+      labels:
+        app: nginx
+        config: {{ insertFile "nginx.conf" | sha1sum }}
+    spec:
+      containers:
+        - name: tazblog
+          image: nixery.local/shell/nginx:{{ gitHEAD }}
+          command: ["/bin/bash", "-c"]
+          args:
+            - |
+              echo 'nogroup:x:30000:nobody' >> /etc/group
+              echo 'nobody:x:30000:30000:nobody:/tmp:/bin/bash' >> /etc/passwd
+              exec nginx -c /etc/nginx/nginx.conf
+          volumeMounts:
+            - name: nginx-conf
+              mountPath: /etc/nginx
+      volumes:
+        - name: nginx-conf
+          configMap:
+            name: nginx-conf
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: nginx
+spec:
+  type: NodePort
+  selector:
+    app: nginx
+  ports:
+    - protocol: TCP
+      port: 80
+      targetPort: 80
diff --git a/infra/kubernetes/primary-cluster.yaml b/infra/kubernetes/primary-cluster.yaml
index 1409605ccd..9cff5de87b 100644
--- a/infra/kubernetes/primary-cluster.yaml
+++ b/infra/kubernetes/primary-cluster.yaml
@@ -28,3 +28,4 @@ include:
       repo: ssh://source.developers.google.com:2022/p/tazjins-infrastructure/r/monorepo
   - name: tazblog
   - name: https-lb
+  - name: nginx