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 and AAAA, Google Workspace MX, SaaS verification TXT and SPF, SendGrid and Resend DKIM, DMARC (including the live p=none send-subdomain records), and the status, go, wiki, and edge subdomains.

The infra-wiring CNAMEs (www and docs to prism, api, admin, cloud, and auth to prod.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:

  • On a PR, datumctl diff runs against the datum-cloud project.
  • On push to main, datumctl apply runs.

Validated with a datumctl server dry-run: 10 recordsets adopt in place, and 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 and 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.
@ecv ecv self-assigned this Aug 6, 2026
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