Batch 1 of developer experience improvements:
- Destroy requires typing zone name to confirm (or --yes/-y for scripts)
- Non-interactive (non-TTY) mode refuses destructive ops without --yes
- Create/destroy print numbered step-by-step progress
- Partial failure during create prints cleanup guidance (orphaned VNICs etc)
- New `zmgr validate` checks KDL syntax, referential integrity, gateway
in network, range in network, duplicate IPs, pool utilization warnings
- New `zmgr completions <shell>` generates bash/zsh/fish completions
- Added --version flag
- Dry-run notes that IP allocation is tentative
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rust CLI that creates/destroys/imports illumos zones from KDL template
configs with automatic IP allocation from named pools. Registry lives
under /etc/zmgr as flat KDL files — zone entries double as the IPAM
ledger. Includes default templates for ipkg (OI) and nlipkg (OFL)
brands, matching the existing shell scripts.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>