2026-01-08 09:55:37 +00:00
|
|
|
# Orchestrator Service Default Configuration
|
2026-05-12 02:23:01 +01:00
|
|
|
# Pattern: Commands-Registry style with | default for all fields
|
|
|
|
|
# Allows: (base & mode) & user merge
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2026-05-12 02:23:01 +01:00
|
|
|
let orchestrator_schema = import "../orchestrator.ncl" in
|
2026-01-08 09:55:37 +00:00
|
|
|
let monitoring_defaults = import "./common/monitoring-defaults.ncl" in
|
|
|
|
|
let logging_defaults = import "./common/logging-defaults.ncl" in
|
|
|
|
|
|
2026-05-12 02:23:01 +01:00
|
|
|
let base_orchestrator = {
|
|
|
|
|
# Workspace Configuration
|
|
|
|
|
workspace.name | default = "default",
|
|
|
|
|
workspace.path | default = "/var/lib/provisioning/orchestrator",
|
|
|
|
|
workspace.enabled | default = true,
|
|
|
|
|
workspace.multi_workspace | default = false,
|
|
|
|
|
|
|
|
|
|
# HTTP Server Settings
|
|
|
|
|
server.host | default = "127.0.0.1",
|
|
|
|
|
server.port | default = 9090,
|
|
|
|
|
server.workers | default = 4,
|
|
|
|
|
server.keep_alive | default = 75,
|
|
|
|
|
server.max_connections | default = 100,
|
|
|
|
|
server.request_timeout | default = 30000,
|
|
|
|
|
server.graceful_shutdown | default = true,
|
|
|
|
|
server.shutdown_timeout | default = 30,
|
|
|
|
|
|
|
|
|
|
# Storage Configuration
|
|
|
|
|
storage.backend | default = "filesystem",
|
|
|
|
|
storage.path | default = "/var/lib/provisioning/orchestrator/data",
|
|
|
|
|
storage.cache.enabled | default = true,
|
|
|
|
|
storage.cache.type | default = "in_memory",
|
|
|
|
|
storage.cache.eviction_policy | default = "lru",
|
|
|
|
|
storage.cache.ttl | default = 3600,
|
|
|
|
|
|
|
|
|
|
# Queue Configuration
|
|
|
|
|
queue.max_concurrent_tasks | default = 5,
|
|
|
|
|
queue.retry_attempts | default = 3,
|
|
|
|
|
queue.retry_delay | default = 5000,
|
|
|
|
|
queue.task_timeout | default = 3600000,
|
|
|
|
|
queue.persist | default = true,
|
|
|
|
|
queue.dead_letter_queue.enabled | default = true,
|
|
|
|
|
queue.dead_letter_queue.max_size | default = 1000,
|
|
|
|
|
queue.priority_queue | default = false,
|
|
|
|
|
queue.metrics | default = false,
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2026-05-12 02:23:01 +01:00
|
|
|
# Batch Workflow Configuration
|
|
|
|
|
batch.parallel_limit | default = 5,
|
|
|
|
|
batch.operation_timeout_minutes | default = 30,
|
|
|
|
|
batch.checkpointing.enabled | default = true,
|
|
|
|
|
batch.checkpointing.interval | default = 100,
|
|
|
|
|
batch.checkpointing.max_checkpoints | default = 10,
|
|
|
|
|
batch.rollback.enabled | default = true,
|
|
|
|
|
batch.rollback.strategy | default = "checkpoint_based",
|
|
|
|
|
batch.rollback.max_rollback_depth | default = 5,
|
|
|
|
|
batch.metrics | default = false,
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2026-05-12 02:23:01 +01:00
|
|
|
# Extensions Configuration
|
|
|
|
|
extensions.auto_load | default = false,
|
|
|
|
|
extensions.discovery_interval | default = 300,
|
|
|
|
|
extensions.max_concurrent | default = 5,
|
|
|
|
|
extensions.timeout | default = 30000,
|
|
|
|
|
extensions.sandbox | default = true,
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2026-05-12 02:23:01 +01:00
|
|
|
# Performance Configuration
|
|
|
|
|
performance.profiling | default = false,
|
|
|
|
|
performance.cpu_affinity | default = false,
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2026-05-12 02:23:01 +01:00
|
|
|
# Docker Build Configuration (no | default to override schema defaults)
|
|
|
|
|
build.package = "provisioning-orchestrator",
|
|
|
|
|
build.binary = "provisioning-orchestrator",
|
|
|
|
|
build.port = 9090,
|
|
|
|
|
build.features = [],
|
|
|
|
|
build.extra_runtime_pkgs = [],
|
|
|
|
|
build.config_file = "config.defaults.toml",
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2026-05-12 02:23:01 +01:00
|
|
|
# Monitoring Configuration (from common defaults)
|
|
|
|
|
monitoring.enabled | default = monitoring_defaults.monitoring.enabled,
|
|
|
|
|
monitoring.metrics.enabled | default = monitoring_defaults.monitoring.metrics.enabled,
|
|
|
|
|
monitoring.metrics.interval | default = monitoring_defaults.monitoring.metrics.interval,
|
|
|
|
|
monitoring.health_check.enabled | default = monitoring_defaults.monitoring.health_check.enabled,
|
|
|
|
|
monitoring.health_check.interval | default = monitoring_defaults.monitoring.health_check.interval,
|
|
|
|
|
monitoring.resources.cpu | default = monitoring_defaults.monitoring.resources.cpu,
|
|
|
|
|
monitoring.resources.memory | default = monitoring_defaults.monitoring.resources.memory,
|
|
|
|
|
monitoring.resources.alert_threshold | default = monitoring_defaults.monitoring.resources.alert_threshold,
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2026-05-12 02:23:01 +01:00
|
|
|
# Logging Configuration (from common defaults)
|
|
|
|
|
logging.level | default = logging_defaults.logging.level,
|
|
|
|
|
logging.format | default = logging_defaults.logging.format,
|
|
|
|
|
|
|
|
|
|
# Docker Build Configuration (removed - conflicts with schema defaults)
|
|
|
|
|
} in
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
# Base configuration with all defaults
|
|
|
|
|
orchestrator = base_orchestrator | orchestrator_schema.OrchestratorConfig,
|
2026-01-08 09:55:37 +00:00
|
|
|
|
2026-05-12 02:23:01 +01:00
|
|
|
# Factory function for hybrid pattern: (base & mode) & user
|
|
|
|
|
make_orchestrator = fun mode_overrides => fun user_overrides =>
|
|
|
|
|
(base_orchestrator & mode_overrides) & user_overrides,
|
2026-01-08 09:55:37 +00:00
|
|
|
}
|