Skip to content

fix(configs): pin head unschedulable — intro/general (batch 1) - #908

Merged
Aydin-ab merged 1 commit into
mainfrom
fix/batch-1-head-pin-deps
Jul 22, 2026
Merged

fix(configs): pin head unschedulable — intro/general (batch 1)#908
Aydin-ab merged 1 commit into
mainfrom
fix/batch-1-head-pin-deps

Conversation

@Aydin-ab

@Aydin-ab Aydin-ab commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Pins the head node unschedulable (resources: {CPU: 0}) in the aws + gce compute configs. These configs have worker groups or auto_select, so the head is a coordinator, not a work node: the launch-time conversion injects this when the field is absent, so setting it explicitly makes the repo config equal what ships to S3 (and rayapp test reproduces the real worker placement instead of co-locating on a schedulable head). Heads are CPU-only instances, so CPU: 0 alone is unschedulable. Config-only.

Templates: getting-started, intro-ray-libraries, ray-summit-core-masterclass, basic-single-node

Testing

Validated green via /test-template (Buildkite). The earlier CPU: 0, GPU: 0CPU: 0 normalization is a no-op on CPU-only heads (identical Ray resources), so not re-tested.

Part of the head-unschedulable sweep; a companion check (#924) enforces this policy repo-wide.

https://claude.ai/code/session_01QmLc4yWtmC3PX2NwWzPbzD

@Aydin-ab

Copy link
Copy Markdown
Contributor Author

/test-template getting-started intro-ray-libraries basic-single-node

@Aydin-ab

Copy link
Copy Markdown
Contributor Author

/test-template ray-summit-core-masterclass

These configs have worker groups or auto_select, so at launch the head is a coordinator, not a work node. Set head_node.resources CPU: 0 in aws.yaml and gce.yaml so the repo config equals what ships to S3 — the build-time compute-config conversion injects head resources when the field is absent, the silent drift behind the head-vs-worker framework skew. Heads are CPU-only instances, so CPU: 0 alone makes them unschedulable (no GPU to pin).

Templates: getting-started, intro-ray-libraries, ray-summit-core-masterclass, and the shared basic-single-node config (referenced by 19 templates)

https://claude.ai/code/session_01QmLc4yWtmC3PX2NwWzPbzD
Signed-off-by: Aydin Abiar <aydin@anyscale.com>
@Aydin-ab
Aydin-ab merged commit cf0b335 into main Jul 22, 2026
4 checks passed
@Aydin-ab
Aydin-ab deleted the fix/batch-1-head-pin-deps branch July 22, 2026 22:15
Aydin-ab added a commit that referenced this pull request Jul 27, 2026
Adds `check_head_nodes` to the BUILD.yaml validator so the
head-unschedulable policy is enforced automatically (premerge CI +
pre-commit), not just by convention: every active compute config's head
must be pinned **`resources: {CPU: 0}`** with workers/auto_select to run
the workload — mirroring the launch-time conversion so repo == what
ships to S3.

## Testing
- Against current `main`: catches all 64 unpinned-head violations.
- Against a fully-compliant overlay: 0 errors, validator passes.
- Archived templates exempt (matches the existing test-exemption).

## Caveats
**Draft — merge LAST**, after all head-pin PRs (#908#915, #922, #923)
land on `main`. Until then this check correctly fails on the
not-yet-pinned configs, so CI here is red by design. Rebase on the
updated `main` before merging.

https://claude.ai/code/session_01QmLc4yWtmC3PX2NwWzPbzD

Signed-off-by: Aydin Abiar <aydin@anyscale.com>
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