feat(infra/k8s): Rewrite cgit URLs by routing them through nginx
Configures nginx to rewrite all requests to cgit, except for those retrieving static files, to `/depot/`. In combination with the previous commits that apply patches to cgit itself, this effectively means that the depot is rendered on the site root. This is pretty cool: It lets people do stuff like `git clone https://git.tazj.in` and get the depot!
This commit is contained in:
parent
0dee62cd7b
commit
c3586aa8ba
3 changed files with 27 additions and 10 deletions
|
@ -65,10 +65,9 @@ kind: Service
|
|||
metadata:
|
||||
name: cgit
|
||||
spec:
|
||||
type: NodePort
|
||||
selector:
|
||||
app: cgit
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 2448 # cgit
|
||||
port: 80
|
||||
targetPort: 8080
|
||||
|
|
|
@ -8,20 +8,23 @@ metadata:
|
|||
annotations:
|
||||
networking.gke.io/managed-certificates: tazj-in, git-tazj-in, www-tazj-in, oslo-pub
|
||||
spec:
|
||||
# Default traffic is routed to the blog, in case people go to
|
||||
# peculiar hostnames.
|
||||
backend:
|
||||
serviceName: tazblog
|
||||
servicePort: 8000
|
||||
rules:
|
||||
# Route blog to the blog ...
|
||||
- host: tazj.in
|
||||
http:
|
||||
paths:
|
||||
- path: /*
|
||||
backend:
|
||||
serviceName: tazblog
|
||||
servicePort: 8000
|
||||
# Route git.tazj.in to the cgit pods
|
||||
- host: git.tazj.in
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
- path: /*
|
||||
backend:
|
||||
serviceName: cgit
|
||||
servicePort: 2448
|
||||
serviceName: nginx
|
||||
servicePort: 6756
|
||||
# Route oslo.pub to the nginx instance which serves redirects
|
||||
- host: oslo.pub
|
||||
http:
|
||||
|
|
|
@ -41,4 +41,19 @@ http {
|
|||
return 302 https://www.google.com/maps/d/viewer?mid=1pJIYY9cuEdt9DuMTbb4etBVq7hs;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name git.tazj.in;
|
||||
|
||||
# Static assets must always hit the root.
|
||||
location ~ ^/(favicon\.ico|cgit\.(css|png))$ {
|
||||
proxy_pass http://cgit;
|
||||
}
|
||||
|
||||
# Everything else hits the depot directly.
|
||||
location / {
|
||||
proxy_pass http://cgit/cgit.cgi/depot/;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue