feat(init): jitsi meet helm chart

master
taktakpeops 4 years ago
commit a0e7635b5f
  1. 3
      .editorconfig
  2. 5
      README.md
  3. 75
      jitsi-meet-examples/basic/values.yaml
  4. 22
      jitsi-meet/.helmignore
  5. 5
      jitsi-meet/Chart.yaml
  6. 21
      jitsi-meet/templates/NOTES.txt
  7. 119
      jitsi-meet/templates/_helpers.tpl
  8. 88
      jitsi-meet/templates/deployment-jvb.yaml
  9. 115
      jitsi-meet/templates/deployment-prosody.yaml
  10. 84
      jitsi-meet/templates/deployment-web.yaml
  11. 28
      jitsi-meet/templates/hpa-web.yaml
  12. 41
      jitsi-meet/templates/ingress-web.yaml
  13. 11
      jitsi-meet/templates/jicofo-config.yaml
  14. 10
      jitsi-meet/templates/jvb-config.yaml
  15. 17
      jitsi-meet/templates/service-jvb.yaml
  16. 24
      jitsi-meet/templates/service-prosody.yaml
  17. 16
      jitsi-meet/templates/service-web.yaml
  18. 8
      jitsi-meet/templates/serviceaccount.yaml
  19. 9
      jitsi-meet/templates/tcp-routes.yaml
  20. 15
      jitsi-meet/templates/tests/test-connection.yaml
  21. 9
      jitsi-meet/templates/udp-routes.yaml
  22. 135
      jitsi-meet/values.yaml

@ -0,0 +1,3 @@
[*.yaml]
tab_width = 2
trim_trailing_whitespace = true

@ -0,0 +1,5 @@
# Jitsi Meet Helm
An experiment for running JistiMeet inside of Kubernetes using Helm.
**Project not ready for production at all**

@ -0,0 +1,75 @@
jicofo:
userAuth:
enabled: true
name: "focus"
secret: dG90bwo=
componentSecret: dG90bwo=
environment:
- name: TZ
value: Europe/Amsterdam
- name: JVB_BREWERY_MUC
value: jvbbrewery
- name: XMPP_DOMAIN
value: meet.jitsi
- name: XMPP_AUTH_DOMAIN
value: auth.meet.jitsi
- name: XMPP_INTERNAL_MUC_DOMAIN
value: internal-muc.meet.jitsi
jvb:
userAuth:
enabled: true
name: "jvb"
secret: dG90bwo=
environment:
- name: TZ
value: Europe/Amsterdam
- name: JVB_BREWERY_MUC
value: jvbbrewery
- name: XMPP_DOMAIN
value: meet.jitsi
- name: XMPP_AUTH_DOMAIN
value: auth.meet.jitsi
- name: XMPP_MUC_DOMAIN
value: muc.meet.jitsi
- name: XMPP_INTERNAL_MUC_DOMAIN
value: stun.l.google.com:19302,stun1.l.google.com:19302,stun2.l.google.com:19302
- name: JVB_TCP_HARVESTER_DISABLED
value: "true"
prosody:
environment:
- name: JVB_TCP_HARVESTER_DISABLED
value: "true"
- name: TZ
value: Europe/Amsterdam
- name: JVB_BREWERY_MUC
value: jvbbrewery
- name: XMPP_DOMAIN
value: meet.jitsi
- name: XMPP_AUTH_DOMAIN
value: auth.meet.jitsi
- name: XMPP_INTERNAL_MUC_DOMAIN
value: internal-muc.meet.jitsi
- name: JVB_TCP_HARVESTER_DISABLED
value: "true"
- name: XMPP_MUC_DOMAIN
value: muc.meet.jitsi
web:
environment:
- name: XMPP_SERVER
value: localhost
- name: JICOFO_AUTH_USER
value: focus
- name: XMPP_DOMAIN
value: meet.jitsi
- name: XMPP_AUTH_DOMAIN
value: auth.meet.jitsi
- name: XMPP_INTERNAL_MUC_DOMAIN
value: internal-muc.meet.jitsi
- name: XMPP_MUC_DOMAIN
value: muc.meet.jitsi
- name: TZ
value: America/Los_Angeles
- name: JVB_TCP_HARVESTER_DISABLED
value: "true"

@ -0,0 +1,22 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

@ -0,0 +1,5 @@
apiVersion: v1
appVersion: "1.0"
description: A Helm chart for Kubernetes
name: jitsi-meet
version: 0.1.0

