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>
7.1 KiB
7.1 KiB
FASE 3 - CHECKLIST DE VALIDACION
Fase: 3 - Shared Infrastructure Estado: Pendiente Validador: DevOps-Agent + Tech-Leader
CHECKLIST DE ESTRUCTURA
Carpetas
[ ] control-plane/devtools/docker/networks/ existe
[ ] control-plane/devtools/docker/traefik/ existe
[ ] control-plane/devtools/docker/traefik/dynamic/ existe
[ ] control-plane/devtools/docker/templates/ existe
[ ] control-plane/devtools/configs/env/ existe
[ ] control-plane/devtools/scripts/bootstrap/ existe
CHECKLIST DE DOCKER NETWORKS
networks.yml
[ ] Archivo existe en docker/networks/
[ ] Define red infra_shared
[ ] Define redes por proyecto:
[ ] gamilit_{env} para todos los ambientes
[ ] erp_{env} para todos los ambientes
[ ] trading_{env} para todos los ambientes
[ ] betting_{env} para todos los ambientes
[ ] Es YAML valido
create-networks.sh
[ ] Archivo existe
[ ] Es ejecutable (chmod +x)
[ ] Crea red infra_shared
[ ] Crea redes por proyecto y ambiente
[ ] Es idempotente (no falla si red existe)
[ ] Ejecuta sin errores
Validacion funcional
# Ejecutar script
./create-networks.sh
# Verificar redes creadas
docker network ls | grep infra_shared
docker network ls | grep gamilit_local
docker network ls | grep erp_local
CHECKLIST DE TRAEFIK
traefik.yml
[ ] Archivo existe en docker/traefik/
[ ] Define entryPoints (web:80, websecure:443)
[ ] Configura provider Docker
[ ] Configura provider File para dynamic config
[ ] exposedByDefault: false
[ ] Dashboard habilitado
docker-compose.traefik.yml
[ ] Archivo existe
[ ] Usa imagen traefik:v2.x
[ ] Expone puertos 80, 443, 8080
[ ] Monta traefik.yml
[ ] Monta directorio dynamic/
[ ] Conecta a red infra_shared
dynamic/routers.yml
[ ] Archivo existe
[ ] Define routers para gamilit (api, web)
[ ] Define routers para erp (api, web)
[ ] Routers usan dominios de domains.registry.yml
[ ] EntryPoints correctos
dynamic/middlewares.yml
[ ] Archivo existe
[ ] Define middleware rate-limit
[ ] Define middleware cors-headers
[ ] Define middleware security-headers
Validacion funcional
# Levantar Traefik
docker-compose -f docker-compose.traefik.yml up -d
# Verificar dashboard
curl -s http://localhost:8080/api/overview | jq .
# Verificar que esta escuchando
curl -I http://localhost:80
CHECKLIST DE TEMPLATES
docker-compose.base.yml
[ ] Archivo existe en docker/templates/
[ ] Define x-logging anchor
[ ] Define x-healthcheck anchor
[ ] Incluye comentarios de uso
docker-compose.backend.yml
[ ] Archivo existe
[ ] Usa expose (NO ports)
[ ] Tiene labels de Traefik
[ ] Conecta a redes: {proyecto}_{env} e infra_shared
[ ] Redes son external: true
[ ] Tiene healthcheck configurado
[ ] Tiene logging configurado
[ ] Placeholders documentados:
[ ] {{SERVICE_NAME}}
[ ] {{PORT}}
[ ] {{DOMAIN}}
[ ] {{PROJECT}}
docker-compose.frontend.yml
[ ] Archivo existe
[ ] Similar estructura a backend
[ ] Placeholders documentados
docker-compose.fullstack.yml
[ ] Archivo existe
[ ] Combina backend + frontend
[ ] Dependencias entre servicios definidas
CHECKLIST DE ENVIRONMENT
.env.template
[ ] Archivo existe en configs/env/
[ ] Variables de ambiente (NODE_ENV, ENV)
[ ] Variables de BD (host, port, name, user, password)
[ ] Variables de Redis
[ ] Variables de JWT
[ ] Variables de logging
[ ] Comentarios explicativos
.env.local.template
[ ] Archivo existe
[ ] Valores apropiados para desarrollo local
[ ] Passwords de ejemplo (no reales)
CHECKLIST DE SCRIPTS
init-workspace.sh
[ ] Archivo existe en scripts/bootstrap/
[ ] Es ejecutable
[ ] Verifica prerequisitos (Docker)
[ ] Crea redes Docker
[ ] Levanta Traefik
[ ] Muestra instrucciones post-setup
init-project.sh
[ ] Archivo existe
[ ] Es ejecutable
[ ] Acepta parametros (proyecto, tipo)
[ ] Genera docker-compose desde template
[ ] Genera .env desde template
[ ] Verifica que red existe
VALIDACION INTEGRADA
#!/bin/bash
# validate-phase3.sh
CONTROL_PLANE="/home/adrian/Documentos/workspace-v1/control-plane"
echo "=== Validando Fase 3: Shared Infrastructure ==="
# 1. Verificar estructura
echo "Verificando estructura..."
REQUIRED_DIRS=(
"devtools/docker/networks"
"devtools/docker/traefik"
"devtools/docker/traefik/dynamic"
"devtools/docker/templates"
"devtools/configs/env"
"devtools/scripts/bootstrap"
)
for dir in "${REQUIRED_DIRS[@]}"; do
if [ -d "$CONTROL_PLANE/$dir" ]; then
echo " [OK] $dir/"
else
echo " [FAIL] $dir/ no existe"
fi
done
# 2. Verificar archivos clave
echo ""
echo "Verificando archivos..."
REQUIRED_FILES=(
"devtools/docker/networks/networks.yml"
"devtools/docker/networks/create-networks.sh"
"devtools/docker/traefik/traefik.yml"
"devtools/docker/traefik/docker-compose.traefik.yml"
"devtools/docker/templates/docker-compose.backend.yml"
"devtools/configs/env/.env.template"
"devtools/scripts/bootstrap/init-workspace.sh"
)
for file in "${REQUIRED_FILES[@]}"; do
if [ -f "$CONTROL_PLANE/$file" ]; then
echo " [OK] $file"
else
echo " [FAIL] $file no existe"
fi
done
# 3. Verificar scripts ejecutables
echo ""
echo "Verificando permisos..."
SCRIPTS=(
"devtools/docker/networks/create-networks.sh"
"devtools/scripts/bootstrap/init-workspace.sh"
)
for script in "${SCRIPTS[@]}"; do
if [ -x "$CONTROL_PLANE/$script" ]; then
echo " [OK] $script es ejecutable"
else
echo " [FAIL] $script no es ejecutable"
fi
done
# 4. Verificar YAML valido
echo ""
echo "Verificando YAML..."
YAML_FILES=(
"devtools/docker/networks/networks.yml"
"devtools/docker/traefik/traefik.yml"
"devtools/docker/traefik/docker-compose.traefik.yml"
)
for file in "${YAML_FILES[@]}"; do
if python3 -c "import yaml; yaml.safe_load(open('$CONTROL_PLANE/$file'))" 2>/dev/null; then
echo " [OK] $file (YAML valido)"
else
echo " [FAIL] $file (YAML invalido)"
fi
done
echo ""
echo "=== Validacion completada ==="
CRITERIOS DE APROBACION
Para aprobar esta fase:
-
100% estructura creada
-
Networks funcionales
- Script crea redes sin errores
- Redes listables con docker network ls
-
Traefik funcional
- Levanta con docker-compose
- Dashboard accesible en :8080
- Routing funciona (con servicios de prueba)
-
Templates usables
- Copiar template
- Reemplazar placeholders
- docker-compose up funciona
-
Scripts funcionales
- init-workspace.sh ejecuta sin errores
- init-project.sh genera archivos correctamente
SIGUIENTE FASE
Una vez aprobada la Fase 3, proceder a:
Fase 4: Migracion de Proyectos
- Comenzar con Gamilit (proyecto modelo)
- Crear estructura en repo independiente
- Crear service descriptors
- Aplicar templates de docker-compose
Validador: DevOps-Agent + Tech-Leader Fecha de Validacion: _________ Estado: [ ] Aprobado [ ] Rechazado Notas: _________