[Docs] HTTPRoutes stay while an OMENative component serves below its floor - #22
Conversation
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
|
Documentation maintenance: ready. Unsuccessful content rounds: 0/3. Operational attempts: 0/3. Head: All three edits document one fact introduced by componentCanBackRoute (reconcilers/ingress/builders/readiness.go): with Gateway API, a component's HTTPRoute is built when its Ready condition is True, or when it is False but status.components[*].scaleTargetRef points at the component's InferenceReplica (ome.io/v1beta1, <isvc>-<component>) and lifecycle.readyReplicas and servingReplicas are both above 0. Verified at the pinned commit (bc1f94db, matching ome.ref): the gate wraps all four route builders (httproute_builder.go:319,355,383,425) with condition types EngineReady/RouterReady/DecoderReady as named in the doc; the raw Ingress path still requires IsConditionReady (ingress_builder.go:68,83,98), so keeping "OME creates the Ingress once the component is ready" is correct; ComponentNotReady with message "<component> component not ready for HTTPRoute creation" is set by reconcileComponentHTTPRoute; IngressReady=True is stamped from route presence plus gateway acceptance, and TestGatewayAPIStrategy_Reconcile_AcceptedRoutesDuringScaleUp asserts IngressReady=True exactly in the EngineReady=False/InsufficientAvailable scenario with serving replicas, False at zero; InsufficientAvailable is the real below-floor reason (status/top_level_condition.go:48) and "serving Instance" matches the ServingReplicas semantics in the API types and instances.md. All new link anchors exist (instances.md#readiness-and-availability, deployment-modes.md#lifecycle-status and #conditions, omenative/overview.md, ingress.md#routes). The edits are Markdown-only, need no nav or redirect changes, and follow the writing-docs style. The context has no feedback threads, so none are addressed. Human review threads and CODEOWNER approval remain under repository policy. |
What this PR does
With Gateway API ingress, does an InferenceService keep its HTTPRoutes (and can IngressReady be True) while an OMENative component's Ready condition is False but it still has serving replicas?
Why we need it
Source change: ome-projects/ome@4fab758
componentCanBackRoute in pkg/controller/v1beta1/inferenceservice/reconcilers/ingress/builders/readiness.go returns true when the component's Ready condition is True, OR when it is False but status.components[].scaleTargetRef points at the component's InferenceReplica (ome.io/v1beta1, name from irprojector.InferenceReplicaName) and lifecycle.readyReplicas > 0 and lifecycle.servingReplicas > 0. It gates buildEngineHTTPRoute, buildRouterHTTPRoute, buildDecoderHTTPRoute and buildTopLevelHTTPRoute in builders/httproute_builder.go (lines 319, 355, 383, 425), so an OMENative component converging below its availability floor keeps its route and keeps serving, and checkHTTPRouteStatuses in strategies/gateway_api_strategy.go can then set IngressReady=True from gateway acceptance alone. The raw Kubernetes Ingress path (builders/ingress_builder.go lines 68, 83, 98) still requires IsConditionReady, so the relaxation is HTTPRoute-only. Current docs contradict this: concepts/rollouts-and-traffic/ingress.md says "OME creates a component's route once the component is ready" (Routes section), lists "Every declared component is ready" as the HTTPRoutes row of the When-IngressReady-is-True table, and describes ComponentNotReady as "OME creates the Ingress or the HTTPRoute once the component is ready"; guides/networking/configure-ingress.md's troubleshooting says "With the reason ComponentNotReady, the router, decoder or engine isn't ready, and OME creates its route when it is"; guides/networking/multiple-gateways.md Step 2 says "OME creates a component's route only once the component is ready." This is one independent concern: one stale claim (route existence requires component readiness) introduced by one commit's componentCanBackRoute change, distinct from the same commit's route-update acceptance gating.
Scope: ingress / httproute-serving-below-readiness-floor. Other concerns are deferred.
How to test
git diff --checkand website content/link tests, type checks, lint and production build.Checklist
git commit -s)pnpm lint && pnpm check && pnpm test && pnpm buildpasses (run by the publisher on an isolated copy)