livekit / livekit-helm

LiveKit Helm charts
https://docs.livekit.io
Apache License 2.0
55 stars 64 forks source link

Make IngressClassName configurable #75

Open p4block opened 1 year ago

p4block commented 1 year ago

https://github.com/livekit/livekit-helm/blob/e68ba571d946c5d1fbd58d8dc46aceac62c5019b/livekit-server/templates/ingress.yaml#LL39C1-L39C1

It was quite unnerving to see Traefik not pick up the Ingress setup by the helmchart, but thankfully I discovered quickly that this is hardcoded.

(maybe I really shouldn't try to use another Ingress than nginx, but I didn't find anything in the docs to suggest issues)

davidzhao commented 1 year ago

We haven't tested with any other Ingress types, but I'm open to it! Would you like to open a PR for this?

p4block commented 1 year ago
  {{- if eq .Values.loadBalancer.type "do" }}
  ingressClassName: nginx
  {{- end }}

What do you think would be a good way to sidestep this? First guess, checking against a "useDefaultIngressClass" default false that you set to true.

Right now on DO I point their LB with PROXY to all nodes running a daemonset Traefik that does the actual balancing between the pods.

I'm thinking of just setting up nginx and getting another LB that more suits your default intended usecase. I'm worried about excessive inter-cluster network usage, although afaik the bulk of the comms are p2p or through the dedicated TURN LB so it shouldn't be a problem.

Coincidentally our previous production setup simply had a TLS-terminating TCP LB point to LiveKit directly with no Ingress... Need to think about this, would love to hear your thoughts too.