Managing zone changes
Changes to your DNS zones are made by editing files in the zones
repository and opening a merge request. Validation runs automatically on
every push, completing within about 30 seconds and posting the result as
a status check. Once a Checker merges the request, deployment is
automatic too — the change is live within about 120 seconds.
Adding a zone
Create a new directory named after the zone apex, with a zone.conf
inside it, using the template in
zone.conf format as your starting point.
To try this out before touching a real zone, do it once with
example.com exactly as shown below — the platform recognizes this
specific name, runs it through the same validation as any real zone, and
never deploys it.
git switch -c add-example-com
mkdir example.com
Edit example.com/zone.conf:
- Set
$ORIGINtoexample.com. - Update the SOA hostmaster to match
contacts.yaml - Add your records
git add example.com/zone.conf
git commit -m "add zone example.com"
git push origin add-example-com
When you're ready to add a real zone, repeat these steps with your own
domain name instead. Once the zone deploys, check the reports
repository (where your subscription includes it) — a new zone gets its
own DNSSEC key automatically, and its first DS record will be waiting for
you to publish at your registrar. See
Publishing and updating DS records.
Making a change
The same flow applies to any change to an existing zone — for example, adding a record:
git switch -c add-vpn-record
Open the zone's zone.conf in your editor and add your record(s), for
example:
vpn IN A 203.0.113.50git add example.com/zone.conf
git commit -m "add vpn A record for example.com"
git push origin add-vpn-recordOpening the merge request
The Maker who pushed the branch opens the merge request: log in to git.cnx.net.kh and open it against your branch. A Checker (see Identity and access) then reviews the diff and the status check, and approves and merges.
If validation fails, push another commit to the same branch — don't open a new merge request. The pipeline re-validates automatically on the new push.
The zone file is always named zone.conf, and CNX's NS records at the
top of it shouldn't be modified — see
zone.conf format for the full template. If a
name needs to point at a CDN, SaaS platform, or anything else that only
gives you a CNAME, use aliases.yml to flatten it — it
works for any record, not just the apex.