# | VM Configuration Default Values
# | Migrated from: provisioning/kcl/vm.k
# | Pattern: Three-file (contracts + defaults + main)

{
  vm_config = {
    name = "",
    base_image = "ubuntu-22.04",
    cpu = 2,
    memory_mb = 4096,
    disk_gb = 20,
    backend = "libvirt",
    permanent = false,
    temporary = false,
    auto_cleanup = false,
    taskservs = [],
    network_mode = "bridge",
    nested_virt = false,
    graphics_enable = false,
    serial_console = true,
  },

  vm_network = {
    name = "default",
    type = "nat",
  },

  vm_port_mapping = {
    host_port = 0,
    guest_port = 0,
    protocol = "tcp",
  },

  vm_mount = {
    host_path = "",
    guest_path = "",
    readonly = false,
  },

  vm_volume = {
    name = "",
    size_gb = 0,
    format = "qcow2",
  },

  vm_cloud_init = {
    enabled = true,
  },

  vm_image = {
    name = "",
    format = "qcow2",
    path = "",
    size_gb = 0,
    base_os = "ubuntu",
    os_version = "22.04",
  },

  vm_state = {
    vm_name = "",
    state = "stopped",
    permanent = false,
    created_at = "",
  },

  vm_registry = {
    vms = [],
    permanent_count = 0,
    temporary_count = 0,
    updated_at = "",
  },

  vm_capacity = {
    host_name = "",
    total_cpu_cores = 0,
    used_cpu_cores = 0,
    total_memory_mb = 0,
    used_memory_mb = 0,
    total_disk_gb = 0,
    used_disk_gb = 0,
    max_vms = 0,
    running_vms = 0,
  },
}
