| --- |
| 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" |