From 44d152c041e5039d1f05d0219462e31c88892a3e Mon Sep 17 00:00:00 2001 From: Denis Khachyan Date: Wed, 22 Jul 2026 15:29:32 +0300 Subject: [PATCH] feat(chart): allow extra args, init containers, and volumes for tokenizer The tokenizer render sidecar could not be customized beyond its args and volume mounts. Add extraArgs, initContainers, and volumes so deployments can prewarm the model cache and mount supporting storage. Signed-off-by: Denis Khachyan --- config/charts/README.md | 3 +++ config/charts/routerlib/templates/_deployment.yaml | 10 ++++++++++ config/charts/routerlib/values.yaml | 6 ++++++ 3 files changed, 19 insertions(+) diff --git a/config/charts/README.md b/config/charts/README.md index 7031a67f1d..13fa0221bb 100644 --- a/config/charts/README.md +++ b/config/charts/README.md @@ -331,9 +331,12 @@ The sidecar runs vLLM's `vllm launch render ` and exposes `/v1/comple | `router.tokenizer.port` | Container port the sidecar listens on. | `8000` | | `router.tokenizer.command` | Override container command. Empty renders `["vllm", "launch", "render"]`. | `[]` | | `router.tokenizer.args` | Override container args. Empty renders `["", "--port="]`. | `[]` | +| `router.tokenizer.extraArgs` | Extra args appended to the tokenizer container after the default or overridden args. | `[]` | +| `router.tokenizer.initContainers` | Pod-level init containers rendered when the tokenizer is enabled. | `[]` | | `router.tokenizer.env` | Extra environment variables (e.g., HuggingFace token). | `[HF_TOKEN]` | | `router.tokenizer.resources` | Tokenizer container resource requests and limits. | `requests.cpu: "4"`, `requests.memory: 8Gi` | | `router.tokenizer.volumeMounts` | Extra volume mounts for the tokenizer container. | `[]` | +| `router.tokenizer.volumes` | Pod-level volumes rendered alongside `model-cache` when the tokenizer is enabled. | `[]` | | `router.tokenizer.readinessProbe` | Readiness probe spec. | `httpGet /health on the render-http named port` | #### Complete Tokenizer Render Sidecar Example diff --git a/config/charts/routerlib/templates/_deployment.yaml b/config/charts/routerlib/templates/_deployment.yaml index 18c5212f1d..9a6fc43b76 100644 --- a/config/charts/routerlib/templates/_deployment.yaml +++ b/config/charts/routerlib/templates/_deployment.yaml @@ -43,6 +43,10 @@ spec: serviceAccountName: {{ include "llm-d-router.name" . }} # Conservatively, this timeout should mirror the longest grace period of the pods within the pool terminationGracePeriodSeconds: 130 + {{- if and .Values.router.tokenizer.enabled .Values.router.tokenizer.initContainers }} + initContainers: + {{- toYaml .Values.router.tokenizer.initContainers | nindent 8 }} + {{- end }} containers: {{- if $proxySidecar }} - name: {{ $proxy.name }} @@ -253,6 +257,9 @@ spec: - {{ $tokenizer.modelName | quote }} - {{ printf "--port=%d" $renderPort | quote }} {{- end }} + {{- with $tokenizer.extraArgs }} + {{- toYaml . | nindent 12 }} + {{- end }} ports: - name: render-http containerPort: {{ $renderPort }} @@ -283,6 +290,9 @@ spec: {{- if .Values.router.tokenizer.enabled }} - name: model-cache emptyDir: {} + {{- with .Values.router.tokenizer.volumes }} + {{- toYaml . | nindent 8 }} + {{- end }} {{- end }} {{- if and $proxySidecar (eq $proxyType "agentgateway") $proxyConfigMapName }} - name: agentgateway-config-template diff --git a/config/charts/routerlib/values.yaml b/config/charts/routerlib/values.yaml index 8f777f6fc5..ac353732e5 100644 --- a/config/charts/routerlib/values.yaml +++ b/config/charts/routerlib/values.yaml @@ -91,6 +91,12 @@ tokenizer: port: 8000 command: [] args: [] + # Extra args appended to the vllm-render container after the default or overridden args. + extraArgs: [] + # Pod-level init containers rendered when the tokenizer is enabled. + initContainers: [] + # Pod-level volumes rendered alongside model-cache when the tokenizer is enabled. + volumes: [] env: - name: HF_TOKEN valueFrom: