feat(assist): enhance WebSocket session persistence

Add session extraction from peerId parameter for better WebSocket
connection stability. This improves assist session routing by:

- Extracting sessionID from peerId parameter using regex
- Setting upstream hash-by to use the extracted session ID
- Adding debug headers to monitor session routing

TODO: Convert this to map

Signed-off-by: rjshrjndrn <rjshrjndrn@gmail.com>
This commit is contained in:
rjshrjndrn 2025-03-20 12:33:51 +01:00
parent 13bd3d9121
commit 8e68eb9a20

View file

@ -10,7 +10,15 @@ metadata:
{{- include "assist.labels" . | nindent 4 }} {{- include "assist.labels" . | nindent 4 }}
annotations: annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1 nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/upstream-hash-by: $http_x_forwarded_for nginx.ingress.kubernetes.io/configuration-snippet: |
# Extract sessionID from peerId using regex
if ($arg_peerId ~ ".*-(?<extracted_sid>[^-]+)-.*") {
set $session_id $extracted_sid;
}
add_header X-Debug-Session-ID $session_id;
add_header X-Debug-Session-Type "wss";
nginx.ingress.kubernetes.io/upstream-hash-by: $session_id
{{- with .Values.ingress.annotations }} {{- with .Values.ingress.annotations }}
{{- toYaml . | nindent 4 }} {{- toYaml . | nindent 4 }}
{{- end }} {{- end }}