provisioning/config/templates/workspace-config-defaults.k.template
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

172 lines
3.8 KiB
Plaintext

"""
TEMPLATE FILE - .template Extension
Workspace Configuration Defaults (SST - Single Source of Truth)
These are the default values for all workspace configurations.
Workspaces override these defaults in their provisioning.k file.
This file uses the .template extension because it's used only during workspace
initialization with simple {{variable}} substitution. It's copied to all new
workspaces without modification.
Runtime templates use .j2 (Jinja2 via nu_plugin_tera) for dynamic rendering.
Pattern:
- SST Defaults: .provisioning/workspace_config_defaults.k (this file)
- SST Schema: .provisioning/workspace_config.k (schema definitions)
- Workspace Config: config/provisioning.k (workspace-specific overrides)
See provisioning/config/templates/README.md for template conventions.
"""
# Import the schema from the same package
import workspace_config as cfg
# Default workspace configuration instance
# All workspaces inherit these defaults and can override specific values
default_workspace_config: cfg.WorkspaceConfig = {
workspace = {
name = "default-workspace"
version = "1.0.0"
created = ""
}
paths = {
base = "."
infra = "infra"
cache = ".cache"
runtime = ".runtime"
providers = ".providers"
taskservs = ".taskservs"
clusters = ".clusters"
orchestrator = ".orchestrator"
control_center = ".control-center"
kms = ".kms"
generate = "generate"
run_clusters = "clusters"
run_taskservs = "taskservs"
extensions = ".provisioning-extensions"
resources = "resources"
templates = "templates"
tools = "tools"
}
provisioning = {
path = "."
}
core = {
version = "1.0.0"
name = "provisioning"
}
debug = {
enabled = False
metadata = False
check_mode = False
validation = False
remote = False
log_level = "info"
no_terminal = False
}
output = {
file_viewer = "bat"
format = "yaml"
}
http = {
use_curl = False
timeout = 30
}
providers = {
active = ["upcloud"]
default = "upcloud"
}
platform = {
orchestrator_enabled = False
control_center_enabled = False
mcp_enabled = False
}
secrets = {
provider = "sops"
sops_enabled = True
kms_enabled = False
}
kms = {
mode = "local"
config_file = "config/kms.toml"
}
sops = {
use_sops = True
config_path = ".sops.yaml"
key_search_paths = [
".kms/keys/age.txt"
"~/.config/sops/age/keys.txt"
]
}
ai = {
enabled = False
provider = "openai"
config_path = "config/ai.yaml"
}
taskservs = {
run_path = ".runtime/taskservs"
}
clusters = {
run_path = ".runtime/clusters"
}
generation = {
dir_path = "generated"
defs_file = "defs.toml"
}
cache = {
enabled = True
path = ".cache/versions"
infra_cache = "infra/default/cache/versions"
grace_period = 86400
check_updates = False
max_cache_size = "10MB"
}
infra = {
current = "default"
}
tools = {
use_kcl = True
use_kcl_plugin = True
use_tera_plugin = True
}
kcl = {
core_module = "kcl"
core_version = "0.0.1"
core_package_name = "provisioning_core"
use_module_loader = True
module_loader_path = "core/cli/module-loader"
modules_dir = ".kcl-modules"
}
ssh = {
user = ""
options = [
"StrictHostKeyChecking=accept-new"
"UserKnownHostsFile=/dev/null"
]
timeout = 30
debug = False
}
}