Skip to content

feat: manage datum.net corp DNS records as IaC#1525

Draft
ecv wants to merge 2 commits into
mainfrom
claude/corp-dns-records-iac
Draft

feat: manage datum.net corp DNS records as IaC#1525
ecv wants to merge 2 commits into
mainfrom
claude/corp-dns-records-iac

Conversation

@ecv

@ecv ecv commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Summary

datum.net's corp, marketing, and email DNS records were hand-entered directly in the DNS backend with no source of truth — lose one and we may not know its value. This brings them under version control as DNSRecordSet manifests, applied via datumctl against the datum-cloud project control plane where the datum.net zone lives (datum-net-xq088a).

Covers apex A/AAAA + Google Workspace MX, SaaS verification TXT + SPF, SendGrid/Resend DKIM, DMARC (including the live p=none send-subdomain records), and the status/go/wiki/edge subdomains.

The infra-wiring CNAMEs (www/docs → prism, api/admin/cloud/authprod.env) stay in datum-cloud/infra by the repo-ownership boundary.

CI

Includes a DNS Records workflow (.github/workflows/dns-apply.yml), modeled on the infra repo's apply-datum-cloud-resources.yaml:

  • PRdatumctl diff against the datum-cloud project.
  • Push to maindatumctl apply.

Validated with a datumctl server dry-run: 10 recordsets adopt in place, datum-net-dmarc-send-subdomains reports unchanged (already live in prod).

Note

Prerequisite before the workflow can apply: the DATUM_API_CI_DEPLOY_SA_PROD service-account secret must be available to this repo, with RBAC to write DNSRecordSet in the datum-cloud project. It's the same secret the infra repo already uses.

Test plan

  • Confirm DATUM_API_CI_DEPLOY_SA_PROD is available to this repo (org secret or add it)
  • datumctl diff on this PR shows the records adopting in place
  • On merge: all recordsets Accepted+Programmed
  • dig confirms values unchanged post-apply

Related to datum-cloud/infra#1444

ecv added 2 commits July 21, 2026 15:56
Bring datum.net's corp, marketing, and email DNS records under version
control as DNSRecordSet manifests. datum.net is served from an existing
zone (datum-net-xq088a) in the datum-cloud project control plane; these
records were hand-entered directly with no source of truth.

Covers apex A/AAAA and Google Workspace MX, SaaS verification TXT and
SPF, SendGrid/Resend DKIM, DMARC (including the live p=none records for
the Resend send subdomains), and the status/go/wiki/edge subdomains.

Infra-wiring CNAMEs (www/docs to prism, api/admin/cloud/auth to
prod.env) stay in datum-cloud/infra by the repo-ownership boundary.

Apply path is datumctl against the project control plane; the CI job to
run it on merge is a follow-up.
Add a workflow that manages the datum.net DNS records in dns/ against
the datum-cloud project control plane: datumctl diff on pull requests,
datumctl apply on push to main. Modeled on the infra repo's
apply-datum-cloud-resources workflow, using setup-datumctl-action.

Requires the DATUM_API_CI_DEPLOY_SA_PROD service-account secret to be
available to this repo, with RBAC to write DNSRecordSet in the
datum-cloud project.
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