-
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
Consistent status reasons #1832
Comments
Good catch, agree that these should all be present for both conditions. /help |
Also I think the spec is pretty clear but while I am here to double check... if I cannot say "traffic is ready to flow immediately" I should just not set Ready at all, right? And only use Programmed? |
+1 to this, helps users understand the difference between CP programmed and DP ready |
So my interpretation means:
|
Yep, the requirements for setting ready have become pretty strict: gateway-api/apis/v1beta1/gateway_types.go Lines 609 to 611 in 1c4ae61
If there were some kind of delay after which you could guarantee readiness that may also be a good reason to set "Ready", but not sure if that's a good idea. |
@gauravkghildiyal has volunteered to work on this one |
/remove-help |
would be good to add conformance tests to make sure if Route reports status as |
@arkodg completely agree, mind creating an issue to track that? |
One other issue I noticed is I would assume Ready > Programmed > Accepted. However, consider this status:" - lastTransitionTime: fake
message: 'failed to assign
to all requested addresses: hostname "istio-ingressgateway.not-default.svc.domain.suffix"
not found'
reason: NoResources
status: "False"
type: Accepted
- lastTransitionTime: fake
message: Resource programmed
reason: Programmed
status: "True"
type: Programmed I want to make |
@howardjohn The issue says that "ListenerConditionProgrammed" should be subset of "GatewayConditionReady". Is that perhaps a typo and you meant to say GatewayConditionProgrammed" should be subset of "GatewayConditionReady"? (I'm new to this and hence cannot confidently differentiate a typo from an actual ask) |
/assign |
@howardjohn I agree that Programmed should have a |
That was a typo, good catch |
Would we consider Meaning
Also it would be good for implementations to hint that they don't support |
+1 to Unknown and NotSupported |
+1 to But I don't think they should be required. The absence of a Condition means that it should be read as |
Alright, collating all the information here, does the following look agreeable? (Adding all related condition/reasons here for a holistic view) (Also, lets take this step by step and tackle the issue #1877 regarding "removing GatewayConditionReady completely" as a separate item)
|
Wow @gauravkghildiyal, thanks for that table, that's excellent. Here's my answers to your questions, but I'm interested to hear if I'm the outlier here:
|
Here is how I view things. Changes are bolded. GatewayAccepted: "The Gateway is accepted by the controller"
Moved: AddressNotAssigned (to programmed) GatewayProgrammed: "The Gateway is ready to go, (but maybe not immediately; eventual consistency allowed). This only applies to the entire GW; a new listener would not make this flip to False for example"
GatewayReady: reserved for future use ListenerAccepted: "The listener is accepted and valid"
ListenerResolvedRefs: "all references resolved ListenerProgrammed: "The Listener is ready to go, (but maybe not immediately; eventual consistency allowed)"
ListenerReady: reserved |
GatewayConditionReady is extended. It has a set of reasons:
// * "ListenersNotValid"
// * "ListenersNotReady"
// * "AddressNotAssigned"
ListenerConditionProgrammed is core, but it only has a few reasons:
// * "Invalid"
// * "Pending"
Given these represent almost the same thing, it seems like these should be the same set, or GatewayConditionReady should be a superset
similar concern on Listener status
The text was updated successfully, but these errors were encountered: