Skip to main content
Ozone represents every managed virtual machine as a single JSON file stored on disk. When you create or register a VM, Ozone writes a configuration file into a local vms/ directory. All subsequent operations — starting, inspecting, or modifying a VM — read from that file, making the configuration the single source of truth for the machine’s desired state.

File naming convention

Each configuration file is named after the virtual machine it describes:
For example, a VM named web-01 is stored at vms/web-01.json. The name must be consistent: it is embedded in the vm.name field inside the file and also determines the file path used by every vmparser read and write function.

Top-level configuration sections

A VM configuration file contains five top-level JSON objects. Each maps directly to a typed Go struct in the vmparser package.

The vmparser package

All file I/O is handled by the vmparser package, which uses Go’s standard encoding/json and os packages. There are no external dependencies. Reader functions parse the full JSON file on every call and return typed pointers; writer functions read the existing file first, merge in the new value, then write the updated document back to disk — preserving all other sections.

Schema Reference

Complete field-by-field reference for every JSON key in a VM configuration file.

Reading Configs

Use VMParser, GetCPU, GetDisk, and the full suite of getter functions.

Writing Configs

Use VMParserWriterCPU, VMParserWriterDisk, and the other writer functions.