mirror of
https://github.com/CloudNebulaProject/zmgr.git
synced 2026-04-10 13:10: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>
42 lines
1.7 KiB
Markdown
42 lines
1.7 KiB
Markdown
# Implementation State
|
|
|
|
## Completed
|
|
|
|
- [x] Project scaffold (Cargo.toml, module structure)
|
|
- [x] KDL parsing helpers (`kdl_util.rs`)
|
|
- [x] Error types with miette diagnostics (`error.rs`)
|
|
- [x] Global config loading (`config.rs`)
|
|
- [x] Template loading + defaults — multi-net support (`template.rs`)
|
|
- [x] IPAM pool loading, allocation, defaults — range + list modes (`pool.rs`)
|
|
- [x] Zone registry CRUD — multi-net support (`zone.rs`)
|
|
- [x] Publisher management (`publisher.rs`)
|
|
- [x] Exec layer for system commands (`exec.rs`)
|
|
- [x] Import logic from existing zones — multi-net parsing (`import.rs`)
|
|
- [x] CLI commands: init, create, destroy, list, status, import
|
|
- [x] CLI commands: template list/show, pool list/show
|
|
- [x] CLI commands: publisher list/add/remove
|
|
- [x] `--dry-run` / `-n` flag for create and destroy
|
|
- [x] Multi-network zones (multiple net blocks per template/zone)
|
|
- [x] List-based IPAM pools (explicit addresses from hoster)
|
|
- [x] Default router template with internal + public nets
|
|
- [x] Backward compat: legacy flat `pool` field in templates, flat address fields in zones
|
|
- [x] Clean build (zero warnings)
|
|
- [x] 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 destroy`
|
|
- [ ] `zmgr import`
|
|
- [ ] `zmgr 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 |
|