- Remove KCL ecosystem (~220 files deleted) - Migrate all infrastructure to Nickel schema system - Consolidate documentation: legacy docs → provisioning/docs/src/ - Add CI/CD workflows (.github/) and Rust build config (.cargo/) - Update core system for Nickel schema parsing - Update README.md and CHANGES.md for v5.0.0 release - Fix pre-commit hooks: end-of-file, trailing-whitespace - Breaking changes: KCL workspaces require migration - Migration bridge available in docs/src/development/
107 lines
2.2 KiB
Plaintext
107 lines
2.2 KiB
Plaintext
# | VM Configuration Schema Contracts
|
|
# | Migrated from: provisioning/kcl/vm.k
|
|
# | Pattern: Three-file (contracts + defaults + main)
|
|
|
|
{
|
|
VmConfig = {
|
|
name | String,
|
|
description | String | optional,
|
|
base_image | String,
|
|
cpu | Number,
|
|
memory_mb | Number,
|
|
disk_gb | Number,
|
|
backend | String,
|
|
permanent | Bool,
|
|
temporary | Bool,
|
|
auto_cleanup | Bool,
|
|
auto_cleanup_hours | Number | optional,
|
|
taskserv | String | optional,
|
|
taskservs,
|
|
network_mode | String,
|
|
networks | optional,
|
|
ports | optional,
|
|
mounts | optional,
|
|
volumes | optional,
|
|
cloud_init | optional,
|
|
nested_virt | Bool | optional,
|
|
graphics_enable | Bool | optional,
|
|
serial_console | Bool | optional,
|
|
},
|
|
|
|
VmNetwork = {
|
|
name | String,
|
|
type | String,
|
|
subnet | String | optional,
|
|
},
|
|
|
|
VmPortMapping = {
|
|
host_port | Number,
|
|
guest_port | Number,
|
|
protocol | String,
|
|
bind_addr | String | optional,
|
|
},
|
|
|
|
VmMount = {
|
|
host_path | String,
|
|
guest_path | String,
|
|
readonly | Bool,
|
|
mode | String | optional,
|
|
},
|
|
|
|
VmVolume = {
|
|
name | String,
|
|
size_gb | Number,
|
|
mount_path | String | optional,
|
|
format | String,
|
|
},
|
|
|
|
VmCloudInit = {
|
|
enabled | Bool,
|
|
user_data | String | optional,
|
|
meta_data | String | optional,
|
|
vendor_data | String | optional,
|
|
},
|
|
|
|
VmImage = {
|
|
name | String,
|
|
format | String,
|
|
path | String,
|
|
size_gb | Number,
|
|
base_os | String,
|
|
os_version | String,
|
|
},
|
|
|
|
VmState = {
|
|
vm_name | String,
|
|
state | String,
|
|
permanent | Bool,
|
|
created_at | String,
|
|
started_at | String | optional,
|
|
last_action | String | optional,
|
|
auto_cleanup_at | String | optional,
|
|
ip_address | String | optional,
|
|
mac_address | String | optional,
|
|
hypervisor | String | optional,
|
|
backend_id | String | optional,
|
|
},
|
|
|
|
VmRegistry = {
|
|
vms,
|
|
permanent_count | Number,
|
|
temporary_count | Number,
|
|
updated_at | String,
|
|
},
|
|
|
|
VmCapacity = {
|
|
host_name | String,
|
|
total_cpu_cores | Number,
|
|
used_cpu_cores | Number,
|
|
total_memory_mb | Number,
|
|
used_memory_mb | Number,
|
|
total_disk_gb | Number,
|
|
used_disk_gb | Number,
|
|
max_vms | Number,
|
|
running_vms | Number,
|
|
},
|
|
}
|