public-prep: split fleet topology out; descriptive README - #2
Merged
Conversation
Move all GA-specific fleet topology out of the tree so forge can be published as a general tool, with the real bindings living in a private overlay. - envs/profiles.yaml: drop hosts/smoke_host (physical topology). Profiles now carry only the hardware class + torch index + status. - envs.py: load_profiles merges a private overlay from $FORGE_FLEET_CONFIG (profiles.hosts.yaml). No overlay -> every profile resolves to an empty fleet, the correct default for a clone with no hardware. - config.py: FLEET_URL default drops the LAN IP for http://localhost:8096 (real URL comes from FORGE_FLEET_URL). On the aggregator host localhost is the aggregator, so the deployed cron is unaffected. - docs: genericize RUNBOOK/ops-cron (drop LAN IP, secret paths, deploy-key alias, specific hostnames); update env-maintenance to the deferred-smoke model; remove TODO.md (internal acceptance-tracking scratchpad). - tests: cover overlay merge + empty-fleet default; genericize host fixtures. Nothing secret ever lived here; this removes internal topology so the tree is safe to publish. Host bindings move to GoodAncestor/infra (private).
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.
Prepares forge to be published as a general tool. Companion to the private overlay in
GoodAncestor/infra(separate PR).What moves out of the repo
envs/profiles.yamlloseshosts/smoke_host— physical topology. Profiles keep only hardware class + torch index + status.envs.pyload_profiles()merges a private overlay from$FORGE_FLEET_CONFIG(profiles.hosts.yaml). No overlay → empty fleet (correct for a public clone).config.pyFLEET_URLdefault →http://localhost:8096(real URL viaFORGE_FLEET_URL; on the aggregator host localhost is the aggregator, so the deployed cron is unaffected).RUNBOOK/ops/cron.md(drop LAN IP, secret paths, deploy-key alias, hostnames); update env-maintenance to the deferred-smoke model; removeTODO.md(internal scratchpad).Audit
No secrets ever lived in the tree or history. This removes internal topology (RFC1918 IPs, fleet hostnames) so the working tree is clean. Verified:
git grepfor IPs/hostnames/secret-paths → clean; 93 tests pass; ruff clean.⚠ Deployment coupling (do NOT merge+deploy alone)
After this merges, the deployment must set
FORGE_FLEET_CONFIG(pointing at theinfraoverlay) orforge run --host Xcannot map a host to a profile. Land theinfraoverlay + deployment wiring together with this.⚠ Publishing note
Flipping the existing repo public exposes all history, which still contains the old IPs/hostnames. Recommend publishing a fresh-history snapshot of this sanitized tree as the public repo instead (see PR discussion).