-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable K8 Ingress to support websockets #20025
Comments
possible duplicates #19434 |
I had a draft but it should be reworked in a proper generic way, where an administrator is able to use serviceName as placeholder https://github.com/eclipse-che/che-server/compare/main...sleshchenko:nginx_websocket?expand=1 |
Hi Serhii Leshchenko, I was looking around in the same area in code. I was hoping to specify a config item in config map, say, CHE_INFRA_KUBERNETES_INGRESS_ANNOTATIONS_ENABLE_K8_NGINX_WEBSOCKETS_SERVICE_NAME="nginx.org/websocket-services" Right where you pointed out in the code, if the above is set, it will add the service name value and append to annotation map. My everyday work environment is nodejs, I will try to setup java and see if I can contribute. I will be happy to review for sure. thank you for prompt reply regards |
The issue you mentioned is for che-host. The issue I am describing is for workspaces. So they are different issues |
@manojsaxenatda @sleshchenko does this eclipse-che/che-server#56 fixes the issue? |
Thank you so much, I have tried tag 7.35.0 and it fixes the websocket issue for nginx proxy. |
Describe the bug
The Che UI doesn't open. Che-theia interface doesn't open for workspaces.
Che version
7.31.2
Steps to reproduce
Deploy che using helm charts from https://github.com/eclipse-che/che-server.git with the following changes to values.yaml file
cheImage: quay.io/eclipse/che-server:7.31.2
singleHostExposure: native
Expected behavior
UI should come up in a browser and a user should be able to create and launch workspaces.
Runtime
K8
nginx ingress controller
Screenshots
Installation method
helm (https://github.com/eclipse-che/che-server.git)
Environment
K8 cluster with 3 linux hosts
K8
nginx ingress controller
Eclipse Che Logs
Additional context
In k8 native strategy, eclipse che relies on nginx ingress controller to route traffic to various services based on virtual host and context path.
Che and Theia UI uses websockets.
Here is an example ingress for jwtproxy service running on port 4402 for a workspace, clearly this will not work for websockets:
Looking at the code, it looks like it is copying the following annotations to ingress rules CHE_INFRA_KUBERNETES_INGRESS_ANNOTATIONS__JSON and adding few more like machine.name, theia*
What would be nice is a way to add annotation
"nginx.org/websocket-services: serverir1q4d2n-jwtproxy"
via config item when k8 native ingress controller routing is in place.
The following annotation will make websockets connection possible:
nginx.org/websocket-services: serverir1q4d2n-jwtproxy
I have tested it and it works our environment.
The text was updated successfully, but these errors were encountered: