All checks were successful
Run nix flake check / flake-check (push) Successful in 2m20s
32 lines
1.5 KiB
Markdown
32 lines
1.5 KiB
Markdown
# 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
|