-
Notifications
You must be signed in to change notification settings - Fork 617
Description
Several different Kubernetes meta/v1.Condition types are defined by the spec, and some use differing terminology to communicate apparently similar status.
What would you like to be added:
- Add
PendingGatewayClassConditionReason, deprecateWaiting(for parity with ListenerConditionType) - Possibly add an
AcceptedGatewayConditionType, withAccepted,InvalidandPendingGatewayConditionReason to disambiguate the status of the object being accepted by the Gateway Controller versus being ready to route traffic.- GEP-1364 proposed replacing the current
GatewayConditionScheduledwith a newGatewayConditionAccepted - add GatewayConditionAccepted and GatewayReasonAccepted #1447
- Invalid syntax should be caught by the webhook, so not proposing to add this currently.
- GEP-1364 proposed replacing the current
- Add
AttachedorAcceptedListenerConditionType, deprecateDetachedAttachedcould still be a reasonable choice to clarify that this object isn't submitted to the controller individually, but rather evaluated as part of a Gateway object.- If choosing
Accepted, addAcceptedListenerConditionReason, deprecateAttached - See "good" state for ListenerStatus feels logically inverted, difficult to understand #1110 for more detail
- GEP-1364 proposed switching this to
Accepted - add ListenerConditionAccepted, update docs from "Detached" #1446
-
AddInvalidParametersListenerConditionReason, prefer over more genericInvalidwhen applicable? - Add
AcceptedRouteConditionReason, deprecateAdmitted(for parity with GatewayClassConditionType)Admittedwas only in the v1alpha1 spec, and had already been removed in Another round of v1alpha2 cleanup #839- Documented
Acceptedproperly in api: add RouteConditionReason to v1alpha2 #1114
-
Possibly addReadyRouteConditionType, although this is known to be difficult to implement accurately. - Add
PendingandInvalidorInvalidParametersRouteConditionReason,prefer over genericRefusedwhen applicable?- Tracking
Pendingin Add "Pending" reason and document usage for condition "Accepted", status: "Unknown" on all resources #1449 - Invalid syntax should be caught by the webhook, so not proposing to add this currently.
- Tracking
Why this is needed:
GatewayClassConditionType
"Accepted"
The possible false reasons indicate either that the controller is evaluating the GatewayClass still, or that it has been rejected and likely requires manual intervention to resolve. A Ready condition doesn't feel appropriate here as this isn't a concrete instance.
truereasons- "Accepted"
falsereasons- "InvalidParameters"
- "Waiting"
GatewayConditionType
"Ready"
This is pretty clearly intended to communicate different issues than the Accepted conditions, judging from the possible false values, the latter two of which seem to communicate issues that could be expected to be transient and eventually resolve on their own, or to look to a child object for additional detail.
truereasons- "Ready"
falsereasons- “ListenersNotValid”
- “ListenersNotReady”
- “AddressNotAssigned”
ListenerConditionType
"Detached"
The logical inversion issues with this condition are separately described in #1110, but at a high level the possible true reasons seem to communicate issues that could be expected to require manual intervention to resolve.
truereasons- “PortUnavailable”
- “UnsupportedExtension”
- “UnsupportedProtocol”
- “UnsupportedAddress”
falsereasons- "Attached"
"Ready"
The possible false reasons for this field look quite similar to the false reasons for the Accepted GatewayClassConditionType, but use slightly different terminology. I'm not quite sure how useful this field is beyond being a cue to look to other conditions if the status is false.
truereasons- "Ready"
falsereasons- “Invalid”
- “Pending"
RouteConditionType
"Accepted"
The possible false reasons for this field are not currently defined in the v1alpha2 API spec docs but were previously defined in v1alpha1, although don't appear to offer any additional context beyond the status boolean.
truereasons (only documented in v1alpha1)- "Admitted"
falsereasons (only documented in v1alpha1)- "Refused"
(If there's interest in enough of this changing, it could be substantial enough to warrant a GEP.)