96 lines
3.3 KiB
Plaintext
96 lines
3.3 KiB
Plaintext
|
|
# VM Lifecycle Contracts
|
||
|
|
#
|
||
|
|
# Type definitions for VM persistence and lifecycle management
|
||
|
|
# Migrated from provisioning/kcl/vm_lifecycle.k
|
||
|
|
|
||
|
|
{
|
||
|
|
VmPersistence = {
|
||
|
|
mode | [| 'permanent, 'temporary |] | default = 'permanent,
|
||
|
|
auto_start | Bool | default = false,
|
||
|
|
restart_policy | [| 'no, 'always, 'on_failure |] | default = 'always,
|
||
|
|
max_retries | Number | default = 5,
|
||
|
|
ttl_hours | Number | default = 24,
|
||
|
|
auto_cleanup | Bool | default = true,
|
||
|
|
force_cleanup | Bool | default = false,
|
||
|
|
cleanup_grace_period | Number | default = 60,
|
||
|
|
created_at_unix | Number,
|
||
|
|
scheduled_cleanup | Number | optional,
|
||
|
|
last_state_change | Number | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
VmLifecyclePolicy = {
|
||
|
|
on_host_reboot | [| 'start, 'keep_stopped, 'destroy |] | default = 'start,
|
||
|
|
on_host_shutdown | [| 'shutdown, 'save_state, 'destroy |] | default = 'shutdown,
|
||
|
|
on_memory_pressure | [| 'suspend, 'kill, 'none |] | default = 'none,
|
||
|
|
on_disk_full | [| 'suspend, 'kill, 'none |] | default = 'none,
|
||
|
|
enforce_memory_limit | Bool | default = true,
|
||
|
|
enforce_cpu_limit | Bool | default = true,
|
||
|
|
enforce_disk_limit | Bool | default = false,
|
||
|
|
},
|
||
|
|
|
||
|
|
VmCleanupSchedule = {
|
||
|
|
vm_name | String,
|
||
|
|
vm_id | String,
|
||
|
|
mode | [| 'temporary |] | default = 'temporary,
|
||
|
|
created_at | String,
|
||
|
|
scheduled_cleanup_at | String,
|
||
|
|
ttl_hours | Number,
|
||
|
|
cleanup_status | [| 'pending, 'in_progress, 'completed, 'failed |] | default = 'pending,
|
||
|
|
cleanup_attempts | Number | default = 0,
|
||
|
|
last_cleanup_attempt | String | optional,
|
||
|
|
cleanup_error | String | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
VmRecoveryState = {
|
||
|
|
vm_name | String,
|
||
|
|
vm_id | String,
|
||
|
|
state_before_shutdown | [| 'running, 'stopped, 'paused |],
|
||
|
|
creation_timestamp | String,
|
||
|
|
last_checkpoint | String,
|
||
|
|
memory_snapshot | String | optional,
|
||
|
|
memory_size_mb | Number | optional,
|
||
|
|
config_snapshot | Dyn,
|
||
|
|
},
|
||
|
|
|
||
|
|
VmAutoStartConfig = {
|
||
|
|
vm_name | String,
|
||
|
|
enabled | Bool | default = true,
|
||
|
|
start_order | Number | default = 0,
|
||
|
|
start_delay_seconds | Number | default = 0,
|
||
|
|
wait_for_ssh | Bool | default = true,
|
||
|
|
ssh_timeout_seconds | Number | default = 300,
|
||
|
|
on_start_failure | [| 'stop, 'retry, 'ignore |] | default = 'retry,
|
||
|
|
max_start_retries | Number | default = 3,
|
||
|
|
depends_on | Array String | default = [],
|
||
|
|
},
|
||
|
|
|
||
|
|
VmCleanupPolicy = {
|
||
|
|
cleanup_enabled | Bool | default = true,
|
||
|
|
check_interval_minutes | Number | default = 60,
|
||
|
|
cleanup_window_start | String | default = "02:00",
|
||
|
|
cleanup_window_end | String | default = "06:00",
|
||
|
|
cleanup_in_window_only | Bool | default = true,
|
||
|
|
max_concurrent_cleanups | Number | default = 3,
|
||
|
|
cleanup_batch_size | Number | default = 10,
|
||
|
|
require_confirmation | Bool | default = false,
|
||
|
|
dry_run_mode | Bool | default = false,
|
||
|
|
skip_on_low_resources | Bool | default = true,
|
||
|
|
log_cleanup_operations | Bool | default = true,
|
||
|
|
alert_on_cleanup_failure | Bool | default = true,
|
||
|
|
retention_days | Number | default = 7,
|
||
|
|
},
|
||
|
|
|
||
|
|
VmStateSnapshot = {
|
||
|
|
vm_name | String,
|
||
|
|
snapshot_time | String,
|
||
|
|
vm_state | [| 'stopped, 'starting, 'running, 'stopping, 'paused, 'error |],
|
||
|
|
cpu_usage_percent | Number,
|
||
|
|
memory_usage_mb | Number,
|
||
|
|
disk_usage_gb | Number,
|
||
|
|
ip_addresses | Array String,
|
||
|
|
mac_addresses | Array String,
|
||
|
|
uptime_seconds | Number,
|
||
|
|
restart_count | Number,
|
||
|
|
},
|
||
|
|
}
|