axion1337.chat-gitops/apps/production/element-web-docs-server.yaml

109 lines
2.4 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: element-web-docs
namespace: matrix
spec:
replicas: 1
selector:
matchLabels:
app: element-web-docs
template:
metadata:
labels:
app: element-web-docs
spec:
containers:
- name: nginx
image: nginx:1.26-alpine
ports:
- containerPort: 8080
volumeMounts:
- name: config
mountPath: /config
- name: nginx-conf
mountPath: /etc/nginx/conf.d/default.conf
subPath: nginx.conf
- name: html
mountPath: /usr/share/nginx/html
lifecycle:
postStart:
exec:
command: ["/bin/sh", "-c"]
args:
- |
mkdir -p /usr/share/nginx/html/docs/setup
cp /config/README-Element-Setup.md /usr/share/nginx/html/docs/setup/
cp /config/element-setup-windows.cmd /usr/share/nginx/html/docs/setup/
cp /config/element-setup-macos.command /usr/share/nginx/html/docs/setup/
cp /config/element-setup-linux.sh /usr/share/nginx/html/docs/setup/
chmod 644 /usr/share/nginx/html/docs/setup/*
volumes:
- name: config
configMap:
name: ess-element-web-docs
- name: nginx-conf
configMap:
name: element-web-docs-nginx
- name: html
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: element-web-docs
namespace: matrix
spec:
selector:
app: element-web-docs
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: element-web-docs
namespace: matrix
spec:
ingressClassName: nginx
rules:
- host: axion1337.chat
http:
paths:
- path: /docs/setup
pathType: Prefix
backend:
service:
name: element-web-docs
port:
number: 80
---
apiVersion: v1
kind: ConfigMap
metadata:
name: element-web-docs-nginx
namespace: matrix
data:
nginx.conf: |
server {
listen 8080;
server_name _;
root /usr/share/nginx/html;
location /docs/setup/ {
autoindex on;
add_header Content-Type application/octet-stream;
}
location / {
return 404;
}
}