Skip to content

fix(gcp): give every data center its own DNS records - #628

Open
NJona wants to merge 1 commit into
multi-dc-05-per-datacenter-infrafrom
multi-dc-06-per-datacenter-dns
Open

fix(gcp): give every data center its own DNS records#628
NJona wants to merge 1 commit into
multi-dc-05-per-datacenter-infrafrom
multi-dc-06-per-datacenter-dns

Conversation

@NJona

Copy link
Copy Markdown
Member

Workspaces resolve per data center, and so does the platform: the frontend asks <dc-id>.<codesphere.domain> for the configuration of the data center a workspace lives in. OMS only created cs.<base-domain> and its wildcard, both pointing at the first data center's gateway, so with more than one data center the second one's endpoint resolved to the first's gateway, which has no route for that host. Every browser request for it was reset — and since the frontend fetches that config before rendering anything, the whole UI failed.

EnsureDNSRecords now creates, per data center, its workspace hosting names and SSH proxy name pointing at its own public gateway and SSH proxy, plus <dc-id>.cs.<base-domain> and its wildcard pointing at its own platform gateway.

Review notes

  • The per-data-center platform names are only created when there is more than one data center: a single one is the primary, which cs.<base-domain> already resolves to. So single-DC bootstraps still create exactly the same five records.
  • The created records are recorded in the infra file so cleanup deletes exactly those. DeleteDNSRecordSets therefore takes the record list instead of a base domain; cleanup falls back to deriving the names for older infra files and for a cleanup driven only by --project-id.
  • Verified against a live two-data-center instance: adding these two records was what made the second data center reachable.

Part of the oms beta bootstrap-gcp --multi-dc stack (10 PRs). Merge in order; each PR is based on its predecessor.

@NJona
NJonaforce-pushed the multi-dc-06-per-datacenter-dns branch from 875fe8d to 80ef9f8CompareAugust 4, 2026 08:12
@NJona
NJonaforce-pushed the multi-dc-06-per-datacenter-dns branch from 80ef9f8 to d1de6c9CompareAugust 5, 2026 15:48
@NJona
NJonaforce-pushed the multi-dc-06-per-datacenter-dns branch from d1de6c9 to ab1e4feCompareAugust 7, 2026 16:03
@NJona
NJonaforce-pushed the multi-dc-06-per-datacenter-dns branch from ab1e4fe to 9d2936fCompareAugust 10, 2026 14:17
@NJona
NJonaforce-pushed the multi-dc-06-per-datacenter-dns branch 2 times, most recently from 40d9c77 to 1aac951CompareAugust 12, 2026 09:16
@NJona
NJona requested a review from NautiluXAugust 12, 2026 11:17
@NJona
NJonaforce-pushed the multi-dc-06-per-datacenter-dns branch from 1aac951 to 5293739CompareAugust 13, 2026 12:48
@NJona
NJonaforce-pushed the multi-dc-06-per-datacenter-dns branch from 2afb857 to 14f63adCompareAugust 14, 2026 07:01
Workspaces resolve per data center, and so does the platform: the
frontend asks <dc-id>.<codesphere.domain> for the configuration of the
data center a workspace lives in. OMS only created cs.<base-domain> and
its wildcard, both pointing at the first data center's gateway, so with
more than one data center the second one's endpoint resolved to the
first's gateway, which has no route for that host — every browser
request for it was reset, and since the frontend fetches that config
before rendering, the whole UI failed.
EnsureDNSRecords now creates, per data center, its workspace hosting
names and SSH proxy name pointing at its own public gateway and SSH
proxy, plus <dc-id>.cs.<base-domain> and its wildcard pointing at its
own platform gateway. The per-data-center platform names are only
created when there is more than one data center: a single one is the
primary, which cs.<base-domain> already resolves to.
The records that were created are recorded in the infra file, so cleanup
deletes exactly those. DeleteDNSRecordSets therefore takes the record
list instead of a base domain, and cleanup falls back to deriving the
names for infra files written before this and for a cleanup driven only
by --project-id.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Jona Neef <Jona.Neef.97@gmail.com>
@NJona
NJonaforce-pushed the multi-dc-06-per-datacenter-dns branch from 14f63ad to e2987cfCompareAugust 14, 2026 07:15
@NJona
NJona requested a review from joka134August 14, 2026 07:56
Sign up for freeto 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

@NJona