Skip to content

docs: surface PassthroughModel and make examples runnable and drift-proof#138

Merged
dcmcand merged 12 commits into
mainfrom
docs/runnable-examples
Jul 16, 2026
Merged

docs: surface PassthroughModel and make examples runnable and drift-proof#138
dcmcand merged 12 commits into
mainfrom
docs/runnable-examples

Conversation

@dcmcand

@dcmcand dcmcand commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Readers couldn't find the PassthroughModel feature (external-provider routing, #96) anywhere in the docs, and several runnable manifests were orphaned, drifted, or shown only as fragments. This makes every documented feature copy-paste runnable and keeps the manifests in sync with the repo automatically.

Single source of truth for examples. Pages that show a manifest now import the real examples/*.yaml file via a Vite ?raw import and render it with Starlight's <Code> component, so what a reader copies is byte-identical to the repo file and can't drift. Applied to architecture, quickstart, configuration, and shared-storage (converted .md -> .mdx).

PassthroughModel is now documented.

  • Quickstart: a "Route to an external provider" walkthrough (create the provider secret -> apply the PassthroughModel -> call the endpoint), mirroring the served-model flow.
  • Configuration: a full PassthroughModel CRD field reference matching the schema.
  • Troubleshooting: an external-provider failure section (bad credentialSecretName -> upstream 401, missing AI-Gateway CRDs -> ApplyFailed, catch-all precedence), with commands verified against the operator source.

Other fixes.

  • Shared Storage now embeds complete OCI and gated-HF manifests, not just fragments.
  • Quickstart shows the kubectl create secret generic hf-token ... command inline where authSecretName is introduced.
  • Fixed the minimal LLMModel example's namespace, which the validating webhook rejects.
  • Added examples/models/minimal.yaml and examples/models/advanced-scheduling.yaml.

Version reconciliation (grounded in NIC / release tags, not guesses). Pack v0.1.1 (newest tag, contains the PassthroughModel CRD); gpu-operator v25.10.1 (the documented, justified version); AI Gateway docker.io/envoyproxy with no oci:// prefix and v0.5.0 (matches what nebari-infrastructure-core actually deploys); clusterIssuer: letsencrypt-issuer and storageClassName: longhorn (NIC's actual values). installation.md stays .md: its Application manifests are NIC-tuned and deliberately different from the standalone examples, so only its pack version was updated.

Testing. docs/test/docs-examples.test.mjs (25/25) asserts every embed, section, field, and reconciled value; npm run build is clean (11 pages) with all embeds resolving.

Follow-ups. Deferred docs items and the config/version cleanup are tracked in #137. End-to-end verification against a live cluster (applying the quickstart passthrough steps for a real 200) is deferred to post-merge, since no cluster was reachable.

@github-actions

Copy link
Copy Markdown

📄 Docs preview for docs/runnable-examples:
https://docs-runnable-examples.llm-serving-pack.pages.dev

dcmcand added 12 commits July 16, 2026 08:00
…ingle source)

Replaces the inline near-duplicate PassthroughModel YAML on the
architecture page with a Vite ?raw import of examples/passthrough-openrouter.yaml,
rendered via Starlight's <Code> component, so the docs page and the
runnable manifest cannot drift.

- architecture.md renamed to architecture.mdx to allow the import/JSX syntax.
- astro.config.mjs: added vite.server.fs.allow (searchForWorkspaceRoot) so the
  cross-root ?raw import resolves during `astro dev`.
- docs/test/docs-examples.test.mjs: new harness asserting the embed import and
  Code usage are present and that no inline duplicate of the manifest remains.

Used the primary embed path (no prebuild-copy fallback needed): `npm run build`
succeeded with the cross-directory ?raw import resolving, and the built
docs/dist/architecture/index.html contains the embedded manifest content.
Convert quickstart.md to .mdx, embed the PassthroughModel example via
the Task 1 pattern, and add a Route to an external provider section so
the anchor referenced from architecture.mdx resolves. Also add an
explicit kubectl command for creating the hf-token secret inline where
authSecretName is introduced.
…prose

The header comment showed 'kubectl -n <ns> create secret generic <name>'
while the quickstart page renders 'kubectl create secret generic <name> -n <ns>'
a few lines above the embedded manifest. Same command, consistent ordering now.
Reconciles examples/*.yaml and installation.md pack version references
against verified nebari-infrastructure-core source and the confirmed
v0.1.1 pack tag: pack targetRevision v0.1.1, gpu-operator v25.10.1,
AI Gateway repoURL without the oci:// prefix, clusterIssuer
letsencrypt-issuer, and default storageClassName longhorn. Adds a link
from installation.md's pack-app manifest to the standalone
examples/argocd-application.yaml template.
The passthrough example's header comment is embedded verbatim into three
rendered docs pages; a repo-relative filesystem path reads oddly there.
The configuration reference table and the shared-storage init-image
reference pointed at the old ghcr path; the images now publish under
llm-serving-pack. ghcr paths only; Go module path unaffected.
The pack chart is now published to quay.io/nebari/charts (release
0.1.2). Switch the ArgoCD Application examples in installation.md,
examples/argocd-application.yaml, and README.md from a git-sourced
chart (repoURL + path: charts/nebari-llm-serving) to the OCI Helm
source form (repoURL + chart + targetRevision, no oci:// prefix).
Cluster-config (LLMModel) sources are untouched. Update the two
docs tests that hard-asserted the old git-tag values.
@dcmcand
dcmcand force-pushed the docs/runnable-examples branch from b8d2867 to 934472a Compare July 16, 2026 06:37
@dcmcand
dcmcand merged commit f208392 into main Jul 16, 2026
8 checks passed
@dcmcand
dcmcand deleted the docs/runnable-examples branch July 16, 2026 06:57
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