nebari-dev / nebari-dev/llm-serving-pack

Support isolated LLM Gateway for large request buffer policies

Open
#87 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

priority: medium ⚡ type: enhancement 💅🏼
Dominant language
Go
Stars
3
Forks
3
Avg merge
16h 31m
Merged PRs (30d)
11

Description

Problem

Large OpenAI-compatible /v1/chat/completions requests can exceed Envoy Gateway's default downstream connection buffer limit before the request reaches Envoy AI Gateway or vLLM. Envoy AI Gateway examples raise ClientTrafficPolicy.spec.connection.bufferLimit to 50Mi for AI workloads.

In a Nebari deployment where nebari-llm-serving is configured to patch llm-https / llm-internal-https listeners onto a shared platform Gateway, the practical workaround may be to attach that larger buffer policy to the entire shared Gateway. That fixes LLM requests, but it also changes downstream buffering behavior for unrelated services behind the same Gateway, such as landing pages, auth services, admin UIs, or other routes.

Why this matters

This is acceptable as a short-term deployment workaround, but it is not ideal as the long-term pattern. Buffer limits are connection/listener-level Envoy behavior, so deployments that need larger LLM request bodies should be able to isolate that behavior from non-LLM traffic.

Desired outcome

Provide or document a first-class deployment mode where LLM traffic uses a dedicated Gateway / Envoy entrypoint, so operators can safely apply LLM-specific client traffic policies such as:

apiVersion: gateway.envoyproxy.io/v1alpha1
kind: ClientTrafficPolicy
spec:
  targetRefs:
    - group: gateway.networking.k8s.io
      kind: Gateway
      name: <dedicated-llm-gateway>
  connection:
    bufferLimit: 50Mi

without affecting unrelated traffic on the shared platform Gateway.

Notes

The chart already exposes platform.gateway.external and platform.gateway.internal, and the operator reads those values via LLM_EXTERNAL_GATEWAY_* / LLM_INTERNAL_GATEWAY_*. The missing piece is a clear supported pattern, docs, or optional chart-managed resources for creating and wiring a dedicated LLM Gateway, including DNS/certificate expectations.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the chart values platform.gateway.external and platform.gateway.internal, then trace how the operator reads LLM_EXTERNAL_GATEWAY_* and LLM_INTERNAL_GATEWAY_*. Define a supported dedicated LLM Gateway pattern or documentation, including wiring, DNS and certificate expectations, and isolation for ClientTrafficPolicy buffer limits. Done means operators can apply LLM-specific buffering without changing unrelated traffic on the shared Gateway.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
devops, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.