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

207 lines
5.7 KiB
Plaintext

# Full Server Configuration Template
# Import from installed provisioning package
import provisioning.settings as settings
import provisioning.server as server
import provisioning.defaults as defaults
# Import taskservs (infrastructure services)
# The os taskserv is loaded automatically during workspace init
# To use it, import from the taskservs directory:
# import taskservs.os
# To discover more taskservs: provisioning dt
# To load additional taskservs: cd infra/<name> && provisioning mod load taskservs . <taskserv_name>
# Example: provisioning mod load taskservs . kubernetes containerd cilium
# Import other loaded modules (uncomment after loading)
# import .providers as providers
# import .clusters as clusters
# Main settings for this infrastructure
main_settings: settings.Settings = {
main_name = "full-infra"
main_title = "Full Infrastructure Configuration"
# Configure paths relative to infrastructure directory
settings_path = "../../data/settings.yaml"
defaults_provs_dirpath = "./defs"
prov_data_dirpath = "../../data"
created_taskservs_dirpath = "../../tmp/deployment"
prov_resources_path = "../../resources"
created_clusters_dirpath = "../../tmp/clusters"
prov_clusters_path = "./clusters"
# Configure cluster settings
cluster_admin_host = "" # Will be set by provider
servers_wait_started = 30
runset = {
wait = True
output_format = "human"
output_path = "../../tmp/deployment"
inventory_file = "./inventory.yaml"
use_time = True
}
}
# Web server example
web_servers: [server.Server] = [
{
hostname = "web-01"
title = "Web Server 01"
lock = False
time_zone = "UTC"
running_wait = 10
running_timeout = 200
storage_os_find = "name: debian-12 | arch: x86_64"
# Network configuration
network_utility_ipv4 = True
network_public_ipv4 = True
# User configuration
user = "admin"
user_ssh_port = 22
fix_local_hosts = True
labels = "env: production, role: web, tier: frontend"
# Resource configuration (adjust based on provider)
# plan = "2xCPU-4GB" # UpCloud example
# storage_size = 50
# Task services (uncomment after loading modules)
# taskservs = [
# { name = "containerd", profile = "default" }
# { name = "cilium", profile = "default" }
# ]
}
{
hostname = "web-02"
title = "Web Server 02"
lock = False
time_zone = "UTC"
running_wait = 10
running_timeout = 200
storage_os_find = "name: debian-12 | arch: x86_64"
network_utility_ipv4 = True
network_public_ipv4 = True
user = "admin"
user_ssh_port = 22
fix_local_hosts = True
labels = "env: production, role: web, tier: frontend"
}
]
# Database server example
db_servers: [server.Server] = [
{
hostname = "db-01"
title = "Database Server"
lock = False
time_zone = "UTC"
running_wait = 15
running_timeout = 300
storage_os_find = "name: debian-12 | arch: x86_64"
# Network configuration (database typically on private network)
network_utility_ipv4 = True
network_public_ipv4 = False
user = "admin"
user_ssh_port = 22
fix_local_hosts = True
labels = "env: production, role: database, tier: backend"
# Higher resources for database
# plan = "4xCPU-8GB"
# storage_size = 100
}
]
# Kubernetes control plane example
k8s_control: [server.Server] = [
{
hostname = "k8s-control-01"
title = "Kubernetes Control Plane"
lock = False
time_zone = "UTC"
running_wait = 15
running_timeout = 300
storage_os_find = "name: debian-12 | arch: x86_64"
network_utility_ipv4 = True
network_public_ipv4 = True
user = "admin"
user_ssh_port = 22
fix_local_hosts = True
labels = "env: production, role: k8s-control, tier: control-plane"
# Task services for Kubernetes (uncomment after loading)
# taskservs = [
# { name = "kubernetes", profile = "control-plane" }
# { name = "containerd", profile = "default" }
# { name = "cilium", profile = "default" }
# ]
}
]
# Kubernetes worker nodes example
k8s_workers: [server.Server] = [
{
hostname = "k8s-worker-01"
title = "Kubernetes Worker 01"
lock = False
time_zone = "UTC"
running_wait = 10
running_timeout = 200
storage_os_find = "name: debian-12 | arch: x86_64"
network_utility_ipv4 = True
network_public_ipv4 = True
user = "admin"
user_ssh_port = 22
fix_local_hosts = True
labels = "env: production, role: k8s-worker, tier: compute"
# taskservs = [
# { name = "kubernetes", profile = "worker" }
# { name = "containerd", profile = "default" }
# ]
}
{
hostname = "k8s-worker-02"
title = "Kubernetes Worker 02"
lock = False
time_zone = "UTC"
running_wait = 10
running_timeout = 200
storage_os_find = "name: debian-12 | arch: x86_64"
network_utility_ipv4 = True
network_public_ipv4 = True
user = "admin"
user_ssh_port = 22
fix_local_hosts = True
labels = "env: production, role: k8s-worker, tier: compute"
}
]
# Combine all servers
all_servers = web_servers + db_servers + k8s_control + k8s_workers
# Export configuration
{
settings = main_settings
servers = all_servers
}