diff options
author | Vincent Ambo <tazjin@google.com> | 2019-09-02T17·19+0100 |
---|---|---|
committer | Vincent Ambo <tazjin@google.com> | 2019-09-02T17·19+0100 |
commit | 785a5a29976a9682bd1a8a30c2bfa50185a0b5cf (patch) | |
tree | fd33afa806f979cfe95d6e81c8679c08473d9d65 /infra | |
parent | e6cb12ebfb5f620710d699dcd378bdf08d12d797 (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.
Diffstat (limited to 'infra')
-rw-r--r-- | infra/kubernetes/nginx/nginx.conf | 36 | ||||
-rw-r--r-- | infra/kubernetes/nginx/nginx.yaml | 55 | ||||
-rw-r--r-- | infra/kubernetes/primary-cluster.yaml | 1 |
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 000000000000..cdc228b494b0 --- /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 000000000000..935aa6bc1a6b --- /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 1409605ccd80..9cff5de87b73 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 |