Add appProtocol in zammad-nginx service#416
Conversation
Signed-off-by: Brian Lammerse <brian@brla.dev>
Signed-off-by: Brian Lammerse <brian@brla.dev>
| targetPort: http | ||
| protocol: TCP | ||
| name: http | ||
| appProtocol: {{ .Values.service.appProtocol }} |
There was a problem hiding this comment.
not sure if this should go here instead?
https://github.com/zammad/zammad-helm/blob/main/zammad/templates/service-websocket.yaml
There was a problem hiding this comment.
That's what I thought at first as well, but I saw the ingress forwards everything to the zammad-nginx service. The httproute I made follows the same implementation as the ingress, so the only way the gateway can know about the websockets is here.
| service: | ||
| type: ClusterIP | ||
| port: 8080 | ||
| appProtocol: kubernetes.io/ws |
There was a problem hiding this comment.
Do we need to have that configurable?
@mgruner
I guess wss (WebSocket Secure) is not available or is this configurable somehow?
There was a problem hiding this comment.
What do you mean @monotek? The railsserver / web socket server does not handle any TLS termination. This usually happens in the proxy before, e.g. nginx-proxy-manager in Docker stacks.
There was a problem hiding this comment.
I mean it might only make sense to have this configurabel if you also could set:
appProtocol: kubernetes.io/wss
Signed-off-by: Brian Lammerse <brian@brla.dev>
What this PR does / why we need it
I have been migrating away from ingress-nginx and started looking into using the Gateway API. After doing some tests with kgateway I found that by default websockets are not working / enabled.
In GEP-1911 it is explained that some Gateway API implementations do not support automatic protocol selection or require an explicit opt-in. I added the appProtocol as described in the linked documentation page, tested the changes on my cluster and found it to be working afterwards.
Special notes for your reviewer
I was not sure whether to add to inline the value or add it to the
values.yaml.Checklist