Ingress
Every Citrix SecurSpaces™ deployment needs an ingress controller in front of it. The platform terminates TLS at the ingress, and workspace traffic — including WebSocket connections for the Cloud IDE and, optionally, SSH — passes through it.
Supported controllers
| Controller | Deployed by the SecurSpaces chart | Configuration needed |
|---|---|---|
| NetScaler CPX (recommended) | Yes | None. See NetScaler CPX |
| NGINX | No | Tuning values, and manual setup for SSH |
| HAProxy | No | Set the ingress class |
| Kubernetes Gateway API | No | Set a gateway class instead of using Ingress resources |
| Istio | No | Match your gateway, and manual setup for SSH. See Istio |
NetScaler CPX is the recommended choice, and the only one the SecurSpaces chart can deploy and configure for you. If you have no existing preference, use it.
Important:
NetScaler CPX does not currently work on Google GKE. This is a known issue with a fix in progress and no date yet. On GKE, use NGINX or the Kubernetes Gateway API, and contact Citrix for the current status. See Google GKE.
What the choice affects
Two things differ meaningfully between controllers.
WebSocket and HTTP/2 handling. The Cloud IDE holds a WebSocket connection for as long as a workspace is open. A controller that closes idle connections early, or buffers responses aggressively, produces disconnects that look like platform faults. With NetScaler CPX the chart applies the right profiles itself. With NGINX you set them by hand — see NGINX.
SSH access to workspaces. SSH needs a TCP path through the ingress, on a port other than 443.
-
With NetScaler CPX, the chart creates the SSH ingress and the service port for you. Nothing to do.
-
With NGINX, you create a ConfigMap, patch the controller deployment, and expose the port yourself. See SSH TCP forwarding with NGINX.
-
With Istio, the chart creates no SSH ingress. You expose TCP to the workspace API yourself, as with NGINX. See Istio.
That difference is the main practical reason to prefer NetScaler CPX.
Selecting a controller
The controller is chosen in the configuration file the installer generates, before you run Helm. See Install with the Strong Installer CLI.
| Setting | Purpose |
|---|---|
platform.ingressClass |
The ingress class your controller watches |
platform.useNetscalerController |
Deploy and configure NetScaler CPX |
platform.useNginxController |
Apply NGINX-specific ingress annotations |
platform.useHAProxyController |
Apply HAProxy-specific ingress annotations |
platform.useGatewayAPI |
Use Gateway API resources instead of Ingress resources |
platform.useIstio |
Use Istio Gateway and VirtualService resources instead of Ingress resources |
platform.istio.gatewayNamespace |
Namespace where the Istio ingress gateway workload runs |
platform.istio.gatewaySelector |
Labels that select the Istio ingress gateway workload |
Set the annotation flag that matches your controller.
ingressClass must match the class the controller actually watches — confirm it with kubectl get ingressclass rather than assuming the default.
Related information
-
NetScaler CPX
-
NGINX
-
Istio
-
SSH TCP forwarding with NGINX
-
System requirements