The platform team runs a Gateway called public in the infra namespace. The app team deploys orders-v1 and orders-v2 in the shop namespace and wrote an HTTPRoute, but requests to orders.example.com get a 404.
About this scenario
The platform team runs a Gateway called public in the infra namespace. The app team deploys orders-v1 and orders-v2 in the shop namespace and wrote an HTTPRoute, but requests to orders.example.com get a 404.
Check the route's status, fix the attachment, then send 10% of the traffic to v2.
Objectives
- Read why the route isn't accepted
- The route is Accepted by the public Gateway
- orders-v1 gets 90% and orders-v2 gets 10%
- See both versions answer
What you'll practice
- allowedRoutes on a listener decides which namespaces may attach routes. A route that isn't allowed is never rejected outright; its status says NotAllowedByListeners.
- Weights split requests, not Pods: one v2 Pod gets 10% even with two v1 Pods.
- The app team changed only their own HTTPRoute. The Gateway stayed with the platform team.
How the playground works
The cluster runs entirely in your browser: a simulated API server, scheduler, kubelets and controllers, with virtual nodes in three zones. kubectl output follows the real formats, errors use the real messages, and the add-ons (CSI storage, Traefik, Envoy Gateway, cert-manager, Flux, Argo CD) behave like their real counterparts for the common paths. It's a simulation, so some behavior is simplified. Your progress is saved in this browser.