# Development Environment Configuration Template # Copy this file to config.dev.toml for development-optimized settings # # This template provides pre-configured settings optimized for development work: # - Enhanced debugging and logging # - Local provider as default # - Relaxed validation for faster iteration # - Development-friendly output formats # - Comprehensive error reporting # ============================================================================= # DEVELOPMENT-OPTIMIZED CORE CONFIGURATION # ============================================================================= [core] version = "1.0.0" name = "provisioning-system-dev" # ============================================================================= # DEVELOPMENT PATHS # ============================================================================= # Configured for typical development directory structures [paths] # Development base path - adjust to your development environment # Common development locations: # base = "/Users/yourname/dev/provisioning" # macOS development # base = "/home/developer/workspace/provisioning" # Linux development # base = "C:/dev/provisioning" # Windows development base = "/path/to/your/dev/provisioning" # Development-specific path overrides # Uncomment if you use custom development directory structure # kloud = "{{paths.base}}/dev-infra" # providers = "{{paths.base}}/dev-providers" # taskservs = "{{paths.base}}/dev-taskservs" # templates = "{{paths.base}}/dev-templates" [paths.files] # Development configuration files settings = "{{paths.base}}/kcl/settings.k" keys = "{{paths.base}}/keys.yaml" requirements = "{{paths.base}}/requirements.yaml" notify_icon = "{{paths.base}}/resources/icon.png" # ============================================================================= # ENHANCED DEBUGGING FOR DEVELOPMENT # ============================================================================= # Aggressive debugging settings for development workflow [debug] # Enable comprehensive debugging enabled = true # Show detailed metadata for debugging complex issues metadata = true # Enable check mode by default to prevent accidental changes # Set to false when you want to actually execute operations check = true # Enable remote debugging for distributed development remote = true # Use debug logging level for maximum information log_level = "debug" # Disable terminal optimizations for better IDE integration no_terminal = false # ============================================================================= # DEVELOPMENT-FRIENDLY OUTPUT # ============================================================================= [output] # Use bat for syntax highlighting if available, fallback to less file_viewer = "bat" # JSON format for easier programmatic processing and debugging format = "json" # ============================================================================= # DEVELOPMENT SOPS CONFIGURATION # ============================================================================= # Simplified SOPS setup for development [sops] # Enable SOPS for testing encryption workflows use_sops = true # Development SOPS configuration config_path = "{{paths.base}}/.sops.yaml" # Extended search paths for development keys key_search_paths = [ "{{paths.base}}/keys/dev-age.txt", "{{paths.base}}/keys/age.txt", "~/.config/sops/age/dev-keys.txt", "~/.config/sops/age/keys.txt", "~/.age/dev-keys.txt", "~/.age/keys.txt", "./dev-keys/age.txt" ] # ============================================================================= # DEVELOPMENT RUNTIME CONFIGURATION # ============================================================================= [taskservs] # Separate development runtime directory run_path = "{{paths.base}}/run/dev-taskservs" [clusters] # Development cluster runtime run_path = "{{paths.base}}/run/dev-clusters" [generation] # Development generation directory with timestamping dir_path = "{{paths.base}}/generated/dev" defs_file = "dev-defs.toml" # ============================================================================= # DEVELOPMENT PROVIDER CONFIGURATION # ============================================================================= # Optimized for local development and testing [providers] # Default to local provider for development default = "local" # AWS Development Configuration [providers.aws] # Use localstack or development AWS account api_url = "" auth = "" interface = "CLI" # UpCloud Development Configuration [providers.upcloud] # Standard UpCloud API for development testing api_url = "https://api.upcloud.com/1.3" auth = "" interface = "CLI" # Local Development Provider [providers.local] # Local development configuration api_url = "" auth = "" interface = "CLI" # ============================================================================= # DEVELOPMENT ENVIRONMENT OPTIMIZATIONS # ============================================================================= # Development environment defaults [environments.dev] debug.enabled = true debug.log_level = "debug" debug.metadata = true debug.check = true debug.remote = true providers.default = "local" output.format = "json" output.file_viewer = "bat" # Override for when switching to production testing [environments.prod] debug.enabled = false debug.log_level = "warn" debug.check = true debug.metadata = false providers.default = "aws" output.format = "yaml" # Test environment for CI/CD [environments.test] debug.enabled = true debug.log_level = "info" debug.check = true debug.metadata = false providers.default = "local" output.format = "json" # ============================================================================= # DEVELOPMENT-SPECIFIC EXTENSIONS # ============================================================================= # Development notifications [notifications] enabled = true icon_path = "{{paths.base}}/resources/dev-icon.png" sound_enabled = false # Development-specific notification channels slack_webhook = "" teams_webhook = "" # Development performance settings [performance] # Reduced parallelism for easier debugging parallel_operations = 2 # Shorter timeouts for faster feedback timeout_seconds = 120 # Enable caching for faster iteration cache_enabled = true # Development cache directory cache_dir = "{{paths.base}}/cache/dev" # Development security settings [security] # Require confirmation for destructive operations require_confirmation = true # Log sensitive data in development (careful with this) log_sensitive_data = false # Relaxed validation for faster development strict_validation = false # Development backup settings auto_backup = true backup_dir = "{{paths.base}}/backups/dev" # Development tool integration [tools] # Editor for configuration files editor = "code" # Terminal for SSH sessions terminal = "iterm2" # Browser for web interfaces browser = "chrome" # Diff tool for configuration comparison diff_tool = "code --diff" # Development container settings [containers] # Container runtime for local testing runtime = "docker" # Development registry registry = "localhost:5000" # Development namespace namespace = "dev-provisioning" # Development monitoring [monitoring] # Enable development metrics enabled = true # Metrics endpoint for development endpoint = "http://localhost:8080/metrics" # Development log aggregation log_endpoint = "http://localhost:3000" # Development backup and recovery [backup] # Enable automatic backups during development enabled = true # Backup interval for development interval = "30m" # Development backup retention retention_days = 7 # Development backup location location = "{{paths.base}}/backups/dev" # ============================================================================= # DEVELOPMENT WORKFLOW SHORTCUTS # ============================================================================= # Common development aliases and shortcuts [aliases] # Quick commands for development workflow dev-setup = "generate infra --new dev-test --template basic" dev-clean = "delete server --infra dev-test --yes" dev-status = "show servers --infra dev-test --out json" dev-logs = "show logs --follow --level debug" dev-validate = "validate config --strict" # Development template configurations [templates] # Default template for development default = "dev-basic" # Template search paths search_paths = [ "{{paths.base}}/templates/dev", "{{paths.base}}/templates/common" ] # ============================================================================= # DEVELOPMENT USAGE EXAMPLES # ============================================================================= # # Quick Development Commands: # -------------------------- # # 1. Create development infrastructure: # ./core/nulib/provisioning generate infra --new mydev --template dev-basic # # 2. Validate configuration with debug output: # ./core/nulib/provisioning validate config --debug # # 3. Test server creation (check mode): # ./core/nulib/provisioning server create --infra mydev --check # # 4. Monitor operations with enhanced logging: # ./core/nulib/provisioning show logs --follow --level debug # # 5. Interactive development shell: # ./core/nulib/provisioning nu # # Development Environment Variables: # --------------------------------- # export PROVISIONING_ENV=dev # export PROVISIONING_DEBUG=true # export PROVISIONING_LOG_LEVEL=debug # # Development Testing Workflow: # ---------------------------- # 1. Create test infrastructure: provisioning generate infra --new test-$(date +%s) # 2. Validate: provisioning validate config # 3. Test locally: provisioning server create --check # 4. Deploy to dev: provisioning server create # 5. Run tests: provisioning taskserv create --check # 6. Clean up: provisioning delete server --yes # # ============================================================================= # DEVELOPMENT TROUBLESHOOTING # ============================================================================= # # Common Development Issues: # ------------------------- # # 1. SOPS Key Issues: # - Check key paths in sops.key_search_paths # - Verify SOPS_AGE_KEY_FILE environment variable # - Test: sops -d path/to/encrypted/file # # 2. Path Configuration: # - Verify paths.base points to correct directory # - Check file permissions # - Test: provisioning validate config # # 3. Provider Authentication: # - Check cloud provider credentials # - Verify API endpoints # - Test: provisioning providers # # 4. Debug Output Not Showing: # - Ensure debug.enabled = true # - Check debug.log_level setting # - Verify no_terminal = false # # 5. Performance Issues: # - Reduce parallel_operations # - Enable caching # - Check timeout_seconds setting