Skip to content

[Docs] HTTPRoutes stay while an OMENative component serves below its floor - #22

Merged
slin1237 merged 1 commit into
mainfrom
codex/nightly-docs-481cf371eb926ffc
Oct 2, 2026
Merged

slin1237 merged 1 commit into
mainfrom
codex/nightly-docs-481cf371eb926ffc

Conversation

@github-actions

@github-actions github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

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

  • Passed the documentation path and size guard (under 1000 added plus deleted lines; no file-count limit).
  • Passed an independent accuracy and single-concern review.
  • Passed git diff --check and website content/link tests, type checks, lint and production build.

Checklist

  • Every commit is signed off (git commit -s)
  • pnpm lint && pnpm check && pnpm test && pnpm build passes (run by the publisher on an isolated copy)

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Oct 2, 2026

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 87bb8802-b21f-4dbd-8326-e68ffc3e72d3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor Author

Documentation maintenance: ready. Unsuccessful content rounds: 0/3. Operational attempts: 0/3.

Head: fa597b5aae1acba55ce4961f0ea5811a16cce919; reviewed main: 40ff7deafa9a366fda6cc0cb9598dbef9b7fe515.

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.

Workflow evidence

Human review threads and CODEOWNER approval remain under repository policy.

@slin1237
slin1237 merged commit 7a4142d into main Oct 2, 2026
2 checks passed
@slin1237
slin1237 deleted the codex/nightly-docs-481cf371eb926ffc branch October 2, 2026 18:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant