apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: matrix namespace: chat annotations: cert-manager.io/cluster-issuer: letsencrypt nginx.ingress.kubernetes.io/force-ssl-redirect: "true" nginx.ingress.kubernetes.io/proxy-body-size: "0" spec: ingressClassName: nginx tls: - hosts: - matrix.cluster.fun secretName: matrix-ingress rules: - host: matrix.cluster.fun http: paths: - path: /.well-known/matrix pathType: ImplementationSpecific backend: service: name: well-known port: number: 80 - path: / pathType: ImplementationSpecific backend: service: name: chat-matrix-synapse port: number: 80 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: riot namespace: chat annotations: cert-manager.io/cluster-issuer: letsencrypt nginx.ingress.kubernetes.io/force-ssl-redirect: "true" nginx.ingress.kubernetes.io/proxy-body-size: "0" spec: ingressClassName: nginx tls: - hosts: - chat.cluster.fun secretName: riot-ingress rules: - host: chat.cluster.fun http: paths: - path: / pathType: ImplementationSpecific backend: service: name: chat-matrix-riot port: number: 80 --- apiVersion: apps/v1 kind: Deployment metadata: name: well-known namespace: chat annotations: configmap.reloader.stakater.com/reload: "well-known" spec: replicas: 1 selector: matchLabels: app: well-known template: metadata: labels: app: well-known spec: containers: - name: web image: nginx imagePullPolicy: IfNotPresent ports: - containerPort: 80 name: web volumeMounts: - name: well-known mountPath: /usr/share/nginx/html/.well-known/matrix resources: limits: memory: 10Mi requests: memory: 10Mi volumes: - name: well-known configMap: name: well-known --- apiVersion: v1 kind: Service metadata: name: well-known namespace: chat spec: type: ClusterIP ports: - port: 80 targetPort: 80 name: web selector: app: well-known --- apiVersion: v1 kind: ConfigMap metadata: name: well-known namespace: chat data: server: |- { "m.server": "matrix.cluster.fun:443" }