Repository navigation
Replies: 1 comment
|
This is a known class of behavior in Gateway API controllers, and your "delete + recreate fixes it, spec unchanged" signature is the tell: the route's status subresource was written once from a partially-initialized world (Gateway not yet Two things worth separating in your rollout: 1. Sequencing eliminates most of it. Since this is a first-create phenomenon on a shared Gateway, gate the route wave on Gateway readiness in CI before applying routes: kubectl wait gateway/<name> -n <gw-ns> --for=condition=Programmed --timeout=300sthen apply the HTTPRoutes (any batch size). If the listener/hostname story is already consistent by the time routes land, the stale-status window mostly disappears — which matches your smaller-batches improvement, just made deterministic. 2. Your annotation-bump workaround is the right remediation for stragglers — it forces exactly the missing watch event. A post-deploy loop that bumps (or even re-applies) any route not On tuning: there's no user-facing flag that changes this — the relevant knobs (status writer queueing, per-route requeue on parent-Gateway events) are internal, and the burst-conflict behavior is worth an upstream issue with your repro details (version, parallel create count, stale-until-recreate signature), since re-queueing route status on Gateway |
Uh oh!
There was an error while loading. Please reload this page.
Context
We're rolling out Envoy Gateway on GKE (Gateway API) and attaching many app HTTPRoutes to one shared Gateway (external HTTPS listener, hostless — no
hostnameon the listener; routes useparentRefswithsectionName: https).gateway-helm-v1.9.2)What we see
On first create (especially when several HTTPRoutes land in parallel):
status.parentsis empty[], or shows a parent row withAccepted=False(wording varies).attachedRoutescounts; port-forward or internal checks can match nginx-era behavior.Accepted=Truewith no spec change.We are not seeing a consistent
NoMatchingListenerHostnamestory —parentRef(Gateway name, namespace,sectionName: https) matches what works after recreate.Workarounds we use
Accepted=Truebefore load balancer cutover.Questions for the community / maintainers
parentson first create belong on one of those, or is a minimal repro still wanted for v1.9.x?Thanks.
All reactions