provisioning/schemas/platform/validators/resource-validator.ncl
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

43 lines
1.6 KiB
Plaintext

# Resource Validators
# CPU, memory, and disk allocation validation for deployment modes
let constraints = import "../constraints/constraints.toml" in
let common = import "./common-validator.ncl" in
{
# Validate CPU cores for deployment mode
ValidCpuCores = fun mode cpu_cores =>
let min_cpu = constraints.deployment.solo.cpu.min in
let max_cpu = constraints.deployment.enterprise.cpu.max in
common.ValidRange min_cpu max_cpu cpu_cores,
# Validate memory allocation in MB for deployment mode
ValidMemoryMb = fun mode memory_mb =>
let min_mem = constraints.deployment.solo.memory_mb.min in
let max_mem = constraints.deployment.enterprise.memory_mb.max in
common.ValidRange min_mem max_mem memory_mb,
# Validate disk allocation in GB for deployment mode
ValidDiskGb = fun mode disk_gb =>
let min_disk = constraints.deployment.solo.disk_gb.min in
let max_disk = constraints.deployment.enterprise.disk_gb.max in
common.ValidRange min_disk max_disk disk_gb,
# Validate file size in bytes
ValidFileSize = fun min_bytes max_bytes size =>
common.ValidRange min_bytes max_bytes size,
# Validate memory size in MB
ValidMemorySizeMb = fun min_mb max_mb size_mb =>
common.ValidRange min_mb max_mb size_mb,
# Validate pool size (number of connections/threads)
ValidPoolSize = fun pool_size =>
if pool_size < 1 then
std.contract.blame_with_message "Pool size must be >= 1" pool_size
else if pool_size > 1000 then
std.contract.blame_with_message "Pool size must be <= 1000" pool_size
else
pool_size,
}