{{- if .Values.ingress.enabled -}} {{- $fullName := include "matrix-synapse.fullname" . -}} {{- $wkName := include "matrix-synapse.externalname" (dict "global" . "external" "wellknown-lighttpd") -}} {{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} apiVersion: networking.k8s.io/v1beta1 {{- else -}} apiVersion: extensions/v1beta1 {{- end }} kind: Ingress metadata: name: {{ $fullName }} labels: {{- include "matrix-synapse.labels" . | nindent 4 }} {{- with .Values.ingress.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: {{- if .Values.ingress.tls }} tls: {{- range .Values.ingress.tls }} - hosts: {{- range .hosts }} - {{ . | quote }} {{- end }} secretName: {{ .secretName }} {{- end }} {{- end }} rules: {{- $csHosts := .Values.ingress.csHosts }} {{- if .Values.ingress.includeServerName }} {{- $csHosts = concat (list .Values.config.serverName) $csHosts }} {{- end }} {{- $s2sHosts := .Values.ingress.hosts }} {{- if .Values.ingress.includeServerName }} {{- $s2sHosts = concat (list .Values.config.serverName) $s2sHosts }} {{- end }} {{- $wkHosts := .Values.ingress.wkHosts }} {{- if .Values.ingress.includeServerName }} {{- $wkHosts = concat (list .Values.config.serverName) $wkHosts }} {{- end }} {{- $hosts := uniq (concat $s2sHosts $csHosts $wkHosts) }} {{- range $hosts }} {{- $host := . }} - host: {{ . | quote }} http: paths: {{- $default := $.Values.workers.default }} {{- range $worker, $config := $.Values.workers }} {{- $name := $worker | replace "_" "-" }} {{- if and $config.enabled $config.listeners (or $config.paths $config.csPaths) }} {{- $service := include "matrix-synapse.workername" (dict "global" $ "worker" $name) }} {{- if has $host $csHosts }} {{- range $config.csPaths }} {{- if $.Values.ingress.traefikPaths }} - path: {{ printf "/{path:%s}" (trimPrefix "/" .) | quote }} backend: serviceName: {{ $service }} servicePort: 8083 {{- else }} - path: {{ . | quote }} backend: serviceName: {{ $service }} servicePort: 8083 {{- end }} {{- end }} {{- end }} {{- if has $host $s2sHosts }} {{- range $config.paths }} {{- if $.Values.ingress.traefikPaths }} - path: {{ printf "/{path:%s}" (trimPrefix "/" .) | quote }} backend: serviceName: {{ $service }} servicePort: 8083 {{- else }} - path: {{ . | quote }} backend: serviceName: {{ $service }} servicePort: 8083 {{- end }} {{- end }} {{- end }} {{- end }} {{- end }} {{- if has . $csHosts }} {{- with $.Values.ingress.csPaths }} {{ . | toYaml | nindent 10 }} {{- end }} {{- end }} {{- if has . $s2sHosts }} {{- with $.Values.ingress.paths }} {{ . | toYaml | nindent 10 }} {{- end }} {{- end }} {{- if or (has . $csHosts) (has . $s2sHosts) }} - path: /_matrix backend: serviceName: {{ $fullName }} servicePort: 8008 {{- end }} {{- if and (has . $csHosts) $.Values.ingress.includeUnderscoreSynapse }} - path: /_synapse backend: serviceName: {{ $fullName }} servicePort: 8008 {{- end }} {{- if has . $wkHosts }} - path: /.well-known/matrix/client backend: serviceName: {{ $fullName }} servicePort: 8008 {{- if $.Values.wellknown.enabled }} - path: /.well-known/matrix/server backend: serviceName: {{ $wkName }} servicePort: 80 {{- end }} {{- end }} {{- end }} {{- end }}