103 lines
2.9 KiB
Plaintext
Raw Normal View History

2025-10-07 11:20:26 +01:00
# KCL Dependency configuration for containerd taskserv
# Defines comprehensive dependency, resource, and health requirements
import provisioning.dependencies as schema
# Containerd taskserv dependency configuration
_dependencies = schema.TaskservDependencies {
name = "containerd"
# Critical dependencies - must be installed first
requires = ["runc", "os"]
# Optional enhancements - install if available
optional = ["youki", "crun"]
# Cannot coexist with other container runtimes
conflicts = ["docker", "podman", "crio"]
# Services provided by this taskserv
provides = ["container-runtime", "cri", "containerd-service"]
# Resource requirements for containerd installation
resources = schema.ResourceRequirement {
cpu = "200m" # 200m CPU for container runtime
memory = "256Mi" # 256MB RAM minimum
disk = "5Gi" # 5GB for images and container storage
network = True # Requires network for image pulls
privileged = True # Needs privileged access for container operations
}
# Health checks for containerd service
health_checks = [
schema.HealthCheck {
command = "systemctl is-active containerd"
interval = 30
timeout = 5
retries = 2
success_threshold = 1
failure_threshold = 3
},
schema.HealthCheck {
command = "ctr version"
interval = 60
timeout = 10
retries = 3
},
schema.HealthCheck {
command = "ctr images list | wc -l"
interval = 120
timeout = 15
retries = 2
}
]
# Readiness probe for installation completion
readiness_probe = schema.HealthCheck {
command = "ctr namespaces list | grep -q default"
interval = 15
timeout = 5
retries = 5
success_threshold = 2
}
# Installation phases for ordered deployment
phases = [
schema.InstallationPhase {
name = "pre-install"
order = 1
parallel = False
required = True
},
schema.InstallationPhase {
name = "install"
order = 2
parallel = False
required = True
},
schema.InstallationPhase {
name = "post-install"
order = 3
parallel = True
required = True
},
schema.InstallationPhase {
name = "validate"
order = 4
parallel = False
required = True
}
]
# Installation control
timeout = 300 # 5 minutes for containerd setup
retry_count = 3
# Platform compatibility
os_support = ["linux"]
arch_support = ["amd64", "arm64"]
k8s_versions = ["1.31.x", "1.30.x", "1.29.x", "1.28.x"]
}
# Output for dynamic dependency resolution
_dependencies