Jesús Pérez 44648e3206
chore: complete nickel migration and consolidate legacy configs
- 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/
2026-01-08 09:55:37 +00:00

104 lines
2.8 KiB
Plaintext

# VM Lifecycle Contracts
#
# Type definitions for VM persistence and lifecycle management.
{
PersistenceMode = [| 'permanent, 'temporary |],
RestartPolicy = [| 'no, 'always, 'on_failure |],
HostRebootAction = [| 'start, 'keep_stopped, 'destroy |],
HostShutdownAction = [| 'shutdown, 'save_state, 'destroy |],
ResourcePressureAction = [| 'suspend, 'kill, 'none |],
CleanupStatus = [| 'pending, 'in_progress, 'completed, 'failed |],
VmState = [| 'stopped, 'starting, 'running, 'stopping, 'paused, 'error |],
StartFailureAction = [| 'stop, 'retry, 'ignore |],
VmPersistence = {
mode | PersistenceMode,
auto_start | Bool,
restart_policy | RestartPolicy,
max_retries | Number,
ttl_hours | Number,
auto_cleanup | Bool,
force_cleanup | Bool,
cleanup_grace_period | Number,
created_at_unix | Number,
scheduled_cleanup | optional | Number,
last_state_change | optional | Number,
},
VmLifecyclePolicy = {
on_host_reboot | HostRebootAction,
on_host_shutdown | HostShutdownAction,
on_memory_pressure | ResourcePressureAction,
on_disk_full | ResourcePressureAction,
enforce_memory_limit | Bool,
enforce_cpu_limit | Bool,
enforce_disk_limit | Bool,
},
VmCleanupSchedule = {
vm_name | String,
vm_id | String,
mode | PersistenceMode,
created_at | String,
scheduled_cleanup_at | String,
ttl_hours | Number,
cleanup_status | CleanupStatus,
cleanup_attempts | Number,
last_cleanup_attempt | optional | String,
cleanup_error | optional | String,
},
VmRecoveryState = {
vm_name | String,
vm_id | String,
state_before_shutdown | VmState,
creation_timestamp | String,
last_checkpoint | String,
memory_snapshot | optional | String,
memory_size_mb | optional | Number,
config_snapshot,
},
VmAutoStartConfig = {
vm_name | String,
enabled | Bool,
start_order | Number,
start_delay_seconds | Number,
wait_for_ssh | Bool,
ssh_timeout_seconds | Number,
on_start_failure | StartFailureAction,
max_start_retries | Number,
depends_on,
},
VmCleanupPolicy = {
cleanup_enabled | Bool,
check_interval_minutes | Number,
cleanup_window_start | String,
cleanup_window_end | String,
cleanup_in_window_only | Bool,
max_concurrent_cleanups | Number,
cleanup_batch_size | Number,
require_confirmation | Bool,
dry_run_mode | Bool,
skip_on_low_resources | Bool,
log_cleanup_operations | Bool,
alert_on_cleanup_failure | Bool,
retention_days | Number,
},
VmStateSnapshot = {
vm_name | String,
snapshot_time | String,
vm_state | VmState,
cpu_usage_percent | Number,
memory_usage_mb | Number,
disk_usage_gb | Number,
ip_addresses,
mac_addresses,
uptime_seconds | Number,
restart_count | Number,
},
}