---
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 }}
  {{- if .Values.certificateIssuer }}
  annotations:
    acme.cert-manager.io/http01-edit-in-place: "true"
    cert-manager.io/cluster-issuer: {{ .Values.certificateIssuer }}
  {{- end }}
spec:
  ingressClassName: {{ .Values.ingressClassName }}
  tls:
  - hosts:
    - {{ .Values.domain }}
    secretName: cert-{{ .Values.domain }}
  rules:
  - host: {{ .Values.domain }}
    http:
      paths:
      - path: /.well-known/matrix
        pathType: ImplementationSpecific
        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://{{ .Values.subdomain }}.{{ .Values.domain }}"}}';
                default_type application/json;
                add_header Access-Control-Allow-Origin *;
            }
            location /.well-known/matrix/server {
                return 200 '{"m.server": "{{ .Values.subdomain }}.{{ .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"
