zmgr/docs/ai/implementation-state.md
Till Wegmueller 430be11b13
Add multi-network zones and list-based IPAM pools
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>
2026-03-22 14:04:15 +01:00

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 / -n flag 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 pool field 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 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