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 8622452cc46e12b9ab7f67658efda3f8ed7f3888
parent 15a8d3bd7c3df5b4618736acfb484ae7d87c5d27
Author: MTRNord <mtrnord1@gmail.com>
Date:   Wed,  6 Mar 2024 11:57:02 +0100

Add ingress for the jwt service as well

Diffstat:
Mcharts/element-call/Chart.yaml | 2+-
Mcharts/element-call/templates/configmap.yaml | 13+++++++------
Acharts/element-call/templates/ingress_livekit_mgmt_service.yaml | 60++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mcharts/element-call/values.yaml | 19+++++++++++++++++++
4 files changed, 87 insertions(+), 7 deletions(-)

diff --git a/charts/element-call/Chart.yaml b/charts/element-call/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: element-call description: A Helm chart for element_call type: application -version: 0.1.7 +version: 0.1.8 appVersion: "v0.5.15" dependencies: diff --git a/charts/element-call/templates/configmap.yaml b/charts/element-call/templates/configmap.yaml @@ -2,9 +2,8 @@ apiVersion: v1 kind: ConfigMap metadata: - name: {{ include "element_call.fullname" . }} - labels: - {{- include "element_call.labels" . | nindent 4 }} + name: { { include "element_call.fullname" . } } + labels: { { - include "element_call.labels" . | nindent 4 } } data: config.json: | { @@ -14,5 +13,8 @@ data: "server_name": "{{ .Values.element_call.config.homeserver.server_name }}" } }, - "eula": "{{ .Values.element_call.config.eula }}" - } -\ No newline at end of file + "eula": "{{ .Values.element_call.config.eula }}", + "livekit": { + livekit_service_url: "{{ .Values.element_call.config.livekit.livekit_service_url }}" + } + } diff --git a/charts/element-call/templates/ingress_livekit_mgmt_service.yaml b/charts/element-call/templates/ingress_livekit_mgmt_service.yaml @@ -0,0 +1,60 @@ +{{- if .Values.livekit_mgmt.ingress.enabled -}} +{{- $fullName := include "element_call.fullname" . -}} +{{- if and .Values.livekit_mgmt.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} + {{- if not (hasKey .Values.livekit_mgmt.ingress.annotations "kubernetes.io/ingress.class") }} + {{- $_ := set .Values.livekit_mgmt.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} + {{- end }} +{{- end }} +{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1 +{{- else 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 "element_call.labels" . | nindent 4 }} + {{- with .Values.livekit_mgmt.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if and .Values.livekit_mgmt.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} + ingressClassName: {{ .Values.livekit_mgmt.ingress.className }} + {{- end }} + {{- if .Values.livekit_mgmt.ingress.tls }} + tls: + {{- range .Values.livekit_mgmt.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .Values.livekit_mgmt.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} + pathType: {{ .pathType }} + {{- end }} + backend: + {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} + service: + name: {{ $fullName }} + port: + number: 8080 + {{- else }} + serviceName: {{ $fullName }} + servicePort: 8080 + {{- end }} + {{- end }} + {{- end }} +{{- end }} diff --git a/charts/element-call/values.yaml b/charts/element-call/values.yaml @@ -17,6 +17,8 @@ element_call: homeserver: base_url: "https://call.localhost" server_name: "call.localhost" + livekit: + livekit_service_url: "call-jwt.localhost" image: repository: ghcr.io/element-hq/element-call @@ -168,6 +170,23 @@ livekit_mgmt: tolerations: [] affinity: {} + + ingress: + enabled: false + className: "" + annotations: + {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: + - host: chart-example.local + paths: + - path: / + pathType: ImplementationSpecific + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local livekit-server: enabled: true