# 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