117 lines
3.3 KiB
Plaintext
117 lines
3.3 KiB
Plaintext
|
|
# System Configuration Contracts
|
||
|
|
#
|
||
|
|
# Type definitions for system-level configuration
|
||
|
|
# Migrated from provisioning/kcl/system_config.k
|
||
|
|
|
||
|
|
{
|
||
|
|
SystemConfig = {
|
||
|
|
version | String | default = "1.0.0",
|
||
|
|
install_path | String,
|
||
|
|
os_name | [| 'macos, 'linux, 'windows |] | default = 'linux,
|
||
|
|
os_version | String,
|
||
|
|
config_base_path | String,
|
||
|
|
cache_base_path | String,
|
||
|
|
workspaces_dir | String,
|
||
|
|
system_architecture | String,
|
||
|
|
cpu_count | Number,
|
||
|
|
memory_total_gb | Number,
|
||
|
|
disk_total_gb | Number,
|
||
|
|
setup_date | String,
|
||
|
|
setup_by_user | String,
|
||
|
|
setup_hostname | String,
|
||
|
|
},
|
||
|
|
|
||
|
|
OrchestratorConfig = {
|
||
|
|
enabled | Bool | default = true,
|
||
|
|
endpoint | String | default = "http://localhost:9090",
|
||
|
|
port | Number | default = 9090,
|
||
|
|
timeout_seconds | Number | default = 30,
|
||
|
|
health_check_interval_seconds | Number | default = 5,
|
||
|
|
},
|
||
|
|
|
||
|
|
DatabaseConfig = {
|
||
|
|
backend | [| 'memory, 'surrealdb |] | default = 'memory,
|
||
|
|
url | String | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
ControlCenterConfig = {
|
||
|
|
enabled | Bool | default = true,
|
||
|
|
url | String | default = "http://localhost:3000",
|
||
|
|
port | Number | default = 3000,
|
||
|
|
timeout_seconds | Number | default = 30,
|
||
|
|
database | DatabaseConfig,
|
||
|
|
},
|
||
|
|
|
||
|
|
KMSConfig = {
|
||
|
|
enabled | Bool | default = true,
|
||
|
|
backend | [| 'rustyvault, 'age, 'vault, 'aws_kms |] | default = 'age,
|
||
|
|
endpoint | String | optional,
|
||
|
|
port | Number | optional,
|
||
|
|
rotation_days | Number | optional | default = 90,
|
||
|
|
},
|
||
|
|
|
||
|
|
PlatformServicesConfig = {
|
||
|
|
orchestrator | OrchestratorConfig,
|
||
|
|
control_center | ControlCenterConfig,
|
||
|
|
kms_service | KMSConfig,
|
||
|
|
},
|
||
|
|
|
||
|
|
ProviderCredentialsReference = {
|
||
|
|
credentials_source | String,
|
||
|
|
credentials_source_type | [| 'rustyvault, 'vault, 'kms |] | default = 'rustyvault,
|
||
|
|
},
|
||
|
|
|
||
|
|
UpCloudConfig = {
|
||
|
|
api_url | String | default = "https://api.upcloud.com/1.3",
|
||
|
|
interface | [| 'API, 'CLI |] | default = 'API,
|
||
|
|
credentials | ProviderCredentialsReference,
|
||
|
|
timeout_seconds | Number | default = 30,
|
||
|
|
},
|
||
|
|
|
||
|
|
AWSConfig = {
|
||
|
|
region | String | default = "us-east-1",
|
||
|
|
credentials | ProviderCredentialsReference,
|
||
|
|
timeout_seconds | Number | default = 30,
|
||
|
|
},
|
||
|
|
|
||
|
|
HetznerConfig = {
|
||
|
|
api_url | String | default = "https://api.hetzner.cloud/v1",
|
||
|
|
credentials | ProviderCredentialsReference,
|
||
|
|
timeout_seconds | Number | default = 30,
|
||
|
|
},
|
||
|
|
|
||
|
|
LocalConfig = {
|
||
|
|
base_path | String | default = "/tmp/provisioning-local",
|
||
|
|
timeout_seconds | Number | default = 10,
|
||
|
|
},
|
||
|
|
|
||
|
|
RustyVaultBootstrap = {
|
||
|
|
encrypted_key_path | String,
|
||
|
|
encrypted_key_format | [| 'age, 'sops |] | default = 'age,
|
||
|
|
},
|
||
|
|
|
||
|
|
ProviderConfig = {
|
||
|
|
upcloud | UpCloudConfig | optional,
|
||
|
|
aws | AWSConfig | optional,
|
||
|
|
hetzner | HetznerConfig | optional,
|
||
|
|
local | LocalConfig | optional,
|
||
|
|
rustyvault_bootstrap | RustyVaultBootstrap | optional,
|
||
|
|
},
|
||
|
|
|
||
|
|
UserPreferences = {
|
||
|
|
preferred_editor | [| 'vim, 'nano, 'code |] | default = 'vim,
|
||
|
|
preferred_output_format | [| 'text, 'json, 'yaml |] | default = 'text,
|
||
|
|
auto_confirm_operations | Bool | default = false,
|
||
|
|
log_level | [| 'error, 'warn, 'info, 'debug |] | default = 'info,
|
||
|
|
default_timeout_seconds | Number | default = 300,
|
||
|
|
},
|
||
|
|
|
||
|
|
WorkspaceConfig = {
|
||
|
|
workspace_name | String,
|
||
|
|
workspace_path | String,
|
||
|
|
active_infrastructure | String,
|
||
|
|
active_providers | Array String,
|
||
|
|
provider_config | ProviderConfig,
|
||
|
|
},
|
||
|
|
}
|