llm-gw) runs in your cluster, always on. Every agent model call goes through it, with your allowed models, budgets and usage reporting. Agents reach it at http://xpander-llm-gw:4000, the Base URL shown in Platform > AI governance > Models while the host is unpublished. Full details: LLM Gateway on a self-hosted install.
Model keys
Agents on a Hybrid install never use xpander’s keys. Each provider needs a key in the organization (Platform > AI governance > Models) or on the install (secrets.static), or calls are refused with the missing key named. Set install keys as shown on Model keys and Bedrock. Custom OpenAI-compatible endpoints keep working as configured.
Health
New agent runs wait for a healthy gateway. If its pods cannot start (for example, the image cannot be pulled), new runs are refused with “The xpander AI gateway is unavailable right now” until the pods are ready:llm-gw pods (one on a single-node cluster installed with install.sh), each 1/1 and Running.
Network
WithnetworkPolicy.enabled, the gateway gets its own policy: ingress on port 4000 only, egress to DNS, agent-controller, Redis and public model providers over HTTPS, never a private or link-local address. Add what else it must reach:
Publishing llm-gw.<domain>
Only for coding clients and scripts in your network (agents never need it): set llm-gw.ingress.enabled: true (it renders only with the chart-wide ingress.enabled). You then need a DNS record for the host and a certificate that covers it (the chart reuses ingress.tls.secretName). Any load balancer in front needs an idle timeout of at least 1500 seconds (ALB: idle_timeout.timeout_seconds=1500). llm-gw.ingress.internal: true serves the host on a private load balancer (internalClassName, internalAnnotations). While no gateway pod is ready, a small xpander-llm-gw-unavailable pod answers the published host with a JSON 503 that coding clients and SDKs retry. Set llm-gw.unavailable.replicas: 2 to keep it through a node loss.
It cannot be turned off
From chart 0.22.5 the chart ignoresllm-gw.enabled (0.22.0 to 0.22.4 still read it). Every helm upgrade, including --reuse-values, starts the gateway.
