provisioning/config-examples/config.user.toml
Jesús Pérez 3c3ef47f7f
feat(taskserv): implement real-time version checking with configurable HTTP client
- Add: GitHub API integration for live version checking in taskserv management
- Add: HTTP client configuration option (http.use_curl) in config.defaults.toml
- Add: Helper function fetch_latest_version with curl/http get support
- Fix: Settings path structure for prov_data_dirpath access pattern
- Remove: Legacy simulation code for version checking
- Update: Core configuration name from "provisioning-system" to "provisioning"
- Clean: Remove obsolete example configs and infrastructure files
2025-09-24 01:55:06 +01:00

317 lines
10 KiB
TOML

# User Configuration Template for Provisioning System
# Copy this file to ~/.config/provisioning/config.toml to customize your settings
#
# This file provides user-specific overrides for the provisioning system.
# Values defined here take precedence over system defaults but are overridden
# by project-specific and infrastructure-specific configurations.
#
# Configuration Loading Order (lowest to highest precedence):
# 1. config.defaults.toml (system defaults)
# 2. ~/.config/provisioning/config.toml (this file, user settings)
# 3. ./provisioning.toml (project-specific settings)
# 4. ./.provisioning.toml (infrastructure-specific settings)
# =============================================================================
# CORE SYSTEM CONFIGURATION
# =============================================================================
[core]
# System version and name - usually no need to override
# version = "1.0.0"
# name = "provisioning-system"
# =============================================================================
# PATH CONFIGURATION
# =============================================================================
# Configure base paths for your environment
# All other paths are automatically derived from paths.base
[paths]
# REQUIRED: Base directory where provisioning system is installed
# This is the most important setting - all other paths derive from this
# Examples:
# base = "/opt/provisioning" # System-wide installation
# base = "/Users/yourname/dev/provisioning" # User development setup
# base = "/home/devops/provisioning" # Linux user setup
base = "/path/to/your/provisioning"
# Optional: Override specific path components if needed
# Generally you should only set these if you have a custom directory layout
# kloud = "{{paths.base}}/my-custom-infra"
# providers = "{{paths.base}}/my-providers"
# taskservs = "{{paths.base}}/my-taskservs"
# clusters = "{{paths.base}}/my-clusters"
# resources = "{{paths.base}}/my-resources"
# templates = "{{paths.base}}/my-templates"
# tools = "{{paths.base}}/my-tools"
# core = "{{paths.base}}/my-core"
# File paths - override only if you've moved these files
# [paths.files]
# settings = "{{paths.base}}/kcl/my-settings.k"
# keys = "{{paths.base}}/my-keys.yaml"
# requirements = "{{paths.base}}/my-requirements.yaml"
# notify_icon = "{{paths.base}}/resources/my-icon.png"
# =============================================================================
# DEBUG AND LOGGING CONFIGURATION
# =============================================================================
# Control debugging output and logging behavior
[debug]
# Enable debug mode globally for your user
# This shows additional diagnostic information and verbose output
enabled = false
# Show metadata in debug output
# Includes internal system information and detailed operation traces
metadata = false
# Enable check mode by default
# When true, operations will simulate actions without making changes
check = false
# Enable remote debugging
# Shows detailed information about remote server operations
remote = false
# Set default log level for all operations
# Valid options: "trace", "debug", "info", "warn", "error"
# - trace: Most verbose, shows all internal operations
# - debug: Detailed information for troubleshooting
# - info: General information about operations (default)
# - warn: Warning messages and non-critical issues
# - error: Only errors and critical problems
log_level = "info"
# Disable terminal features if needed
# Set to true if running in environments without proper terminal support
no_terminal = false
# =============================================================================
# OUTPUT CONFIGURATION
# =============================================================================
# Configure how information is displayed and formatted
[output]
# Default file viewer for configuration files and logs
# Common options: "less", "more", "cat", "bat", "code", "vim", "nano"
file_viewer = "less"
# Default output format for data display
# Valid options: "json", "yaml", "toml", "text"
# - json: Structured JSON output, good for automation
# - yaml: Human-readable YAML format
# - toml: Configuration-friendly TOML format
# - text: Plain text, good for terminals
format = "yaml"
# =============================================================================
# SOPS ENCRYPTION CONFIGURATION
# =============================================================================
# Configure SOPS (Secrets OPerationS) for encryption/decryption of sensitive data
[sops]
# Enable or disable SOPS encryption globally
# Set to false if you don't use encrypted configuration files
use_sops = true
# Path to SOPS configuration file
# This file defines encryption rules and key providers
# config_path = "{{paths.base}}/.sops.yaml"
# Search paths for Age encryption keys
# SOPS will search these locations for your private key files
# Add your preferred key locations here
key_search_paths = [
"{{paths.base}}/keys/age.txt",
"~/.config/sops/age/keys.txt",
"~/.age/keys.txt",
"/etc/sops/age/keys.txt"
]
# =============================================================================
# RUNTIME DIRECTORIES
# =============================================================================
# Configure directories for runtime data and temporary files
[taskservs]
# Directory for task service runtime data
# This is where service state, logs, and temporary files are stored
# run_path = "{{paths.base}}/run/taskservs"
[clusters]
# Directory for cluster runtime data
# Stores cluster state information and generated configurations
# run_path = "{{paths.base}}/run/clusters"
[generation]
# Directory for generated configuration files
# Generated configurations are stored here before deployment
# dir_path = "{{paths.base}}/generated"
# defs_file = "defs.toml"
# =============================================================================
# PROVIDER CONFIGURATION
# =============================================================================
# Configure cloud providers and authentication
[providers]
# Default provider to use when none is specified
# Valid options: "aws", "upcloud", "local"
# - aws: Amazon Web Services
# - upcloud: UpCloud VPS provider
# - local: Local development/testing
default = "local"
# AWS Provider Configuration
[providers.aws]
# API endpoint - leave empty for default AWS endpoints
api_url = ""
# Authentication method - leave empty to use AWS CLI/SDK defaults
auth = ""
# Interface type: "API" for direct API calls, "CLI" for AWS CLI
interface = "CLI"
# UpCloud Provider Configuration
[providers.upcloud]
# API endpoint for UpCloud
api_url = "https://api.upcloud.com/1.3"
# Authentication - set your API credentials in environment variables
auth = ""
# Interface type: "API" for direct API calls, "CLI" for UpCloud CLI
interface = "CLI"
# Local Provider Configuration (for development and testing)
[providers.local]
# No API URL needed for local provider
api_url = ""
# No authentication needed for local provider
auth = ""
# Always uses CLI interface for local operations
interface = "CLI"
# =============================================================================
# USER-SPECIFIC ENVIRONMENT OVERRIDES
# =============================================================================
# Override environment-specific settings for your workflow
# Development Environment Overrides
# Uncomment and modify these if you work primarily in development mode
# [environments.dev]
# debug.enabled = true
# debug.log_level = "debug"
# debug.metadata = true
# providers.default = "local"
# output.format = "json"
# Production Environment Overrides
# Uncomment and modify these for production deployments
# [environments.prod]
# debug.enabled = false
# debug.log_level = "warn"
# debug.check = false
# output.format = "yaml"
# Testing Environment Overrides
# Uncomment and modify these for testing scenarios
# [environments.test]
# debug.enabled = true
# debug.check = true
# debug.log_level = "info"
# providers.default = "local"
# =============================================================================
# ADVANCED USER CUSTOMIZATIONS
# =============================================================================
# Advanced settings for power users
# Custom Notification Settings (optional)
# [notifications]
# enabled = true
# icon_path = "{{paths.base}}/resources/my-custom-icon.png"
# sound_enabled = false
# Performance Tuning (optional)
# [performance]
# parallel_operations = 4
# timeout_seconds = 300
# cache_enabled = true
# Security Settings (optional)
# [security]
# require_confirmation = true
# log_sensitive_data = false
# strict_validation = true
# =============================================================================
# USAGE EXAMPLES AND COMMON CONFIGURATIONS
# =============================================================================
#
# Example 1: Developer Setup
# -------------------------
# [paths]
# base = "/Users/alice/dev/provisioning"
#
# [debug]
# enabled = true
# log_level = "debug"
#
# [providers]
# default = "local"
#
# [output]
# format = "json"
# file_viewer = "code"
#
# Example 2: Production Operations
# -------------------------------
# [paths]
# base = "/opt/provisioning"
#
# [debug]
# enabled = false
# log_level = "warn"
#
# [providers]
# default = "aws"
#
# [output]
# format = "yaml"
#
# Example 3: Team Lead Setup
# -------------------------
# [paths]
# base = "/home/teamlead/provisioning"
#
# [debug]
# enabled = true
# log_level = "info"
# metadata = true
#
# [providers]
# default = "upcloud"
#
# [sops]
# key_search_paths = [
# "/secure/keys/team-lead.txt",
# "~/.config/sops/age/keys.txt"
# ]
#
# =============================================================================
# QUICK START CHECKLIST
# =============================================================================
#
# To get started with this configuration:
#
# 1. Copy this file to ~/.config/provisioning/config.toml
# 2. Update paths.base to point to your provisioning installation
# 3. Choose your default provider (local, aws, upcloud)
# 4. Set debug.enabled = true if you want verbose output
# 5. Configure SOPS key paths if using encrypted configurations
# 6. Test with: ./core/nulib/provisioning validate config
#
# For more information:
# - Run: ./core/nulib/provisioning help
# - See: CLAUDE.md for project documentation
# - Visit: Project wiki for detailed guides