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.
Before starting, clone the repository using Getting started and confirm your role using Identity and access.
The change workflow
- Start from the current
mainbranch and create a branch for your change. - Edit the configuration, commit it, and push the branch.
- Open a merge request on CNX's Git server.
- Review the validation status. If it fails, push a correction to the same branch; validation runs again automatically.
- A Checker reviews the diff and successful validation, then approves and merges the request.
- Check the deployment result. A removal follows the grace period described below; other accepted changes deploy automatically.
Before creating each new branch, update your local copy:
git switch main
git pull --ff-only
The examples below cover adding, updating, and removing a zone. After each push, complete the merge-request and Checker steps above.
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-recordRemoving a zone
To decommission example.com in CNX's DNS service, update delegation at
your registrar or parent zone first. Point example.com to the
nameservers for the new DNS provider. Delegation is what takes CNX out of
the resolution path for users.
Then remove the zone from the zones repository:
git switch -c remove-example-com
git rm -r example.com
git commit -m "remove zone example.com"
git push origin remove-example-com
Open a merge request for the branch. After a Checker approves and merges it, CNX's deployment pipeline detects that the zone directory has been removed and posts a comment on the merge request confirming that the zone is scheduled for removal, including the exact date and time.
Twenty-four hours after that scheduled time, the zone is permanently removed from CNX's authoritative nameservers.
Related configuration
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.