Files
nixos-servers/docs/plans/nixos-improvements.md
Torjus Håkestad 048536ba70
All checks were successful
Run nix flake check / flake-check (push) Successful in 2m20s
docs: move dns automation from TODO.md to nixos-improvements.md
2026-02-03 04:51:27 +01:00

1.5 KiB

NixOS Infrastructure Improvements

This document contains planned improvements to the NixOS infrastructure that are not directly part of the automated deployment pipeline.

DNS Automation

Goal: Automatically generate DNS entries from host configurations

Approach: Leverage Nix to generate zone file entries from flake host configurations

Since most hosts use static IPs defined in their NixOS configurations, we can extract this information and automatically generate A records. This keeps DNS in sync with the actual host configs.

Tasks:

  • Add optional CNAME field to host configurations
    • Add networking.cnames = [ "alias1" "alias2" ] or similar option
    • Document in host configuration template
  • Create Nix function to extract DNS records from all hosts
    • Parse each host's networking.hostName and IP configuration
    • Collect any defined CNAMEs
    • Generate zone file fragment with A and CNAME records
  • Integrate auto-generated records into zone files
    • Keep manual entries separate (for non-flake hosts/services)
    • Include generated fragment in main zone file
    • Add comments showing which records are auto-generated
  • Update zone file serial number automatically
  • Test zone file validity after generation
  • Either:
    • Automatically trigger DNS server reload (Ansible)
    • Or document manual step: merge to master, run upgrade on ns1/ns2

Deliverable: DNS A records and CNAMEs automatically generated from host configs