Structure: - control-plane/: Registries, SIMCO directives, CI/CD templates - projects/: Gamilit, ERP-Suite, Trading-Platform, Betting-Analytics - shared/: Libs catalog, knowledge-base Key features: - Centralized port, domain, database, and service registries - 23 SIMCO directives + 6 fundamental principles - NEXUS agent profiles with delegation rules - Validation scripts for workspace integrity - Dockerfiles for all services - Path aliases for quick reference 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
219 lines
5.2 KiB
YAML
219 lines
5.2 KiB
YAML
# ==============================================================================
|
|
# 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
|