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.
This commit is contained in:
parent
e6cb12ebfb
commit
785a5a2997
3 changed files with 92 additions and 0 deletions
36
infra/kubernetes/nginx/nginx.conf
Normal file
36
infra/kubernetes/nginx/nginx.conf
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
55
infra/kubernetes/nginx/nginx.yaml
Normal file
55
infra/kubernetes/nginx/nginx.yaml
Normal file
|
@ -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
|
|
@ -28,3 +28,4 @@ include:
|
||||||
repo: ssh://source.developers.google.com:2022/p/tazjins-infrastructure/r/monorepo
|
repo: ssh://source.developers.google.com:2022/p/tazjins-infrastructure/r/monorepo
|
||||||
- name: tazblog
|
- name: tazblog
|
||||||
- name: https-lb
|
- name: https-lb
|
||||||
|
- name: nginx
|
||||||
|
|
Loading…
Reference in a new issue