vm defaults: host-aware sizing + spec line on spawn + doctor check
Replaces the static model.Default* constants that drove --vcpu / --memory / --disk-size with a three-layer resolver: 1. [vm_defaults] in ~/.config/banger/config.toml (if set) 2. host-derived heuristics (cpus/4 capped at 4; ram/8 capped at 8 GiB) 3. baked-in constants (floor) Visibility: - Every `vm run` / `vm create` prints a `spec:` line before progress begins: `spec: 4 vcpu · 8192 MiB · 8G disk`. Matches the VM that actually gets created because the CLI is now the single source of truth — it resolves, populates the flag defaults, and forwards the explicit values to the daemon. - `banger doctor` adds a "vm defaults" check showing per-field provenance (config|auto|builtin) and the config file path for overrides. - `--help` shows the resolved defaults (e.g. `--vcpu int (default 4)` on an 8-core host). No `banger config init` command, no first-run side effects, no writes to the user's filesystem behind their back. Users who want explicit control set the keys; everyone else gets sensible numbers that track their hardware.
This commit is contained in:
parent
78ff482bfa
commit
21b74639d8
10 changed files with 594 additions and 56 deletions
22
README.md
22
README.md
|
|
@ -134,6 +134,28 @@ Most commonly set:
|
|||
|
||||
Full key list in `internal/config/config.go`.
|
||||
|
||||
### `vm_defaults` — sizing for new VMs
|
||||
|
||||
Every `vm run` / `vm create` prints a `spec:` line up front showing
|
||||
the vCPU, RAM, and disk the VM will get. When the flags aren't set,
|
||||
those values come from:
|
||||
|
||||
1. `[vm_defaults]` in config (if present, wins).
|
||||
2. Host-derived heuristics (roughly: `cpus/4` capped at 4, `ram/8`
|
||||
capped at 8 GiB, 8 GiB disk).
|
||||
3. Built-in constants (floor).
|
||||
|
||||
`banger doctor` prints the effective defaults with provenance.
|
||||
|
||||
```toml
|
||||
[vm_defaults]
|
||||
vcpu = 4
|
||||
memory_mib = 4096
|
||||
disk_size = "16G"
|
||||
```
|
||||
|
||||
All keys optional — omit whichever you want banger to decide.
|
||||
|
||||
### `file_sync` — host → guest file copies
|
||||
|
||||
```toml
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue