Skip to content

[CI] Bake hash-locked KV connectors into the CI image and re-enable their jobs - #65145

Open
khluu wants to merge 6 commits into
mainfrom
ci/kv-connectors-in-image
Open

khluu wants to merge 6 commits into
mainfrom
ci/kv-connectors-in-image

Conversation

@khluu

@khluu khluu commented Nov 2, 2026 •

Copy link
Copy Markdown
Member

Overview

Re-enable the KV connector CI jobs disabled in #63609 (follow-up to #63608 and #64010). Instead of installing NIXL, LMCache, Mooncake and CuPy at job time, the CUDA 13 CI image now bakes them from a hash-pinned lock.

Claims

  • The CI test image installs the KV connector packages in the test-deps stage with uv pip install --require-hashes --no-deps from requirements/test/kv_connectors_cuda.txt. That lock is compiled against requirements/test/cuda.txt and regenerated by a new pip-compile-kv-connectors pre-commit hook. At build time it adds 16 packages and changes none already in the image.
  • install-kv-connectors.sh becomes check-kv-connectors.sh. It only verifies the packages are present, so it can no longer resolve packages at job time.
  • ROCm needs no image change. kv_connectors_rocm.txt (tblib, lm_eval[api]) is fully covered by requirements/test/rocm.txt, so the runtime installs were no-ops. They and the file are removed.
  • 26 job blocks re-enabled. The CUDA and AMD jobs are listed in the build below.
  • One missed runtime install removed: "Mooncake EC TCP E2E" ran uv pip install mooncake-transfer-engine>=0.3.12 into a venv. It now uses the image's Mooncake through --system-site-packages.
  • 6 tethering-allowlist entries removed.

Validation

  • pre-commit run on all changed files passed: pip-compile-kv-connectors, shellcheck, step keys, test tethering (--all reports nothing stale) and Dockerfile graph.
  • All Buildkite YAML parses. Each restored block matches its pre-[CI] Disable jobs with unpinned runtime installs #63609 definition except for the script rename and the dropped ROCm install line.
  • Cooldown: every newly introduced package was published at least 7 days ago except nixl/nixl-cu13 1.5.2 (PyPI Oct 29). Main already pins it in requirements/kv_connectors.txt since [NIXL][CI/Build] Bump NIXL to 1.5.2 and drop source build for Rubin #64585. Please don't merge before Nov 5 if we hold to the 7-day rule.
  • CI: a selected-steps build of the image plus the re-enabled jobs is linked in a comment below.

Details

  • The image layer installs only the lock entries the image doesn't already have, with --require-hashes --no-deps. It then fails the build if any preinstalled package changed. This guard caught cuda-python/nvtx drift: the runtime base installs versions that requirements/test/cuda.txt doesn't pin. NCCL is excluded because the image pins it with its own NCCL_VERSION/UV_OVERRIDE.
  • Scope: only the stable x86_64 CUDA 13 image. Torch-nightly and arm64 images don't get the packages, and check-kv-connectors.sh fails fast there with a clear message. The KV jobs only run on x86 L4/H100/H200/B200 pools.
  • Still disabled:
  • The release images (INSTALL_KV_CONNECTORS=true) are unchanged.

Pull Request Checklist
  • I used vLLM's /pr-checklist skill. (Mandatory for agents, optional for humans).

  • AI assistance was used during the creation of this PR.

  • Design Fit: Minimizes impact on core components, reuses existing functionality, and justifies added complexity.

  • Testing and Validation: Validates the change and ensures any added tests are meaningful and reliable, with CI coverage or documented CI resource constraints and validation performed outside CI.

  • Code Quality and Style: Keeps code and comments clear and concise, and updates relevant documentation and examples.

  • Pull Request Contents: Includes a brief summary and relevant links, supports claims with evidence, explains root causes and implementation trade-offs, and follows the contributing guide.

🤖 Generated with Claude Code

…heir jobs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: khluu <khluu000@gmail.com>
@khluu
khluu requested a review from a team November 2, 2026 11:25
@khluu khluu added the ci/build label Nov 2, 2026

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review for a one-time review, or @claude review always to subscribe this PR to a review on every future push.

Tip: disable this comment in your organization's Code Review settings.

@khluu

khluu commented Nov 2, 2026

Copy link
Copy Markdown
Member Author

Claude Code here (AI assistant working with @khluu). Selected-steps CI run for this PR: the image build plus the 20 re-enabled CUDA KV connector jobs and the Mooncake EC job: https://buildkite.com/vllm/ci/builds/99153

@mergify mergify Bot added kv-connector mooncake Mooncake KV-transfer / EC-transfer labels Nov 2, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: khluu <khluu000@gmail.com>
@khluu

khluu commented Nov 2, 2026

Copy link
Copy Markdown
Member Author

Claude Code here (AI assistant working with @khluu). Build 99153 failed at image build: the image pins NCCL 2.31.2 through a global UV_OVERRIDE, which collided with the lock's nvidia-nccl-cu13==2.30.7 under --require-hashes. Fixed in ca77a3f: NCCL is no longer emitted in the lock (the image owns it), and the install step now fails if it changes any package that was already in the image. Re-run: https://buildkite.com/vllm/ci/builds/99164

khluu and others added 2 commits November 2, 2026 04:23
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: khluu <khluu000@gmail.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: khluu <khluu000@gmail.com>
@khluu

khluu commented Nov 2, 2026

Copy link
Copy Markdown
Member Author

Claude Code here (AI assistant working with @khluu). Status of selected-steps build https://buildkite.com/vllm/ci/builds/99176:

The FlashInfer MLA DCP fix merged while this job was disabled, so the
strict xfail now reports XPASS on all four dcp2 *-dspark cases.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: khluu <khluu000@gmail.com>
@khluu

khluu commented Nov 2, 2026

Copy link
Copy Markdown
Member Author

Claude Code here (AI assistant working with @khluu). Full triage of https://buildkite.com/vllm/ci/builds/99176. None of the failures is install-related; all of them landed on main while these jobs were disabled (Oct 25 to now):

These need the respective owners to decide whether the code or the test is right. I haven't touched them here.

@orozery

orozery commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Fixed in #64993.

…mage

Signed-off-by: khluu <khluu000@gmail.com>
@khluu

khluu commented Nov 3, 2026

Copy link
Copy Markdown
Member Author

Claude Code here (on behalf of @khluu). Thanks @orozery. I merged main, which now includes #64993, into this branch (e962258) and am re-running V1 KV Connectors in https://buildkite.com/vllm/ci/builds/99534 to confirm the three offloading-connector scheduler tests pass. The Mooncake and NIXL failures listed above are separate and still unresolved.

🤖 Addressed by Claude Code

@khluu

khluu commented Nov 3, 2026

Copy link
Copy Markdown
Member Author

Claude Code here (on behalf of @khluu). V1 KV Connectors results after merging main, from https://buildkite.com/vllm/ci/builds/99534:

None of these are caused by this PR, so I haven't patched them here.

🤖 Addressed by Claude Code

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/build k3 kimi kv-connector mooncake Mooncake KV-transfer / EC-transfer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants