-
Notifications
You must be signed in to change notification settings - Fork 493
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add conformance tests for GatewayConditionReady #1833
Comments
I'd like to work on this. I'm sorry if I'm missing something obvious and it would be great if someone can help with the following doubt: So I'm guessing that the |
That is an excellent point. Ready=False does not imply traffic must fail IMO, just that we aren't 100% certain it will succeed. However the interaction with route is troubling I think. It can't mean "all routes are ready", IMO, because we wouldn't have anyway to know if it's an outdated condition. Normally we use observedGeneration but this is cross-resource |
maybe a gateway-api/apis/v1beta1/shared_types.go Line 198 in 20be22d
|
A For Envoy data planes, for example, the controller will need to track which filter chain (at least) corresponds to which HTTPRoute, and ensure that ACKs and NACKs flow backwards through the controller, so that the status of the correct HTTPRoute can be updated at the right time. My experience is this is pretty hard to do right, because xDS is eventually consistent, in that even once a specific update has been ACKed, Envoy will need a (small) amount of time to flip things over. Will this be long enough to notice? Probably not, but we have no way of guaranteeing it, because of the way the Kubernetes eventual consistency lines up with the Envoy xDS consistency checks. |
I feel like all of those concerns apply to "Ready" at Gateway level though? Which is why we aren't implementing it today - its a Hard Problem. I'd be really interested to see if anyone with an Envoy based implementation is able to do it correctly (and handling NxM data plane/control plane replicas) From the user perspective, what value does Ready provide (over Programmed) if it doesn' include Routes? A gateway without routes is ~useless |
for the
for the
yes, its a really hard problem, but hoping implementations are incentivized to solve it, since its very useful for end users |
IMO we should either have |
I second having a |
/assign |
thanks for driving this @dprotaso ! |
I think we can close this one out now that we've marked "Ready" as reserved for future use: #1888. |
What would you like to be added:
Add an extended conformance test to ensure that when the Gateway
Ready
Condition is set toTrue
, all traffic sent through this listener must succeed. Here is the condition in the spec.Relates to #1832 (comment)
Why this is needed:
End users can better understand guarantees provided by implementations.
The text was updated successfully, but these errors were encountered: