cockroachdb / cockroachdb/cockroach
roachprod: better management of DNS for hosts
- Dominant language
- Go
- Stars
- 32.5k
- Forks
- 4.1k
- PR merge metrics
- PR metrics pending
Description
Currently, to support DNS hostnames for clusters, `roachprod` will pull a full list of VMs for AWS & GCP and use that to generate a zone file to update the `roachprod` DNS zone on the `cockroach-shared` project on GCP.
There are a few problems with this:
- it requires the client (user) to have both providers active and configured correctly for it to be able to populate a new entry in addition to all the existing entries.
- If for some reason there is something wrong with the client and the generated zone file is incorrect it will corrupt the entries for everyone using `roachprod` until someone runs sync again.
- Azure is not considered, and if new providers are added to the list of required active providers it will require all users to have correct configurations for those providers to function correctly.
Suggested solution:
There are currently 2 DNS systems in `roachprod`:
- The one above for managing hostnames, DNS A records, that generally just makes it easier to access a cluster by name, rather than IP.
- A system for managing SRV records in order to support external virtual cluster processes, which is a CockroachDB feature. The SRV records implementation manages records on a per cluster basis, and does not have the same caveats as the hostnames DNS management. It does however need to consider things like `roachprod` garbage collection (cluster resource clean up).
Thus a proposed solution is to extend the SRV DNS management to also support A records and follow the same principles.
Possible caveats: Non-standard projects (not ephemeral etc.)
Jira issue: CRDB-44812
Contributor guide
Assessment
This issue has not been assessed yet.