58 lines
1.6 KiB
Plaintext
58 lines
1.6 KiB
Plaintext
# Info: KCL Radicle task schemas for provisioning (Provisioning)
|
|
# Author: Provisioning System
|
|
# Release: 0.0.1
|
|
# Date: 2025-07-24
|
|
|
|
import regex
|
|
|
|
schema User:
|
|
"""
|
|
User settings for Radicle
|
|
"""
|
|
name: str
|
|
group: str = name
|
|
home?: str = "/home/${name}"
|
|
|
|
schema RadicleNode:
|
|
"""
|
|
Radicle Node configuration
|
|
"""
|
|
name: str = "radicle"
|
|
version: str
|
|
run_user: User = {
|
|
name = "radicle"
|
|
}
|
|
work_path: str = "/var/lib/radicle"
|
|
config_path: str = "/etc/radicle"
|
|
run_path: str = "/usr/local/bin/rad"
|
|
bind_addr: str = "0.0.0.0"
|
|
bind_port: int = 8776
|
|
peer_port: int = 8777
|
|
web_ui_port: int = 8080
|
|
storage_path: str = "/var/lib/radicle/storage"
|
|
seeds: [str] = []
|
|
external_addresses: [str] = []
|
|
connect_timeout: int = 10
|
|
announce: bool = True
|
|
log_level: "trace" | "debug" | "info" | "warn" | "error" = "info"
|
|
|
|
check:
|
|
1 <= bind_port <= 65535, "bind_port must be between 1 and 65535, inclusive"
|
|
1 <= peer_port <= 65535, "peer_port must be between 1 and 65535, inclusive"
|
|
1 <= web_ui_port <= 65535, "web_ui_port must be between 1 and 65535, inclusive"
|
|
len(run_user.name) > 0, "Check run_user name"
|
|
len(work_path) > 0, "Check work_path"
|
|
len(storage_path) > 0, "Check storage_path"
|
|
connect_timeout > 0, "connect_timeout must be positive"
|
|
|
|
schema RadicleHttpd:
|
|
"""
|
|
Radicle HTTP daemon configuration
|
|
"""
|
|
enabled: bool = True
|
|
bind_addr: str = "0.0.0.0"
|
|
bind_port: int = 8080
|
|
assets_path?: str
|
|
|
|
check:
|
|
1 <= bind_port <= 65535, "bind_port must be between 1 and 65535, inclusive" |