@ -0,0 +1,21 @@
1. Get the application URL by running these commands:
{{- if .Values.web.ingress.enabled }}
{{- range $host := .Values.web.ingress.hosts }}
{{- range .paths }}
http{{ if $.Values.web.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }}
{{- end }}
{{- end }}
{{- else if contains "NodePort" .Values.web.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "jitsi-meet.name-web" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.web.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "jitsi-meet.name-web" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "jitsi-meet.name-web" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.web.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "jitsi-meet.name-web" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl port-forward $POD_NAME 8080:80
{{- end }}

@ -0,0 +1,119 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "jitsi-meet.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create the web server name
*/}}
{{- define "jitsi-meet.name-web" -}}
{{- default .Chart.Name "web" | trimSuffix "-" -}}
{{- end -}}
{{/*
Create the XMPP server name
*/}}
{{- define "jitsi-meet.name-prosody" -}}
{{- default .Chart.Name "prosody" | trimSuffix "-" -}}
{{- end -}}
{{/*
Create the jicofo cmp name
*/}}
{{- define "jitsi-meet.name-jicofo" -}}
{{- default .Chart.Name "jicofo" | trimSuffix "-" -}}
{{- end -}}
{{/*
Create the jicofo config name
*/}}
{{- define "jitsi-meet.name-jicofo-config" -}}
{{- default .Chart.Name "jicofo" "config" | trimSuffix "-" -}}
{{- end -}}
{{/*
Create the jvb server name
*/}}
{{- define "jitsi-meet.name-jvb" -}}
{{- default .Chart.Name "jvb" | trimSuffix "-" -}}
{{- end -}}
{{/*
Create the jvb config name
*/}}
{{- define "jitsi-meet.name-jvb-config" -}}
{{- default .Chart.Name "jvb" "config" | trimSuffix "-" -}}
{{- 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).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "jitsi-meet.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "jitsi-meet.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "jitsi-meet.labels" -}}
app.kubernetes.io/name: {{ include "jitsi-meet.name" . }}
helm.sh/chart: {{ include "jitsi-meet.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "jitsi-meet.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "jitsi-meet.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}
{{/*
Create the link URL namespace/service:port for UDP route tables
*/}}
{{- define "jitsi-meet.udp-route-table-entry" -}}
{{- if .Values.jvb.service.udpPort -}}
{{ printf "%d:%s/%s-jvb:%d" .Values.jvb.udpPort .Release.Namespace .Release.Name .Values.jvb.udpPort }}
{{- end }}
{{- if .Values.jvb.service.tcpPort -}}
{{ printf "%d:%s/%s-jvb:%d" .Values.jvb.tcpPort .Release.Namespace .Release.Name .Values.jvb.tcpPort }}
{{- end }}
{{- end -}}
{{/*
Create the link URL namespace/service:port for TCP route tables
*/}}
{{- define "jitsi-meet.tcp-route-table-entry" -}}
{{- if .Values.jvb.service.tcpPort -}}
{{ printf "%d:%s/%s-jvb:%d" .Values.jvb.tcpPort .Release.Namespace .Release.Name .Values.jvb.tcpPort }}
{{- end }}
{{- end -}}

@ -0,0 +1,88 @@
{{- $xmppServer := include "jitsi-meet.name-prosody" . -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "jitsi-meet.name-jvb" . }}
labels:
{{ include "jitsi-meet.labels" . | indent 4 }}
spec:
replicas: {{ .Values.jvb.replicaCount }}
selector:
matchLabels:
app.kubernetes.io/name: {{ include "jitsi-meet.name-jvb" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: {{ include "jitsi-meet.name-jvb" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "jitsi-meet.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.jvb.podSecurityContext | nindent 8 }}
containers:
- name: {{ include "jitsi-meet.name-jvb" . }}
image: "{{ .Values.jvb.image.repository }}:{{ .Values.jvb.image.tag }}"
imagePullPolicy: {{ .Values.jvb.image.pullPolicy }}
env:
- name: XMPP_SERVER
value: {{ include "jitsi-meet.name-prosody" . }}
{{- if .Values.jicofo.userAuth.enabled }}
- name: JICOFO_USER
value: {{ .Values.jicofo.userAuth.name }}
- name: JICOFO_AUTH_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "jitsi-meet.name-jicofo-config" . }}
key: JICOFO_AUTH_PASSWORD
{{- end }}
{{- if .Values.jvb.userAuth.enabled }}
- name: JVB_USER
value: {{ .Values.jvb.userAuth.name }}
- name: JVB_AUTH_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "jitsi-meet.name-jvb-config" . }}
key: JVB_AUTH_PASSWORD
{{- end }}
{{ if .Values.jicofo.componentSecret }}
- name: JICOFO_COMPONENT_SECRET
valueFrom:
secretKeyRef:
name: {{ include "jitsi-meet.name-jicofo-config" . }}
key: JICOFO_COMPONENT_SECRET
{{ end }}
- name: JVB_PORT
value: "30300"
{{- with .Values.jvb.environment }}
{{- toYaml . | nindent 12 }}
{{- end }}
ports:
- name: video
containerPort: 30300
protocol: UDP
volumeMounts:
- name: dockersock
mountPath: "/var/run/docker.sock"
resources:
{{- toYaml .Values.jvb.resources | nindent 12 }}
volumes:
- name: dockersock
hostPath:
path: /var/run/docker.sock
{{- with .Values.jvb.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.jvb.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.jvb.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}

@ -0,0 +1,115 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "jitsi-meet.name-prosody" . }}
labels:
{{ include "jitsi-meet.labels" . | indent 4 }}
spec:
replicas: {{ .Values.jicofo.replicaCount }}
selector:
matchLabels:
app.kubernetes.io/name: {{ include "jitsi-meet.name-prosody" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: {{ include "jitsi-meet.name-prosody" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ template "jitsi-meet.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
containers:
- name: {{ include "jitsi-meet.name-jicofo" . }}
image: "{{ .Values.jicofo.image.repository }}:{{ .Values.jicofo.image.tag }}"
imagePullPolicy: {{ .Values.jicofo.image.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
{{ if .Values.jicofo.userAuth.enabled }}
- name: JICOFO_USER
value: {{ .Values.jicofo.userAuth.name | quote }}
- name: JICOFO_AUTH_PASSWORD
valueFrom:
secretKeyRef:
name: {{ include "jitsi-meet.name-jicofo-config" . }}
key: JICOFO_AUTH_PASSWORD
{{ end }}
{{ if .Values.jicofo.componentSecret }}
- name: JICOFO_COMPONENT_SECRET
valueFrom:
secretKeyRef:
name: {{ include "jitsi-meet.name-jicofo-config" . }}
key: JICOFO_COMPONENT_SECRET
{{ end }}
- name: XMPP_SERVER
value: localhost
{{- range .Values.jicofo.environment }}
- name: {{ .name | quote }}
value: {{ .value | quote }}
{{- end }}
resources:
{{- toYaml .Values.jicofo.resources | nindent 12 }}
- name: {{ include "jitsi-meet.name-prosody" . }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.prosody.image.repository }}:{{ .Values.prosody.image.tag }}"
imagePullPolicy: {{ .Values.prosody.image.pullPolicy }}
env:
{{ if .Values.jicofo.userAuth.enabled }}
- name: JICOFO_USER
value: {{ .Values.jicofo.userAuth.name }}
- name: JICOFO_AUTH_PASSWORD
valueFrom:
secretKeyRef:
name: {{ include "jitsi-meet.name-jicofo-config" . }}
key: JICOFO_AUTH_PASSWORD
{{ end }}
{{ if .Values.jicofo.componentSecret }}
- name: JICOFO_COMPONENT_SECRET
valueFrom:
secretKeyRef:
name: {{ include "jitsi-meet.name-jicofo-config" . }}
key: JICOFO_COMPONENT_SECRET
{{ end }}
{{- if .Values.jvb.userAuth.enabled }}
- name: JVB_USER
value: {{ .Values.jvb.userAuth.name }}
- name: JVB_AUTH_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "jitsi-meet.name-jvb-config" . }}
key: JVB_AUTH_PASSWORD
{{- end }}
{{- range .Values.prosody.environment }}
- name: {{ .name | quote }}
value: {{ .value | quote }}
{{- end }}
ports:
- containerPort: 5222
protocol: TCP
name: c2s1
- containerPort: 5322
protocol: TCP
name: c2s2
- containerPort: 5280
protocol: TCP
name: web
resources:
{{- toYaml .Values.prosody.resources | nindent 12 }}
{{- with .Values.prosody.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.prosody.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.prosody.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}

@ -0,0 +1,84 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "jitsi-meet.name-web" . }}
labels:
{{ include "jitsi-meet.labels" . | indent 4 }}
spec:
replicas: {{ .Values.web.replicaCount }}
selector:
matchLabels:
app.kubernetes.io/name: {{ include "jitsi-meet.name-web" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: {{ include "jitsi-meet.name-web" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ template "jitsi-meet.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
containers:
- name: {{ include "jitsi-meet.name-web" . }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
image: "{{ .Values.web.image.repository }}:{{ .Values.web.image.tag }}"
imagePullPolicy: {{ .Values.web.image.pullPolicy }}
env:
- name: XMPP_SERVER
value: {{ include "jitsi-meet.name-prosody" . }}
{{ if .Values.jicofo.userAuth.enabled }}
- name: JICOFO_USER
value: {{ .Values.jicofo.userAuth.name }}
- name: JICOFO_AUTH_PASSWORD
valueFrom:
secretKeyRef:
name: {{ include "jitsi-meet.name-jicofo-config" . }}
key: JICOFO_AUTH_PASSWORD
{{ end }}
{{- if .Values.jvb.userAuth.enabled }}
- name: JVB_USER
value: {{ .Values.jvb.userAuth.name }}
- name: JVB_AUTH_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "jitsi-meet.name-jvb-config" . }}
key: JVB_AUTH_PASSWORD
{{- end }}
- name: XMPP_BOSH_URL_BASE
value: "http://{{ include "jitsi-meet.name-prosody" . }}:5280"
{{- range .Values.web.environment }}
- name: {{ .name | quote }}
value: {{ .value | quote }}
{{- end }}
ports:
- name: http
containerPort: 80
protocol: TCP
livenessProbe:
httpGet:
path: /
port: http
readinessProbe:
httpGet:
path: /
port: http
resources:
{{- toYaml .Values.web.resources | nindent 12 }}
{{- with .Values.web.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.web.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.web.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}

@ -0,0 +1,28 @@
{{- if .Values.web.hpa.enabled }}
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "jitsi-meet.name-web" . }}
labels:
{{ include "jitsi-meet.labels" . | indent 4 }}
spec:
scaleTargetRef:
apiVersion: apps/v1beta1
kind: Deployment
name: {{ include "jitsi-meet.name-web" . }}
maxReplicas: {{ .Values.web.hpa.maxReplicas }}
minReplicas: {{ .Values.web.hpa.minReplicas }}
metrics:
{{- with .Values.web.hpa.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
targetAverageUtilization: {{ . }}
{{- end }}
{{- with .Values.web.hpa.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
targetAverageUtilization: {{ . }}
{{- end }}
{{- end }}

@ -0,0 +1,41 @@
{{- if .Values.web.ingress.enabled -}}
{{- $fullName := include "jitsi-meet.name-web" . -}}
{{- $svcPort := .Values.web.service.port -}}
{{- 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 "jitsi-meet.labels" . | indent 4 }}
{{- with .Values.web.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if .Values.web.ingress.tls }}
tls:
{{- range .Values.web.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.web.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ . }}
backend:
serviceName: {{ $fullName }}
servicePort: {{ $svcPort }}
{{- end }}
{{- end }}
{{- end }}

@ -0,0 +1,11 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ include "jitsi-meet.name-jicofo-config" . }}
labels:
{{ include "jitsi-meet.labels" . | indent 4 }}
data:
{{ if .Values.jicofo.userAuth.enabled }}
JICOFO_AUTH_PASSWORD: {{ .Values.jicofo.userAuth.secret }}
{{ end }}
JICOFO_COMPONENT_SECRET: {{ .Values.jicofo.componentSecret }}

@ -0,0 +1,10 @@
{{- if .Values.jvb.userAuth.enabled -}}
apiVersion: v1
kind: Secret
metadata:
name: {{ include "jitsi-meet.name-jvb-config" . }}
labels:
{{ include "jitsi-meet.labels" . | indent 4 }}
data:
JVB_AUTH_PASSWORD: {{ .Values.jvb.userAuth.secret }}
{{- end -}}

@ -0,0 +1,17 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "jitsi-meet.name-jvb" . }}
labels:
{{ include "jitsi-meet.labels" . | indent 4 }}
spec:
type: NodePort
externalTrafficPolicy: Cluster
ports:
- port: 30300
protocol: UDP
targetPort: 30300
nodePort: 30300
selector:
app.kubernetes.io/name: {{ include "jitsi-meet.name-jvb" . }}
app.kubernetes.io/instance: {{ .Release.Name }}

@ -0,0 +1,24 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "jitsi-meet.name-prosody" . }}
labels:
{{ include "jitsi-meet.labels" . | indent 4 }}
spec:
type: {{ .Values.prosody.service.type }}
ports:
- port: {{ .Values.prosody.service.portC2S1 }}
targetPort: c2s1
protocol: TCP
name: c2s1
- port: {{ .Values.prosody.service.portC2S2 }}
targetPort: c2s2
protocol: TCP
name: c2s2
- port: 5280
targetPort: web
protocol: TCP
name: web
selector:
app.kubernetes.io/name: {{ include "jitsi-meet.name-prosody" . }}
app.kubernetes.io/instance: {{ .Release.Name }}

@ -0,0 +1,16 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "jitsi-meet.name-web" . }}
labels:
{{ include "jitsi-meet.labels" . | indent 4 }}
spec:
type: {{ .Values.web.service.type }}
ports:
- port: {{ .Values.web.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
app.kubernetes.io/name: {{ include "jitsi-meet.name-web" . }}
app.kubernetes.io/instance: {{ .Release.Name }}

@ -0,0 +1,8 @@
{{- if .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ template "jitsi-meet.serviceAccountName" . }}
labels:
{{ include "jitsi-meet.labels" . | indent 4 }}
{{- end -}}

@ -0,0 +1,9 @@
{{- if .Values.jvb.ingress.enabled -}}
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-services
namespace: {{ .Values.serviceAccount.create }}
data:
{{ include "jitsi-meet.tcp-route-table-entry" . }}
{{- end -}}

@ -0,0 +1,15 @@
apiVersion: v1
kind: Pod
metadata:
name: "{{ include "jitsi-meet.fullname" . }}-test-connection"
labels:
{{ include "jitsi-meet.labels" . | indent 4 }}
annotations:
"helm.sh/hook": test-success
spec:
containers:
- name: wget
image: busybox
command: ['wget']
args: ['{{ include "jitsi-meet.name-web" . }}:{{ .Values.web.service.port }}']
restartPolicy: Never

@ -0,0 +1,9 @@
{{- if .Values.jvb.ingress.enabled -}}
apiVersion: v1
kind: ConfigMap
metadata:
name: udp-services
namespace: {{ .Values.serviceAccount.create }}
data:
{{ include "jitsi-meet.udp-route-table-entry" . }}
{{- end -}}

@ -0,0 +1,135 @@
# Default values for jitsi-meet.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
image:
pullSecrets: []
web:
image:
repository: jitsi/web
tag: latest
pullPolicy: Always
environment:
- name: ENABLE_LETSENCRYPT
value: false
replicaCount: 1
hpa:
enabled: false
minReplicas: 1
maxReplicas: 3
metrics:
targetCPUUtilizationPercentage: 70
targetMemoryUtilizationPercentage: 70
service:
annotations: []
type: ClusterIP
port: 80
ingress:
enabled: false
annotations: []
hosts:
- host: jitsi.meet.local
paths: []
tls: []
resources: {}
nodeSelector: {}
tolerations: []
affinity: {}
prosody:
image:
repository: jitsi/prosody
tag: latest
pullPolicy: Always
environment:
- name: ENABLE_GUEST
value: true
replicaCount: 1
service:
annotations: []
type: ClusterIP
portC2S1: 5222
portC2S2: 5322
sessionAffinityConfig:
clientIPConfig:
timeoutSeconds: 10800 # 3 hours
hpa:
enabled: true
minReplicas: 1
maxReplicas: 3
metrics:
- type: Resource
resource:
name: memory
targetAverageUtilization: 70
- type: Resource
resource:
name: cpu
targetAverageUtilization: 70
resources: {}
nodeSelector: {}
tolerations: []
affinity: {}
jicofo: # jicofo is used as a sidecar container for every prosody instance
image:
repository: jitsi/jicofo
tag: latest
pullPolicy: Always
environment: []
componentSecret: ""
userAuth:
enabled: false
name: "focus"
secret: ""
resources: {}
jvb:
image:
repository: jitsi/prosody
tag: latest
pullPolicy: Always
environment: []
securityContext:
fsGroup: 412
service:
annotations: []
type: NodePort
externalTrafficPolicy: Cluster
udpPort: 10000
tcpPort: 4443
ingress:
enabled: false
resources: {}
nodeSelector: {}
tolerations: []
affinity: {}
userAuth:
enabled: false
name: "jvb"
secret: ""
ingressControllerNamespace: ""
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name:
podSecurityContext: {}
# fsGroup: 2000
securityContext: {}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
Loading…
Cancel
Save