Citrix SecurSpaces™

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

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.

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

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.

Ingress