Unreleased documentation. Choose your installed release in the version menu. Features described here may be absent from that release.
Route traffic¶
Use the bundled Ingress and Gateway API support to route traffic to your Kubernetes Services. You don't need to write templates to use these routes. Install HAPTIC first, or explore the live examples in the guides without a cluster.
Choose how to define routes¶
| Your setup | Start here |
|---|---|
| You use Ingress resources for host and path routing | Ingress routing |
| You use Gateway API, with listeners and routes managed separately | Gateway API walkthrough |
| You need a specific Gateway route type, filter, or policy | Gateway API reference |
| You are replacing another ingress controller | Migration guide |
| Your routing model uses a custom resource | Write templates and watch your resources |
The default installation creates the haptic IngressClass and, when the
Gateway API CRDs are available, the haptic GatewayClass. Select HAPTIC with
spec.ingressClassName: haptic on an Ingress or spec.gatewayClassName: haptic
on a Gateway. Application routes then attach to that Gateway.
Configure traffic behavior¶
| Task | Guide |
|---|---|
| Serve HTTPS with your certificates | TLS certificates |
| Change Ingress timeouts, headers, redirects, or load balancing | Ingress annotations and native annotation reference |
| Authenticate Gateway requests, set rate limits, or select a firewall policy | Gateway route policies |
| Reuse web application firewall (WAF) rules across applications | WAF policies |
| Cache repeated responses | Response caching |
| Use external authentication, request inspection, or traffic mirroring | Traffic processing plugins |
| Use SPIFFE identities for backend TLS | SPIFFE/SPIRE mTLS |
For Ingress authentication, rate limits, and request validation, use the native annotations. Gateway API extensions use HAProxyRoutePolicy resources. Read each guide's prerequisites before applying a policy; some features require an optional service or plugin.
Check a route¶
Send a request with the hostname and path your route matches. If it doesn't reach the expected application, follow routing troubleshooting. Use access logs to identify the selected route, backend, and any policy that denied the request.
To change which resources an installation handles, see IngressClass settings or GatewayClass settings. For behavior the bundled settings don't cover, extend a template.