-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjvb-statefulset.yaml
137 lines (137 loc) · 4.26 KB
/
jvb-statefulset.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
apiVersion: apps/v1
kind: StatefulSet
metadata:
namespace: jitsi
labels:
k8s-app: jvb
name: jvb
# needed for metacontroller to create/delete service per pod
annotations:
service-per-pod-label: "statefulset.kubernetes.io/pod-name"
spec:
replicas: 2
updateStrategy:
type: RollingUpdate
selector:
matchLabels:
k8s-app: jvb
serviceName: jvb
# relax ordering guarantees because not needed (any JVB pod can be stopped or started at any time)
podManagementPolicy: Parallel
template:
metadata:
labels:
k8s-app: jvb
annotations:
prometheus.io/scrape: 'true'
prometheus.io/port: '9888'
spec:
volumes:
- name: jvb-entrypoint
configMap:
name: jvb-entrypoint
defaultMode: 0744 # make executable
- name: jvb-shutdown
configMap:
name: jvb-shutdown
defaultMode: 0744 # make executable
# in case there is a long running conference on a JVB that should be shut down, give it time to finish
terminationGracePeriodSeconds: 2147483647
containers:
- name: prometheus-exporter
# sidecar container that exports stats for prometheus
# values are scraped by ../ops/monitoring/jvb-pod-monitor.yaml
image: systemli/prometheus-jitsi-meet-exporter:1.1.1
imagePullPolicy: Always
ports:
- name: metrics
containerPort: 9888
args:
- "-videobridge-url"
- "http://localhost:8080/colibri/stats"
- name: jvb
image: jitsi/jvb:stable-5142-4
imagePullPolicy: Always
lifecycle:
preStop:
exec:
command: ["bash", "/shutdown/graceful_shutdown.sh", "-t 3"]
command:
- /entrypoint/entrypoint.sh
args:
- "/init"
readinessProbe:
httpGet:
path: /about/health
port: 8080
initialDelaySeconds: 10
volumeMounts:
- name: jvb-entrypoint
mountPath: /entrypoint
- name: jvb-shutdown
mountPath: /shutdown
env:
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: XMPP_SERVER
value: prosody
- name: DOCKER_HOST_ADDRESS
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: XMPP_DOMAIN
valueFrom:
configMapKeyRef:
key: XMPP_DOMAIN
name: common
- name: XMPP_AUTH_DOMAIN
valueFrom:
configMapKeyRef:
key: XMPP_AUTH_DOMAIN
name: common
- name: XMPP_INTERNAL_MUC_DOMAIN
valueFrom:
configMapKeyRef:
key: XMPP_INTERNAL_MUC_DOMAIN
name: common
# - name: JVB_STUN_SERVERS
# valueFrom:
# secretKeyRef:
# name: jitsi-config
# key: JVB_STUN_SERVERS
- name: JICOFO_AUTH_USER
valueFrom:
configMapKeyRef:
key: JICOFO_AUTH_USER
name: common
- name: JVB_TCP_HARVESTER_DISABLED
value: "true"
- name: JVB_ENABLE_APIS
value: colibri,rest
- name: JVB_AUTH_USER
valueFrom:
configMapKeyRef:
key: JVB_AUTH_USER
name: common
- name: JVB_AUTH_PASSWORD
valueFrom:
secretKeyRef:
name: jitsi-config
key: JVB_AUTH_PASSWORD
- name: JICOFO_AUTH_PASSWORD
valueFrom:
secretKeyRef:
name: jitsi-config
key: JICOFO_AUTH_PASSWORD
- name: JVB_BREWERY_MUC
valueFrom:
configMapKeyRef:
key: JVB_BREWERY_MUC
name: common
- name: TZ
valueFrom:
configMapKeyRef:
key: TIMEZONE
name: common