blob: 218e3351dd4ac0b30fbe6af2160363939aaf357d [file] [log] [blame]
---
apiVersion: v1
kind: Service
metadata:
name: well-known
namespace: {{ .Release.Namespace }}
spec:
type: ClusterIP
selector:
app: well-known
ports:
- name: http
port: 80
targetPort: http
protocol: TCP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: well-known
namespace: {{ .Release.Namespace }}
# annotations:
# cert-manager.io/cluster-issuer: "{{ .Values.certificateIssuer }}"
# acme.cert-manager.io/http01-edit-in-place: "true"
spec:
ingressClassName: {{ .Values.ingressClassName }}
tls:
- hosts:
- {{ .Values.domain }}
secretName: cert-www.{{ .Values.domain }}
- hosts:
- www.{{ .Values.domain }}
secretName: cert-www.{{ .Values.domain }}
rules:
- host: {{ .Values.domain }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: well-known
port:
name: http
- host: www.{{ .Values.domain }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: well-known
port:
name: http
---
apiVersion: v1
kind: ConfigMap
metadata:
name: well-known
namespace: {{ .Release.Namespace }}
data:
nginx.conf: |
# user www www;
worker_processes 1;
error_log /dev/null crit;
# pid logs/nginx.pid;
worker_rlimit_nofile 8192;
events {
worker_connections 1024;
}
http {
server {
listen 8080;
location /.well-known/matrix/client {
return 200 '{"m.homeserver": {"base_url": "https://matrix.{{ .Values.domain }}:443"}}';
default_type application/json;
add_header Access-Control-Allow-Origin *;
}
location /.well-known/matrix/server {
return 200 '{"m.server": "matrix.{{ .Values.domain }}:443"}';
default_type application/json;
add_header Access-Control-Allow-Origin *;
}
}
}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: well-known
namespace: {{ .Release.Namespace }}
spec:
selector:
matchLabels:
app: well-known
replicas: 1
template:
metadata:
labels:
app: well-known
spec:
volumes:
- name: config
configMap:
name: well-known
containers:
- name: nginx
image: nginx:1.21.3-alpine
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 8080
protocol: TCP
volumeMounts:
- name: config
mountPath: /etc/nginx
readOnly: true
resources:
requests:
memory: "10Mi"
cpu: "10m"
limits:
memory: "20Mi"
cpu: "100m"
tolerations:
- key: "pcloud"
operator: "Equal"
value: "role"
effect: "NoSchedule"