Conversation
This was referenced Oct 2, 2026
The portal and datumctl had no single place to learn which DNS records a custom hostname still needs: the certificate CNAME lived in a condition message, the ownership TXT on the Domain, and the routing record nowhere. Each HTTPProxy hostname now lists the records it depends on, who publishes them, and whether each takes effect, behind the certificate service flag. Key changes: - add hostnameStatuses[].dnsRecords with name, type, content, purpose, managedBy and state - routing: a platform record counts only while the Datum DNS zone is the one the registry delegates to; a user record counts once public DNS resolves it to the canonical hostname or its addresses - certificate: the _acme-challenge CNAME for the hostname, present once the certificate service reports the delegation resolves; records for any other name in the certificate's status are ignored - ownership: the pending Domain's TXT record until a covering Domain is verified - recheck every five minutes while a user routing record is missing, with lookups cached for a minute
The certificate service now issues only wildcard hostnames, so an exact hostname has no ACME delegation record to publish. Skip the TLSCertificate lookup for exact hostnames so their status lists routing and ownership records only.
scotwells
force-pushed
the
feat/wildcard-dns-records
branch
from
October 2, 2026 23:35
b08f52f to
2478d6d
Compare
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.
Summary
People adding a custom hostname have no single place to see which DNS records it still needs, so the portal and the CLI piece it together from condition messages and the Domain.
Each hostname on a load balancer now lists the records it depends on, who publishes each, and whether each is in place, so the portal and the CLI can read that list alone.
A record counts as present only once it takes effect on the Internet, never because it sits in a Datum DNS zone the registry does not delegate to.
All of it sits behind the certificate service setting, off by default, and this is stacked on #526.
API
New status only. The spec does not change.
When each record appears and when it counts as present:
A record shared by several hostnames, such as the ownership TXT, appears under each hostname that needs it. Readers should list it once.
Only the operator writes status. Records the certificate service names for any other hostname are ignored, so a forged certificate status cannot steer a user to publish someone else's record.
The operator checks public DNS for user routing records at most once a minute per hostname, and looks again every five minutes while one is missing. No printer columns, conditions or validation rules change.
Test plan
Related to datum-cloud/enhancements#913