Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{{- if ne (int .Values.switchCore.replicaCount) 1 }}
{{- fail "switchCore.replicaCount must be 1: switch-core keeps live Matrix sync sessions in memory and cannot be horizontally scaled (a second replica would duplicate every client and split session state)." }}
{{- fail "switchCore.replicaCount must be 1: switch-core keeps in-process state that cannot be horizontally scaled — the event buffer, the invite bus, the presence bus, the message-listener subscriber registry, and live collaboration-bridge connections. A second replica would hold its own copy of each, so signals raised in one would never reach clients attached to the other." }}
{{- end }}
{{- include "switch.validateDbTls" . }}
{{- include "switch.validateLogging" . }}
Expand All @@ -12,10 +12,10 @@ metadata:
{{- include "switch.selectorLabels" (dict "Release" .Release "component" "switch-core") | nindent 4 }}
spec:
replicas: {{ .Values.switchCore.replicaCount }}
# switch-core is a singleton (live Matrix sync + collaboration-bridge sessions
# in memory). A rolling update would briefly run two pods whose bridge/client
# sessions collide and leave bridges stuck; Recreate tears the old pod down
# before starting the new one.
# switch-core is a singleton (in-process buses + live collaboration-bridge
# connections in memory; see the replicaCount guard above). A rolling update
# would briefly run two pods whose bridge/client sessions collide and leave
# bridges stuck; Recreate tears the old pod down before starting the new one.
strategy:
type: Recreate
selector:
Expand Down
Loading
Loading