mirror of
https://github.com/CloudNebulaProject/zmgr.git
synced 2026-04-10 21:20:42 +00:00
Templates now define named `net` blocks instead of a single pool reference, allowing zones like a router to attach to both internal and public networks. Pools support an `addresses` block with explicit IPs as an alternative to contiguous range-start/range-end — useful for hoster-assigned public addresses. Default init now includes a router template (internal + public) and a public pool with example addresses. Zone registry entries store per-net address/VNIC/stub/gateway. Import parses multiple net blocks from zonecfg info. Backward compatible with legacy single-pool templates. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.7 KiB
1.7 KiB
Implementation State
Completed
- Project scaffold (Cargo.toml, module structure)
- KDL parsing helpers (
kdl_util.rs) - Error types with miette diagnostics (
error.rs) - Global config loading (
config.rs) - Template loading + defaults — multi-net support (
template.rs) - IPAM pool loading, allocation, defaults — range + list modes (
pool.rs) - Zone registry CRUD — multi-net support (
zone.rs) - Publisher management (
publisher.rs) - Exec layer for system commands (
exec.rs) - Import logic from existing zones — multi-net parsing (
import.rs) - CLI commands: init, create, destroy, list, status, import
- CLI commands: template list/show, pool list/show
- CLI commands: publisher list/add/remove
--dry-run/-nflag for create and destroy- Multi-network zones (multiple net blocks per template/zone)
- List-based IPAM pools (explicit addresses from hoster)
- Default router template with internal + public nets
- Backward compat: legacy flat
poolfield in templates, flat address fields in zones - Clean build (zero warnings)
- Tested: init, template list/show, pool list/show, publisher list, list, dry-run single+multi-net
Not Yet Tested on illumos
zmgr create(requires illumos with zonecfg/zoneadm/dladm)zmgr destroyzmgr importzmgr status(requires zoneadm)
Dependencies
| Crate | Version | Purpose |
|---|---|---|
| clap | 4.6.0 | CLI parsing (derive) |
| kdl | 6.5.0 | KDL v2 document parsing |
| miette | 7.6.0 | Diagnostic error reporting |
| thiserror | 2.0.18 | Error type derives |
| ipnet | 2.12.0 | IP network arithmetic |
| chrono | 0.4.44 | Date formatting |