control-plane: default new tenants to aws-us-east-1-c2 - #3402
Open
jwhartley wants to merge 1 commit into
Open
Conversation
provision_tenant sorts the public data-planes into the tenant's storage mapping, and validation defaults a publication to the first one in that list. So the name pinned to the front of the sort is the default plane for every new tenant. Move it from aws-us-east-1-c1 to c2. c1 is at capacity: 27 reactors and 22 brokers, with reactor load averages ranging from 0.3 to 15.7. c2 replaces it for new signups. Existing tenants keep the list they were provisioned with, and existing tasks stay pinned to their own data_plane_id, so nothing moves. Also regenerates the checked-in sqlx cache entry, whose filename is a hash of the query text. Note that marking c1 'closed' does not do this on its own: the query here filters on the ops/dp/public/ prefix and two hardcoded exclusions, and never reads that column.
jwhartley
marked this pull request as ready for review
August 27, 2026 09:01
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.
Points new signups at the new public plane
ops/dp/public/aws-us-east-1-c2instead ofaws-us-east-1-c1. Agreed in this thread. The plane itself is sized by estuary/est-dry-dock#354.Draft until
c2finishes converging and is verified healthy. Do not merge before then, since it would send new tenants to a plane that is not yet serving.What changed
One string literal in
provision_tenant, plus the regenerated sqlx cache entry.Why this is the thing to change
The default plane is not a column or a config value, which surprised me. It works like this:
provision_tenantcollects everyops/dp/public/plane and writes the names into the new tenant's storage mapping as an ordered list. Theorder bypins one name to the front.crates/validation/src/lib.rs, "Default to using the first data-plane attached to the storage mapping").So whichever name is pinned to the front of that sort is the default for every new tenant, and changing it needs a code change and a deploy.
Worth flagging for anyone who assumed otherwise: setting
closed = trueonc1does not do this. The query filters on theops/dp/public/prefix and two hardcoded exclusions, and never reads theclosedcolumn. Closingc1hides it from the console listing and the signup picker, but new tenants would still be provisioned onto it. That column is a UI filter, not an assignment rule.Blast radius
New tenants only. Existing tenants keep the list they were provisioned with, and existing tasks stay pinned to their own
data_plane_id, so nothing migrates. Moving an existing tenant is a separate operation: reorder the array viaupdateStorageMapping.c1stays in the list for new tenants, just no longer first, so it remains selectable.Verification
SQLX_OFFLINE=1 cargo check -p control-plane-apipasses. That is the real check on the cache entry, since offline compilation fails on a missing query hash.The sqlx cache filename is
sha256(query_text), so editing the SQL orphans the old entry. This change only edits a string literal inside the query, so thedescribeblock (columns, parameters, nullability) is unchanged and the entry was regenerated exactly, byte-identical in formatting to its neighbours. Git records it as a 96% rename.No test depends on the ordering:
fixtures/data_planes.sqlcontains noaws-us-east-1-c1orc2row, so tests fall through to theid desctiebreak either way.Follow-ups, not in this PR
closed = trueonc1to hide it from the signup picker. Manual SQL, there is no mutation for it.discovers.data_plane_namestill defaults toops/dp/public/gcp-us-central1-c1, a plane this very query excludes as deprecated. Looks stale, left alone as unrelated.