Skip to content

feat(upgrade-plans): plan upgrades per environment - #528

Open
dannash100 wants to merge 18 commits into
mainfrom
feat/upgrade-plan-clone-servers
Open

feat(upgrade-plans): plan upgrades per environment#528
dannash100 wants to merge 18 commits into
mainfrom
feat/upgrade-plan-clone-servers

Conversation

@dannash100

@dannash100 dannash100 commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

A plan was per group, so a site's clone could not be planned ahead of its production.

  • upgrade_plans.rank: one open plan per (group, rank), old plans backfilled to the canonical member's rank.
  • An environment's version is its own central's: the group-headline rule per rank.
  • Maintenance from a plan suspends only the machines serving that environment, a box taking its highest application's rank.
  • The "no plan" list narrows to each group's headline environment, and only where it is behind.
planned-light planned-narrow record-clone-targets record-environment

@dannash100
dannash100 marked this pull request as ready for review September 3, 2026 01:25
@dannash100

Copy link
Copy Markdown
Contributor Author

🤖 QA run at 0293b71b.

Check
Stored ranks all mappable (read-only on prod) ✅ every one canonical, none unmappable
Plan counts before deploy ✅ 9 plans, 3 open, all backfill to production
Migrations on a redacted copy of the fleet data ✅ 0.4s, 9 plans preserved, 117/118 detail rows dated, windows untouched
Narrow-width plan tables ✅ scroll inside their card at 900 and 600 points
Calendar entry in Apple Calendar <group> clone upgrade to 2.61.0, 10pm to 2am across midnight, clone's own version in the notes
Maintenance declared on a clone ✅ clone suspended, production still watched

Serving that copy through this branch gave 38 environment rows over 18 groups. Two notes:

  • 22 live groups produce 18 rows: 3 have no live server, 1 has no ranked server so it drops off until its servers are ranked.
  • Post-deploy checks (plan counts preserved, page renders) still to run.

@dannash100
dannash100 requested a review from passcod September 3, 2026 04:52
Base automatically changed from workhorse/w1 to main September 3, 2026 21:02
…plan-clone-servers

# Conflicts:
#	.workhorse/specs/monitoring/maintenance.md
#	.workhorse/specs/private-server/upgrade-plans.md
#	.workhorse/specs/public-server/restore-replicas.md
#	.workhorse/specs/servers/groups.md
#	crates/database/src/maintenance_windows.rs
#	crates/database/src/migration_tests.rs
#	crates/database/src/reported_detail.rs
#	crates/database/src/schema.rs
#	crates/database/src/server_groups.rs
#	crates/database/tests/it/maintenance_windows.rs
#	crates/database/tests/it/migration_test_candidates.rs
#	crates/database/tests/it/migration_test_reports.rs
#	crates/database/tests/it/reported_detail.rs
#	crates/database/tests/it/upgrade_plans.rs
#	crates/private-server/src/fns/applications.rs
#	crates/private-server/src/fns/maintenance.rs
#	crates/private-server/src/fns/upgrade_plans.rs
#	crates/private-server/tests/it/main.rs
#	crates/private-server/tests/it/migration_tests.rs
#	crates/public-server/tests/it/calendar.rs
#	crates/public-server/tests/it/restore.rs
#	private-web/openapi.json
#	private-web/src/api-types.ts
#	private-web/src/components/DeclareMaintenanceDialog.tsx
#	private-web/src/routes/Upgrades.tsx
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.

1 participant