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

77 lines
1.9 KiB
Plaintext

# VM Lifecycle Defaults
#
# Default values for VM lifecycle configurations
# Migrated from provisioning/kcl/vm_lifecycle.k
let contracts = import "contracts.ncl" in
{
default_persistence = {
mode = 'permanent,
auto_start = false,
restart_policy = 'always,
max_retries = 5,
ttl_hours = 24,
auto_cleanup = true,
force_cleanup = false,
cleanup_grace_period = 60,
created_at_unix = 0,
} | contracts.VmPersistence,
default_lifecycle_policy = {
on_host_reboot = 'start,
on_host_shutdown = 'shutdown,
on_memory_pressure = 'none,
on_disk_full = 'none,
enforce_memory_limit = true,
enforce_cpu_limit = true,
enforce_disk_limit = false,
} | contracts.VmLifecyclePolicy,
default_cleanup_policy = {
cleanup_enabled = true,
check_interval_minutes = 60,
cleanup_window_start = "02:00",
cleanup_window_end = "06:00",
cleanup_in_window_only = true,
max_concurrent_cleanups = 3,
cleanup_batch_size = 10,
require_confirmation = false,
dry_run_mode = false,
skip_on_low_resources = true,
log_cleanup_operations = true,
alert_on_cleanup_failure = true,
retention_days = 7,
} | contracts.VmCleanupPolicy,
default_auto_start = {
vm_name = "default",
enabled = true,
start_order = 0,
start_delay_seconds = 0,
wait_for_ssh = true,
ssh_timeout_seconds = 300,
on_start_failure = 'retry,
max_start_retries = 3,
depends_on = [],
} | contracts.VmAutoStartConfig,
# Template configurations
permanent_vm_persistence = {
mode = 'permanent,
auto_start = true,
restart_policy = 'always,
max_retries = 5,
created_at_unix = 0,
} | contracts.VmPersistence,
temporary_vm_persistence = {
mode = 'temporary,
ttl_hours = 24,
auto_cleanup = true,
force_cleanup = false,
cleanup_grace_period = 60,
created_at_unix = 0,
} | contracts.VmPersistence,
}