feat(mycloud-matrix): add element-call support - WIP
This commit is contained in:
parent
4fdec634d0
commit
a0c5e6b066
5 changed files with 151 additions and 9 deletions
15
base-values/mycloud-matrix-call.yaml
Normal file
15
base-values/mycloud-matrix-call.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
##
|
||||||
|
# commons are from mycloud-core
|
||||||
|
##
|
||||||
|
|
||||||
|
components:
|
||||||
|
mycloud-matrix:
|
||||||
|
# patch mycloud-core to get another database
|
||||||
|
values:
|
||||||
|
livekit:
|
||||||
|
enabled: true
|
||||||
|
ingress:
|
||||||
|
livekit:
|
||||||
|
enabled: true
|
||||||
|
elementCall:
|
||||||
|
enabled: true
|
80
mycloud-matrix/templates/clients/element-call.yaml
Normal file
80
mycloud-matrix/templates/clients/element-call.yaml
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
{{- if .Values.ingress.elementCall.enabled }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: {{.Release.Name }}-livekit
|
||||||
|
data:
|
||||||
|
secret: {{ .Values.ingress.elementCall.livekitJWT.livekit.secret | default .Values.livekit.secret | default (derivePassword 1 "long" .Values.commons.masterPassword "matrix" "livekit_secret") | b64enc }}
|
||||||
|
---
|
||||||
|
apiVersion: helm.toolkit.fluxcd.io/v2beta2
|
||||||
|
kind: HelmRelease
|
||||||
|
metadata:
|
||||||
|
name: "{{.Release.Name }}-element-call"
|
||||||
|
spec:
|
||||||
|
chart:
|
||||||
|
spec:
|
||||||
|
sourceRef:
|
||||||
|
kind: GitRepository
|
||||||
|
name: "wrenix-helm-charts"
|
||||||
|
namespace: "flux-system"
|
||||||
|
chart: "element-call"
|
||||||
|
install:
|
||||||
|
{{- toYaml .Values.commons.helm.release.install | nindent 4 }}
|
||||||
|
test:
|
||||||
|
{{- toYaml .Values.commons.helm.release.test | nindent 4 }}
|
||||||
|
upgrade:
|
||||||
|
{{- toYaml .Values.commons.helm.release.upgrade | nindent 4 }}
|
||||||
|
driftDetection:
|
||||||
|
{{- toYaml .Values.commons.helm.release.driftDetection | nindent 4 }}
|
||||||
|
interval: 10m
|
||||||
|
valuesFrom:
|
||||||
|
- kind: Secret
|
||||||
|
name: {{.Release.Name }}-livekit
|
||||||
|
valuesKey: secret
|
||||||
|
targetPath: service.lkJWT.config.secret
|
||||||
|
values:
|
||||||
|
ingress:
|
||||||
|
enabled: true
|
||||||
|
annotations:
|
||||||
|
{{- with mergeOverwrite (dict) .Values.commons.ingress.annotations .Values.ingress.elementCall.annotations }}
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.commons.ingress.tls.enabled }}
|
||||||
|
tls:
|
||||||
|
{{- with .Values.commons.ingress.tls.override }}
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- else }}
|
||||||
|
- secretName: "mycloud-matrix-element-call-cert"
|
||||||
|
hosts:
|
||||||
|
- {{ .Values.ingress.elementCall.host | default (printf "call.%s" .Values.commons.ingress.domain) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
service:
|
||||||
|
call:
|
||||||
|
ingress:
|
||||||
|
host: {{ .Values.ingress.elementCall.host | default (printf "call.%s" .Values.commons.ingress.domain) }}
|
||||||
|
config:
|
||||||
|
{{- with .Values.commons.tracing }}
|
||||||
|
{{- if .enabled }}
|
||||||
|
opentelemetry:
|
||||||
|
{{- if .grpc.enabled }}
|
||||||
|
url: grpc://{{ .http.endpoint }}
|
||||||
|
{{- else }}
|
||||||
|
url: {{ .http.endpoint }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
default_server_config:
|
||||||
|
"m.homeserver":
|
||||||
|
base_url: "https://{{ include "mycloud-matrix.host.server" . }}/"
|
||||||
|
server_name: {{ include "mycloud-matrix.domain" . | quote }}
|
||||||
|
livekit:
|
||||||
|
livekit_service_url: "https://{{ .Values.ingress.elementCall.livekitJWT.host | default .Values.ingress.elementCall.host | default (printf "call.%s" .Values.commons.ingress.domain) }}"
|
||||||
|
lkJWT:
|
||||||
|
ingress:
|
||||||
|
host: {{ .Values.ingress.elementCall.livekitJWT.host | default .Values.ingress.elementCall.host | default (printf "call.%s" .Values.commons.ingress.domain) }}
|
||||||
|
config:
|
||||||
|
key: {{ .Values.ingress.elementCall.livekitJWT.livekit.key | default .Values.livekit.key }}
|
||||||
|
url: "wss://{{ .Values.ingress.livekit.host | default (printf "sfu.call.%s" .Values.commons.ingress.domain) }}"
|
||||||
|
{{- end }}
|
|
@ -38,6 +38,18 @@ spec:
|
||||||
config:
|
config:
|
||||||
sso_redirect_options:
|
sso_redirect_options:
|
||||||
on_welcome_page: true
|
on_welcome_page: true
|
||||||
|
features:
|
||||||
|
feature_notifications: true
|
||||||
|
feature_video_rooms: true
|
||||||
|
feature_new_room_decoration_ui: true
|
||||||
|
feature_location_share_live: true
|
||||||
|
{{- if .Values.ingress.elementCall.enabled }}
|
||||||
|
feature_element_call_video_rooms: true
|
||||||
|
feature_group_calls: true
|
||||||
|
element_call:
|
||||||
|
url: "https://{{ .Values.ingress.elementCall.host | default (printf "call.%s" .Values.commons.ingress.domain) }}"
|
||||||
|
use_exclusively: true
|
||||||
|
{{- end }}
|
||||||
ingress:
|
ingress:
|
||||||
enabled: true
|
enabled: true
|
||||||
annotations:
|
annotations:
|
||||||
|
|
|
@ -64,11 +64,12 @@ spec:
|
||||||
smtp_user: {{ .Values.commons.mail.username | quote }}
|
smtp_user: {{ .Values.commons.mail.username | quote }}
|
||||||
smtp_pass: {{ .Values.commons.mail.password | quote }}
|
smtp_pass: {{ .Values.commons.mail.password | quote }}
|
||||||
app_name: "{{ .Values.commons.theme.title }}-matrix"
|
app_name: "{{ .Values.commons.theme.title }}-matrix"
|
||||||
# TODO
|
notif_from: {{ .Values.server.mail.from | default (printf "\"[%s] %s\" <%s>" .Values.commons.theme.title "matrix" .Values.commons.mail.from) | quote }}
|
||||||
# notif_from: {{ .Values.server.mail.from | default (printf "\"[%s] %s\" <%s>" .Values.commons.theme.title "matrix" .Values.commons.mail.from) | quote }}
|
|
||||||
notif_from: {{ .Values.server.mail.from | default .Values.commons.mail.from | quote }}
|
|
||||||
{{- if .Values.server.authenticationService.enabled }}
|
|
||||||
experimental_features:
|
experimental_features:
|
||||||
|
{{- if .Values.ingress.elementCall.enabled }}
|
||||||
|
msc3266_enabled: true
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.server.authenticationService.enabled }}
|
||||||
msc3202_device_masquerading: true
|
msc3202_device_masquerading: true
|
||||||
msc3861:
|
msc3861:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
@ -187,6 +188,11 @@ spec:
|
||||||
issuer: "https://{{ include "mycloud-matrix.host.authenticationService" . }}/"
|
issuer: "https://{{ include "mycloud-matrix.host.authenticationService" . }}/"
|
||||||
account: "https://{{ include "mycloud-matrix.host.authenticationService" . }}/account/"
|
account: "https://{{ include "mycloud-matrix.host.authenticationService" . }}/account/"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.ingress.elementCall.enabled }}
|
||||||
|
org.matrix.msc4143.rtc_foci:
|
||||||
|
- type: "livekit"
|
||||||
|
livekit_service_url: https://{{ .Values.ingress.elementCall.livekitJWT.host | default .Values.ingress.elementCall.host | default (printf "call.%s" .Values.commons.ingress.domain) }}
|
||||||
|
{{- end }}
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
cpu: 0.1
|
cpu: 0.1
|
||||||
|
|
|
@ -155,29 +155,58 @@ bridge:
|
||||||
enabled: false
|
enabled: false
|
||||||
admins: []
|
admins: []
|
||||||
|
|
||||||
|
livekit:
|
||||||
|
# -- deploy livekit for usage with element-call
|
||||||
|
enabled: false
|
||||||
|
# -- key for api (kind of username)
|
||||||
|
key: dev
|
||||||
|
# -- secret for api a kind of password (default: generated by .commons.masterPassword)
|
||||||
|
secret:
|
||||||
|
|
||||||
ingress:
|
ingress:
|
||||||
server:
|
server:
|
||||||
# -- default: matrix.(.commons.ingress.domain)
|
# -- default: matrix.(.commons.ingress.domain)
|
||||||
host:
|
host:
|
||||||
annotations:
|
annotations: {}
|
||||||
slidingSync:
|
slidingSync:
|
||||||
# -- default: sliding.matrix.(.commons.ingress.domain)
|
# -- default: sliding.matrix.(.commons.ingress.domain)
|
||||||
host:
|
host:
|
||||||
annotations:
|
annotations: {}
|
||||||
authenticationService:
|
authenticationService:
|
||||||
# -- default: auth.matrix.(.commons.ingress.domain)
|
# -- default: auth.matrix.(.commons.ingress.domain)
|
||||||
host:
|
host:
|
||||||
annotations:
|
annotations: {}
|
||||||
element:
|
element:
|
||||||
enabled: true
|
enabled: true
|
||||||
# -- default: element.(.commons.ingress.domain)
|
# -- default: element.(.commons.ingress.domain)
|
||||||
host:
|
host:
|
||||||
annotations:
|
annotations: {}
|
||||||
hydrogen:
|
hydrogen:
|
||||||
enabled: false
|
enabled: false
|
||||||
# -- default: hydrogen.(.commons.ingress.domain)
|
# -- default: hydrogen.(.commons.ingress.domain)
|
||||||
host:
|
host:
|
||||||
annotations:
|
annotations: {}
|
||||||
|
livekit:
|
||||||
|
enabled: false
|
||||||
|
# -- default: sfu.call.(.commons.ingress.domain)
|
||||||
|
host:
|
||||||
|
annotations: {}
|
||||||
|
elementCall:
|
||||||
|
# -- deploy element-call
|
||||||
|
enabled: false
|
||||||
|
# -- default: call.(.commons.ingress.domain)
|
||||||
|
host:
|
||||||
|
annotations: {}
|
||||||
|
livekitJWT:
|
||||||
|
# -- default: call.(.commons.ingress.domain)
|
||||||
|
host:
|
||||||
|
livekit:
|
||||||
|
# -- default: .ingress.livekit.host
|
||||||
|
host:
|
||||||
|
# -- default: .livekit.key
|
||||||
|
key:
|
||||||
|
# -- default: .livekit.secret
|
||||||
|
secret:
|
||||||
|
|
||||||
databases:
|
databases:
|
||||||
server:
|
server:
|
||||||
|
|
Loading…
Add table
Reference in a new issue