provisioning/config-examples/config.dev.toml

351 lines
10 KiB
TOML
Raw Normal View History

# 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