fix(configs): pin head unschedulable — intro/general (batch 1) - #908
Merged
Conversation
Contributor
Author
|
/test-template getting-started intro-ray-libraries basic-single-node |
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
force-pushed
the
fix/batch-1-head-pin-deps
branch
from
July 20, 2026 22:50
a2e3ae8 to
11d5240
Compare
This was referenced Jul 20, 2026
elliot-barn
approved these changes
Jul 22, 2026
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>
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.
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 (andrayapp testreproduces the real worker placement instead of co-locating on a schedulable head). Heads are CPU-only instances, soCPU: 0alone 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 earlierCPU: 0, GPU: 0→CPU: 0normalization 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