apiVersion: v1 kind: ConfigMap metadata: name: web-conf namespace: jitsi data: 20-use-env: |- #!/bin/bash sed -i "s|xmpp.meet.jitsi|XMPP_SERVER|" /config/nginx/meet.conf --- kind: Deployment apiVersion: apps/v1 metadata: name: web namespace: jitsi spec: strategy: type: Recreate replicas: 1 selector: matchLabels: app: web template: metadata: labels: app: web spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/arch operator: In values: - arm64 - amd64 initContainers: - name: web-conf image: busybox args: ["sh", "-c", "cat /20-use-env | sed \"s/XMPP_SERVER/$XMPP_SERVER/\" > /config/20-use-env && chmod +x /config/20-use-env"] volumeMounts: - mountPath: /config name: web - mountPath: /20-use-env name: web-conf subPath: 20-use-env envFrom: - configMapRef: name: env containers: - name: web image: jitsi/web:stable-9457-2 ports: - containerPort: 80 protocol: TCP - containerPort: 443 protocol: TCP envFrom: - configMapRef: name: env env: - name: JICOFO_AUTH_PASSWORD valueFrom: secretKeyRef: name: passwords key: JICOFO_AUTH_PASSWORD - name: JVB_AUTH_PASSWORD valueFrom: secretKeyRef: name: passwords key: JVB_AUTH_PASSWORD - name: JIGASI_XMPP_PASSWORD valueFrom: secretKeyRef: name: passwords key: JIGASI_XMPP_PASSWORD - name: JIBRI_RECORDER_PASSWORD valueFrom: secretKeyRef: name: passwords key: JIBRI_RECORDER_PASSWORD - name: JIBRI_XMPP_PASSWORD valueFrom: secretKeyRef: name: passwords key: JIBRI_XMPP_PASSWORD volumeMounts: - mountPath: /config name: web - mountPath: /var/spool/cron/crontabs name: web subPath: crontabs - mountPath: /usr/share/jitsi-meet/transcripts name: web subPath: transcripts - mountPath: /etc/cont-init.d/20-use-env name: web subPath: 20-use-env resources: limits: cpu: "500m" memory: "512Mi" requests: cpu: "10m" memory: "10Mi" # readinessProbe: # tcpSocket: # port: 80 # initialDelaySeconds: 15 # periodSeconds: 10 # livenessProbe: # tcpSocket: # port: 80 # initialDelaySeconds: 15 # periodSeconds: 10 volumes: - name: web persistentVolumeClaim: claimName: web - name: web-conf configMap: name: web-conf items: - key: 20-use-env path: 20-use-env --- kind: Deployment apiVersion: apps/v1 metadata: name: prosody namespace: jitsi spec: strategy: type: Recreate replicas: 1 selector: matchLabels: app: prosody template: metadata: labels: app: prosody spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/arch operator: In values: - arm64 - amd64 containers: - name: prosody image: jitsi/prosody:stable-9457-2 ports: - containerPort: 5222 protocol: TCP - containerPort: 5269 protocol: TCP - containerPort: 5347 protocol: TCP - containerPort: 5280 protocol: TCP envFrom: - configMapRef: name: env env: - name: JICOFO_AUTH_PASSWORD valueFrom: secretKeyRef: name: passwords key: JICOFO_AUTH_PASSWORD - name: JVB_AUTH_PASSWORD valueFrom: secretKeyRef: name: passwords key: JVB_AUTH_PASSWORD - name: JIGASI_XMPP_PASSWORD valueFrom: secretKeyRef: name: passwords key: JIGASI_XMPP_PASSWORD - name: JIBRI_RECORDER_PASSWORD valueFrom: secretKeyRef: name: passwords key: JIBRI_RECORDER_PASSWORD - name: JIBRI_XMPP_PASSWORD valueFrom: secretKeyRef: name: passwords key: JIBRI_XMPP_PASSWORD volumeMounts: - mountPath: /config name: prosody - mountPath: /prosody-plugins-custom name: prosody subPath: prosody-plugins-custom resources: limits: cpu: "500m" memory: "512Mi" requests: cpu: "10m" memory: "10Mi" # readinessProbe: # tcpSocket: # port: 5280 # initialDelaySeconds: 15 # periodSeconds: 10 # livenessProbe: # tcpSocket: # port: 5280 # initialDelaySeconds: 15 # periodSeconds: 10 volumes: - name: prosody persistentVolumeClaim: claimName: prosody --- kind: Deployment apiVersion: apps/v1 metadata: name: jicofo namespace: jitsi spec: strategy: type: Recreate replicas: 1 selector: matchLabels: app: jicofo template: metadata: labels: app: jicofo spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/arch operator: In values: - arm64 - amd64 containers: - name: jicofo image: jitsi/jicofo:stable-9457-2 ports: - containerPort: 8888 protocol: TCP envFrom: - configMapRef: name: env env: - name: JICOFO_AUTH_PASSWORD valueFrom: secretKeyRef: name: passwords key: JICOFO_AUTH_PASSWORD - name: JVB_AUTH_PASSWORD valueFrom: secretKeyRef: name: passwords key: JVB_AUTH_PASSWORD - name: JIGASI_XMPP_PASSWORD valueFrom: secretKeyRef: name: passwords key: JIGASI_XMPP_PASSWORD - name: JIBRI_RECORDER_PASSWORD valueFrom: secretKeyRef: name: passwords key: JIBRI_RECORDER_PASSWORD - name: JIBRI_XMPP_PASSWORD valueFrom: secretKeyRef: name: passwords key: JIBRI_XMPP_PASSWORD volumeMounts: - mountPath: /config name: jicofo resources: limits: cpu: "500m" memory: "512Mi" requests: cpu: "10m" memory: "10Mi" # readinessProbe: # tcpSocket: # port: 8888 # initialDelaySeconds: 15 # periodSeconds: 10 # livenessProbe: # tcpSocket: # port: 8888 # initialDelaySeconds: 15 # periodSeconds: 10 volumes: - name: jicofo persistentVolumeClaim: claimName: jicofo --- kind: Deployment apiVersion: apps/v1 metadata: name: jvb namespace: jitsi spec: strategy: type: Recreate replicas: 1 selector: matchLabels: app: jvb template: metadata: labels: app: jvb spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/arch operator: In values: - arm64 - amd64 containers: - name: jvb image: jitsi/jvb:stable-9457-2 ports: - containerPort: 10000 protocol: UDP - containerPort: 8080 protocol: TCP envFrom: - configMapRef: name: env env: - name: JICOFO_AUTH_PASSWORD valueFrom: secretKeyRef: name: passwords key: JICOFO_AUTH_PASSWORD - name: JVB_AUTH_PASSWORD valueFrom: secretKeyRef: name: passwords key: JVB_AUTH_PASSWORD - name: JIGASI_XMPP_PASSWORD valueFrom: secretKeyRef: name: passwords key: JIGASI_XMPP_PASSWORD - name: JIBRI_RECORDER_PASSWORD valueFrom: secretKeyRef: name: passwords key: JIBRI_RECORDER_PASSWORD - name: JIBRI_XMPP_PASSWORD valueFrom: secretKeyRef: name: passwords key: JIBRI_XMPP_PASSWORD volumeMounts: - mountPath: /config name: jvb resources: limits: cpu: "500m" memory: "512Mi" requests: cpu: "10m" memory: "10Mi" # readinessProbe: # tcpSocket: # port: 8080 # initialDelaySeconds: 15 # periodSeconds: 10 # livenessProbe: # tcpSocket: # port: 8080 # initialDelaySeconds: 15 # periodSeconds: 10 volumes: - name: jvb persistentVolumeClaim: claimName: jvb