Skip to content

feat: adapt YuanRong 0.10.2rc9 and placement policy - #76

Merged
tianyuzhou95 merged 4 commits into
inclusionAI:mainfrom
WenYuLuo:lwy/resource-node-status-396
Sep 21, 2026
Merged

tianyuzhou95 merged 4 commits into
inclusionAI:mainfrom
WenYuLuo:lwy/resource-node-status-396

Conversation

@WenYuLuo

@WenYuLuo WenYuLuo commented Sep 20, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • consume checksum-pinned openYuanRong Core and RRT 0.10.2rc9 assets from the GitHub Release
  • render YuanRong node lifecycle states in ak resources, reserving OK for normal nodes
  • bump akernel-sdk from 0.1.6rc5 to 0.1.6rc6
  • make YuanRong Unit placement configurable, with AKernel defaulting to spread
  • enable node-proxy frontend create advertisement for spread and disable it for binpack
  • cover numeric, string, omitted-default, unknown, and unavailable node states

YuanRong 0.10.2rc9 bug fixes

  • Correct cluster resource totals (2c09231f): aggregate root capacity and allocatable from NORMAL resource fragments only, and use the same summary for cluster metrics. Fragment-level capacity, allocatable resources, and lifecycle status remain available in the resource response, allowing AKernel to distinguish EVICTING, RECOVERING, and TO_BE_DELETED nodes instead of presenting them as healthy.
  • Isolate kill retry generations (43ccd714): assign each kill attempt a unique wire request ID and retain its retry context so delayed callbacks cannot advance a replacement instance lifecycle (the ABA case). Recovery kill failures are propagated, while an already absent runtime process remains an idempotent success.

Placement behavior

  • YuanRong natively defaults to binpack; AKernel explicitly defaults deployments to spread.
  • Helm uses master.schedulePlacementPolicy; Terraform and guided profiles expose schedule_placement_policy / SCHEDULE_PLACEMENT_POLICY.
  • The Master receives --schedule_placement_policy.
  • Node proxies use the placement mode to advertise frontend create for spread. Their local UnitScheduler is non-aggregating and has a single scheduling unit, so cluster placement remains a Master policy.
  • Standalone keeps local frontend create enabled and does not expose a cluster placement setting.

Release provenance

Validation

  • make sdk-check: 274 tests passed; Ruff and mypy passed
  • SDK 0.1.6rc6 wheel and source distribution build: passed
  • CLI focused unit tests: 8 passed on Python 3.11
  • deployment script syntax checks: passed
  • Helm render: default spread, explicit binpack, and invalid-value rejection passed for Master and Node
  • Terraform validation: Aliyun and Huawei Cloud passed; both default to spread and reject values other than binpack / spread
  • final default build: passed
    • image: akernel-all-in-one:pr76-yr0.10.2rc9-spread-routing-20260921
    • image ID: sha256:7ba0d85a6f9acbce087aa9fc1c31a6834bf802e311feb1d1fd3d59593bc1e2b4
    • OCI revision: a4498cc34866f36b83d329d497539ed82a59dfb9
  • runtime argument contracts: Master default spread and explicit binpack; Node spread=true / binpack=false frontend-create advertisement; Standalone frontend-create enabled
  • final GitHub Standalone E2E: passed in 4m52s, including SDK create/execute/delete, runsc checkpoint reload, and cleanup
  • git diff --check origin/main...HEAD: passed

Map resource-unit status codes to meaningful CLI labels while
reserving OK for normal nodes. Treat an omitted protobuf default as
NORMAL and cover unavailable and forward-compatible states.

Signed-off-by: robbluo <luo1442@gmail.com>
Consume checksum-pinned Core and RRT assets from the 0.10.2rc9
GitHub release. Keep the existing openyuanrong-sandbox 0.10.2rc9 SDK
dependency aligned with the runtime artifacts.

Signed-off-by: robbluo <luo1442@gmail.com>
Prepare an SDK release candidate that includes node lifecycle status
rendering and the openYuanRong 0.10.2rc9 runtime alignment.

Signed-off-by: robbluo <luo1442@gmail.com>
Expose the Unit scheduler policy through Helm, Terraform, and guided
profiles. Default AKernel deployments to spread and let node proxies
advertise frontend create only for spread placement.

Allow an explicit binpack override and reject unsupported values.

Signed-off-by: robbluo <luo1442@gmail.com>
@WenYuLuo WenYuLuo changed the title chore(deps): update YuanRong runtime to 0.10.2rc9 feat: adapt YuanRong 0.10.2rc9 and placement policy Sep 21, 2026

@tianyuzhou95 tianyuzhou95 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Project guidance also needs updating. This commit changes a deployment command and the default operational behavior (spread, plus node-proxy capability advertisement), while AGENTS.md requires deployment-command or operational-assumption changes to update that file in the same change. Please document the new placement-policy default and override, its proxy-advertisement behavior, and the restart requirement there.

Comment thread builder/scripts/yr_node_bootstrap.sh
@WenYuLuo

Copy link
Copy Markdown
Collaborator Author

Regarding the project-guidance review: the deployment behavior is documented in deploy/README.md, including the AKernel spread default, Helm/Terraform/guided-profile overrides, Node proxy advertisement behavior, and the Master/Node restart requirement. Per maintainer feedback, this deployment usage detail should not be duplicated in AGENTS.md, so the project guidance remains focused there.

@tianyuzhou95
tianyuzhou95 merged commit 3fd409b into inclusionAI:main Sep 21, 2026
10 checks passed
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.

2 participants