# ============================================================================== # ENVIRONMENTS MANIFEST - Control Plane # ============================================================================== # Proposito: Define los ambientes disponibles y su configuracion # Mantenido por: DevOps-Agent # Actualizado: 2025-12-18 # ============================================================================== version: "1.0.0" updated: "2025-12-18" # ------------------------------------------------------------------------------ # AMBIENTES # ------------------------------------------------------------------------------ environments: # ============================================================================ # LOCAL - Desarrollo individual # ============================================================================ local: description: "Ambiente de desarrollo local" type: "development" access: "individual" infrastructure: docker: network_suffix: "_local" compose_file: "docker-compose.yml" traefik: enabled: true dashboard: true insecure: true defaults: log_level: "debug" ssl: false hot_reload: true seed_data: true domains: base: "localhost" pattern: "{service}.{project}.localhost" resources: cpu_limit: "1" memory_limit: "2Gi" # ============================================================================ # DEVELOPMENT - Integracion # ============================================================================ development: description: "Ambiente de desarrollo compartido" type: "development" access: "team" infrastructure: docker: network_suffix: "_dev" compose_file: "docker-compose.yml" compose_override: "docker-compose.dev.yml" traefik: enabled: true dashboard: true insecure: false kubernetes: enabled: false defaults: log_level: "debug" ssl: true ssl_provider: "letsencrypt-staging" hot_reload: false seed_data: true domains: base: "dev.example.com" pattern: "{service}.{project}.dev.example.com" resources: cpu_limit: "2" memory_limit: "4Gi" replicas: 1 ci_cd: auto_deploy: true branch: "develop" # ============================================================================ # STAGING - Pre-produccion # ============================================================================ staging: description: "Ambiente de pre-produccion" type: "staging" access: "qa-team" infrastructure: docker: network_suffix: "_staging" kubernetes: enabled: true namespace: "staging" traefik: enabled: true dashboard: false defaults: log_level: "info" ssl: true ssl_provider: "letsencrypt" seed_data: false domains: base: "staging.example.com" pattern: "{service}.{project}.staging.example.com" resources: cpu_limit: "2" memory_limit: "4Gi" replicas: 2 ci_cd: auto_deploy: false branch: "release/*" approval_required: true # ============================================================================ # PRODUCTION - Produccion # ============================================================================ production: description: "Ambiente de produccion" type: "production" access: "restricted" infrastructure: kubernetes: enabled: true namespace: "production" cluster: "prod-cluster" traefik: enabled: true dashboard: false defaults: log_level: "warn" ssl: true ssl_provider: "letsencrypt" hsts: true seed_data: false domains: base: "example.com" pattern: "{service}.{project}.example.com" resources: cpu_request: "500m" cpu_limit: "2" memory_request: "512Mi" memory_limit: "2Gi" replicas: min: 2 max: 10 ci_cd: auto_deploy: false branch: "main" approval_required: true approvers: - "Tech-Leader" - "DevOps-Lead" backup: enabled: true frequency: "daily" retention: "30d" monitoring: enabled: true alerting: true pagerduty: true # ------------------------------------------------------------------------------ # PROMOCION ENTRE AMBIENTES # ------------------------------------------------------------------------------ promotion: flow: - from: "local" to: "development" trigger: "push to develop" - from: "development" to: "staging" trigger: "create release branch" requires: "tests_pass" - from: "staging" to: "production" trigger: "manual approval" requires: - "qa_approval" - "tech_lead_approval" # ------------------------------------------------------------------------------ # VARIABLES POR AMBIENTE # ------------------------------------------------------------------------------ environment_variables: all: - NODE_ENV - LOG_LEVEL - JWT_SECRET - DATABASE_URL development: - DEBUG - SEED_DATA production: - SENTRY_DSN - NEW_RELIC_KEY