element-call-helm

An experimental helm chart deploying a full element-call instance
git clone git://archive.git.mtrnord.blog/MTRNord/element-call-helm.git
Log | Files | Refs | README

commit ede11ac52695c49e6ac31d2b04c460801b45615e
parent f7a48d9d34384936f58db43929a2527d7e389628
Author: MTRNord <mtrnord1@gmail.com>
Date:   Fri,  1 Mar 2024 16:41:59 +0100

Some fixes and redis

Diffstat:
MChart.lock | 10++++++++--
MChart.yaml | 17++++++++++++-----
Mtemplates/_helpers.tpl | 70++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
Mtemplates/deployment_livekit_mgmt_service.yaml | 2+-
Mvalues.yaml | 43+++++++++++++++++++++++++++++++++++++++++--
5 files changed, 130 insertions(+), 12 deletions(-)

diff --git a/Chart.lock b/Chart.lock @@ -2,5 +2,11 @@ dependencies: - name: livekit-server repository: https://helm.livekit.io version: 1.5.3 -digest: sha256:341a04fb941a386e49a006b094769c6867c6856dde1acf544f9e36ac12f3b520 -generated: "2024-03-01T15:41:11.024712244+01:00" +- name: egress + repository: https://helm.livekit.io + version: 1.8.1 +- name: redis + repository: https://charts.bitnami.com/bitnami + version: 18.17.0 +digest: sha256:9d32df69ecee1f03fffc85791bfb5c498e41ad56fdb6875b158baef89dffe26c +generated: "2024-03-01T16:25:39.405375401+01:00" diff --git a/Chart.yaml b/Chart.yaml @@ -6,7 +6,15 @@ version: 0.1.0 appVersion: "v0.5.15" dependencies: -- name: livekit-server - version: "1.5.3" - repository: "https://helm.livekit.io" - condition: livekit-server.enabled -\ No newline at end of file + - name: livekit-server + version: "1.5.3" + repository: "https://helm.livekit.io" + condition: livekit-server.enabled + - name: egress + version: "1.8.1" + repository: "https://helm.livekit.io" + condition: egress.enabled + - name: redis + version: ^18.17.0 + repository: https://charts.bitnami.com/bitnami + condition: redis.enabled diff --git a/templates/_helpers.tpl b/templates/_helpers.tpl @@ -74,4 +74,71 @@ Selector Labels for livekit mgmt {{- define "element_call.livekit_mgmt.selectorLabels" -}} app.kubernetes.io/name: {{ include "element_call.livekit_mgmt_name" . }} app.kubernetes.io/instance: {{ .Release.Name }} -{{- end}} -\ No newline at end of file +{{- end}} + + + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +*/}} +{{- define "element_call.redis.fullname" -}} +{{- printf "%s-%s" .Release.Name "redis" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Set redis host +*/}} +{{- define "element_call.redis.host" -}} +{{- if .Values.redis.enabled -}} +{{- printf "%s-%s" (include "element_call.redis.fullname" .) "master" | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{ required "A valid externalRedis.host is required" .Values.externalRedis.host }} +{{- end -}} +{{- end -}} + +{{/* +Set redis secret +*/}} +{{- define "element_call.redis.secret" -}} +{{- if .Values.redis.enabled -}} +{{- template "element_call.redis.fullname" . -}} +{{- else -}} +{{- template "element_call.fullname" . -}} +{{- end -}} +{{- end -}} + +{{/* +Set redis port +*/}} +{{- define "element_call.redis.port" -}} +{{- if .Values.redis.enabled -}} +{{- .Values.redis.master.service.port | default 6379 }} +{{- else -}} +{{ required "A valid externalRedis.port is required" .Values.externalRedis.port }} +{{- end -}} +{{- end -}} + +{{/* +Set redis password +*/}} +{{- define "element_call.redis.password" -}} +{{- if (and .Values.redis.enabled .Values.redis.password) -}} +{{ .Values.redis.password }} +{{- else if (and .Values.redis.enabled .Values.redis.auth.password) -}} +{{ .Values.redis.auth.password }} +{{- else if .Values.externalRedis.password -}} +{{ .Values.externalRedis.password }} +{{- end -}} +{{- end -}} + +{{/* +Set redis database id +*/}} +{{- define "element_call.redis.dbid" -}} +{{- if .Values.redis.dbid -}} +{{ .Values.redis.dbid }} +{{- else if .Values.externalRedis.dbid -}} +{{ .Values.externalRedis.dbid }} +{{- end -}} +{{- end -}} diff --git a/templates/deployment_livekit_mgmt_service.yaml b/templates/deployment_livekit_mgmt_service.yaml @@ -37,7 +37,7 @@ spec: imagePullPolicy: {{ .Values.livekit_mgmt.image.pullPolicy }} env: - name: LIVEKIT_URL - value: ws://{{ index .Values "livekit-server" "livekit" "port" }}:7800 + value: ws://{{ include "livekit-server.fullname" . }}:{{ index .Values "livekit-server" "livekit" "port" }} - name: LIVEKIT_KEY value: {{ .Values.livekit_key }} - name: LIVEKIT_SECRET diff --git a/values.yaml b/values.yaml @@ -158,4 +158,44 @@ livekit_mgmt: livekit-server: enabled: true - # See https://github.com/livekit/livekit-helm/blob/master/livekit-server/values.yaml for values -\ No newline at end of file + # See https://github.com/livekit/livekit-helm/blob/master/livekit-server/values.yaml for values + + livekit: + port: 7880 + bind_addresses: + - "0.0.0.0" + rtc: + tcp_port: 7881 + port_range_start: 50100 + port_range_end: 50200 + use_external_ip: false + redis: + address: changeme + db: 0 + password: changeme + turn: + enabled: false + domain: localhost + cert_file: "" + key_file: "" + tls_port: 5349 + udp_port: 443 + external_tls: true + keys: + # CHANGE ME + devkey: secret + signal_relay: + enabled: true + +egress: + enabled: true + egress: + # CHANGE ME + api_key: devkey + api_secret: secret + ws_url: ws://{{ include "livekit-server.fullname" . }}:{{ index .Values "livekit-server" "livekit" "port" }} + insecure: true + +redis: + enabled: true + architecture: standalone