typokign / matrix-chart

Helm chart for deploying a Matrix homeserver stack
MIT License
89 stars 48 forks source link

Some CoTURN fixes & Prometheus metrics #41

Closed Arkaniad closed 4 years ago

Arkaniad commented 4 years ago

In the values.yaml file, it appears that you can manually set TURN URIs to be set in the Matrix homeserver configuration. See below: https://github.com/dacruz21/matrix-chart/blob/55dfb5b5c8f386bb3541aa27492e9cd07f611430/values.yaml#L381-L386

However, these URIs do not actually get templated into the homeserver.yaml file - rather, a TURN URI is generated based off of the matrix.hostname helper.

https://github.com/dacruz21/matrix-chart/blob/55dfb5b5c8f386bb3541aa27492e9cd07f611430/templates/synapse/_homeserver.yaml#L860-L883

The surrounding logic of the TURN configuration block looks like it should take URIs if they are listed in the values.yaml file.


More context for anyone getting here via Google:

I am using DigitalOcean Kubernetes Service (DOKS). My Synapse ingress is on a shared nginx-ingress deployment with a DO LoadBalancer but my CoTURN servers are running as DaemonSets with ClusterIP. My DNS is configured so that I have multiple A records for turn.matrix.mydomain.tld that point to each node in my cluster. With the way that this chart works as of this present time the defaulting to turn:matrix.mydomain.tld?transport=udp does not work because my turn servers are not there and cannot be there - not any particularly sane ways to make nginx-ingress handle this traffic.

Furthermore, neither Element nor Synapse seem to care about SRV records for TURN servers or, if they do, I have not found the secret to making that work. My configuration seems to work if I manually adjust the homeserver and CoTURN configmaps, so with these changes this use case should be solvable with the values.yaml file only.

Arkaniad commented 4 years ago

Please feel free to close this messy late-night PR and have me resubmit as separate branches, I messed up a little :P

typokign commented 4 years ago

Nah no need, this is all good stuff, thanks! Will merge tonight when I'm back in front of my computer.

Arkaniad commented 4 years ago

Cool :) I've got some more stuff to do w/r/t Prometheus metrics but hopefully I'll do it in a more reasonable way with branches. Moving forward, if there's any other way you'd like me to handle PRs please lmk :)