Skip to content

Add appProtocol in zammad-nginx service#416

Merged
monotek merged 6 commits intozammad:mainfrom
assi010:main
Apr 8, 2026
Merged

Add appProtocol in zammad-nginx service#416
monotek merged 6 commits intozammad:mainfrom
assi010:main

Conversation

@assi010
Copy link
Copy Markdown
Contributor

@assi010 assi010 commented Mar 27, 2026

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

  • Chart Version bumped

Brian Lammerse added 2 commits March 27, 2026 22:55
Signed-off-by: Brian Lammerse <brian@brla.dev>
Signed-off-by: Brian Lammerse <brian@brla.dev>
@mgruner mgruner requested a review from monotek March 30, 2026 06:42
targetPort: http
protocol: TCP
name: http
appProtocol: {{ .Values.service.appProtocol }}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread zammad/values.yaml
service:
type: ClusterIP
port: 8080
appProtocol: kubernetes.io/ws
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to have that configurable?

@mgruner
I guess wss (WebSocket Secure) is not available or is this configurable somehow?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Member

@monotek monotek Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean it might only make sense to have this configurabel if you also could set:

appProtocol: kubernetes.io/wss

@monotek monotek merged commit 73ac1b0 into zammad:main Apr 8, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants