Repository navigation
Umbrella chart charts/ai-rm, rm-controller image, simulated-cluster e2e in CI - #20
Merged
Merged
Conversation
…2e in CI - charts/ai-rm: L1 node daemon (rm-accel chart as subchart from the submodule), the AcceleratorProfile CRD (rm-core v0.1.1), rm-controller (Deployment, spec ConfigMap, RBAC) and the airm-placement ConfigMap (created once, kept). Example site values in deploy/clusters/example/ai-rm.values.yaml; sim values in charts/ai-rm/ci/sim-values.yaml. - packages/rm-controller/Dockerfile + rm-controller-image workflow (ghcr.io/ai-computing/rm-controller). - tools/fake_openai.py: stdlib OpenAI-compatible stand-in for the PD pool. - tools/airm.py up-sim / e2e-sim [--no-cluster] / down-sim (tools/airm_sim.py), make targets chart, up-sim, e2e-sim, down-sim; sim-e2e workflow runs them on kind. - rm-accel submodule -> node-image branch (Dockerfile, chart 0.5.0 with hostBin). - deploy/README, getting-started (EN/KO), rm-controller README/manifest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Roadmap W2 (maturity):
helm installreproduces the control path, and a sim e2e runs on every PR.What
charts/ai-rm(umbrella)rm-abstract-nodechart as a subchart (aliasnode,file://from thecomponents/l1-accel/rm-accelsubmodule;helm dependency update charts/ai-rm)crds/: AcceleratorProfile CRD copied verbatim from rm-core v0.1.1k8s/controller.pools+placementNamespace, ClusterRole (profiles, nodes: read) and a Role limited toairm-placementairm-placement: empty v0.1 document, rendered only when the ConfigMap does not exist (lookup) andhelm.sh/resource-policy: keep, so rm-controller owns it after install and upgrades don't fight it. Coexists with hetero-llm-d'sairm-install.sh.deploy/clusters/example/ai-rm.values.yaml;deploy/clusters/example/rm-abstract-node.values.yamlno longer carries the init-container workaround.packages/rm-controller/Dockerfile(python:3.11-slim, rm-core tarball, no git needed, uid 65534) +.github/workflows/rm-controller-image.yml(build+smoke on PR; push:master, and:X.Y.Zfrom tagsrm-controller-vX.Y.Z;GITHUB_TOKEN,packages: write).tools/fake_openai.py(stdlib OpenAI-compatible server:/v1/models, streaming/plain chat, completions withpdtiming),tools/airm_sim.pybehindtools/airm.py up-sim | e2e-sim [--no-cluster] | down-simandmake chart | up-sim | e2e-sim | down-sim.up-sim: kind clusterairm-sim(control-plane + worker), buildsairm/rm-accel:sim(rm-accel Dockerfile) andairm/rm-controller:sim, loads them, installs the chart withci/sim-values.yaml(providersim, no host access), waits for 2 profiles per node.e2e-sim:kubectl exec … rm-controller --once(exit 0), readsairm-placement, asserts each pool has prefill+decode with the requested card kinds on one node, no card reused, the two pools on different nodes; runsrm-bench e2e --scenario pd-smokeagainst the fake pool and asserts exit 0 andslo_attainment_pct= 100 (0 errors)..github/workflows/sim-e2e.yml:chartjob (helm lint/template: default, example site, sim) ande2ejob (unit tests, kind,make up-sim,make e2e-sim, cluster dump on failure, results artifact).deploy/README.md+.ko.md(umbrella chart, simulated cluster),docs/getting-started.md+ko(section "simulated cluster"), rm-controller README/manifest.Depends on
hostBin). The submodule here points at that PR's head (fba24e3); after it merges,make bump COMPONENT=rm-accel(or--ref v0.4.2) to the merge commit / tag.rm-controller/rm-accelpublic and tagrm-controller-v0.1.0so the chart's defaultcontroller.image.tag: 0.1.0exists (:masteris published by the merge).Verified
helm lint/helm template(v3.16.4, Windows binary): default, example site and sim values pass; rendered YAML has no duplicate keys (12 objects for sim).python -m pytest -q tools/tests: 17 passed (fake server endpoints/streaming, placement and bench checks incl. 8 failure cases,e2e-sim --no-cluster).python tools/airm.py e2e-sim --no-cluster: 2 pools on 2 sim nodes (RNGD prefill + ATOM decode each), rm-bench pd-smokesent=32 failed=0, ttft_p90 ≈ 20 ms, PASS.rm-controller --helpOK).tools/check_docs.pyPASS,tools/check_sensitive.py .clean.sim-e2ejob.🤖 Generated with Claude Code