Jesús Pérez 6a59d34bb1
chore: update provisioning configuration and documentation
Update configuration files, templates, and internal documentation
for the provisioning repository system.

Configuration Updates:
- KMS configuration modernization
- Plugin system settings
- Service port mappings
- Test cluster topologies
- Installation configuration examples
- VM configuration defaults
- Cedar authorization policies

Documentation Updates:
- Library module documentation
- Extension API guides
- AI system documentation
- Service management guides
- Test environment setup
- Plugin usage guides
- Validator configuration documentation

All changes are backward compatible.
2025-12-11 21:50:42 +00:00

82 lines
4.0 KiB
Plaintext

"""
KCL Dependency Management Schema for Provisioning System
Provides type-safe dependency declarations with resource requirements and health checks
"""
schema ResourceRequirement:
"""Resource requirements for taskserv installation and operation"""
cpu?: str = "100m" # CPU requirement (K8s format)
memory?: str = "128Mi" # Memory requirement (K8s format)
disk?: str = "1Gi" # Disk space requirement
network?: bool = True # Requires network connectivity
privileged?: bool = False # Requires privileged access
check:
len(cpu) > 0, "CPU requirement cannot be empty"
len(memory) > 0, "Memory requirement cannot be empty"
len(disk) > 0, "Disk requirement cannot be empty"
schema HealthCheck:
"""Health check definition for taskserv validation"""
command: str # Command to execute for health check
interval?: int = 30 # Check interval in seconds
timeout?: int = 10 # Command timeout in seconds
retries?: int = 3 # Number of retry attempts
success_threshold?: int = 1 # Consecutive successes needed
failure_threshold?: int = 3 # Consecutive failures to mark unhealthy
check:
len(command) > 0, "Health check command cannot be empty"
interval > 0, "Health check interval must be positive"
timeout > 0, "Health check timeout must be positive"
retries >= 0, "Health check retries cannot be negative"
schema InstallationPhase:
"""Installation phase definition for ordered deployment"""
name: str # Phase name (e.g., "pre-install", "install", "post-install")
order: int # Execution order within phase (lower first)
parallel?: bool = False # Can run in parallel with same order
required?: bool = True # Phase is required for successful installation
check:
len(name) > 0, "Installation phase name cannot be empty"
order >= 0, "Installation phase order cannot be negative"
name in ["pre-install", "install", "post-install", "validate", "cleanup"], "Phase name must be one of: pre-install, install, post-install, validate, cleanup"
schema TaskservDependencies:
"""Complete dependency configuration for a taskserv"""
name: str # Taskserv name (must match directory)
# Dependency relationships
requires?: [str] # Required taskservs (must be installed first)
conflicts?: [str] # Conflicting taskservs (cannot coexist)
optional?: [str] # Optional taskservs (install if available)
provides?: [str] # Services this taskserv provides
# Resource requirements
resources: ResourceRequirement # Resource requirements for installation
# Health and validation
health_checks?: [HealthCheck] # Health check definitions
readiness_probe?: HealthCheck # Readiness check for installation completion
# Installation control
phases?: [InstallationPhase] # Installation phase definitions
timeout?: int = 600 # Installation timeout in seconds
retry_count?: int = 3 # Number of installation retry attempts
# Compatibility
os_support?: [str] = ["linux"] # Supported operating systems
arch_support?: [str] = ["amd64"] # Supported CPU architectures
k8s_versions?: [str] # Compatible Kubernetes versions
check:
len(name) > 0, "Taskserv name cannot be empty"
name == name.lower(), "Taskserv name must be lowercase"
timeout > 0, "Installation timeout must be positive"
retry_count >= 0, "Retry count cannot be negative"
len(os_support) > 0, "Must specify at least one supported OS"
len(arch_support) > 0, "Must specify at least one supported architecture"
# Re-export for taskserv use
schema TaskservDependency = TaskservDependencies