provisioning/config/templates/workspace-config-defaults.k.template

172 lines
3.8 KiB
Plaintext
Raw Normal View History

"""
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
}
}