rdev/tests/e2e/docker-compose.yaml
jordan 72d16929ca feat: Implement hexagonal architecture with services, webhooks, queue, and telemetry
Major refactoring to hexagonal (ports & adapters) architecture:

- Add service layer (apikey_service, project_service) for business logic
- Add webhook system with dispatcher and delivery tracking
- Add command queue with priority-based processing
- Add rate limiting with sliding window algorithm
- Add audit logging for command execution
- Add OpenTelemetry integration (traces, metrics, spans)
- Add circuit breaker for fault tolerance
- Add cached repository wrapper for performance
- Add comprehensive validation package
- Add Kubernetes client integration for pod management
- Add database migrations (allowed_ips, audit_log, rate_limiting, queue, webhooks)
- Add network policy and PodDisruptionBudget for k8s
- Remove legacy executor and projects/registry packages
- Untrack secrets.yaml (now managed via envault)
- Add coverage.out to .gitignore
- Add e2e test infrastructure with docker-compose
- Add comprehensive documentation (API, architecture, operations, plans)
- Add golangci-lint config and pre-commit hook

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 19:57:46 -07:00

44 lines
962 B
YAML

services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: testuser
POSTGRES_PASSWORD: testpass
POSTGRES_DB: rdev_test
ports:
- "5434:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U testuser -d rdev_test"]
interval: 2s
timeout: 5s
retries: 5
rdev-api:
build:
context: ../..
dockerfile: tests/e2e/Dockerfile
environment:
PORT: "8080"
DB_HOST: postgres
DB_PORT: "5432"
DB_USER: testuser
DB_PASSWORD: testpass
DB_NAME: rdev_test
DB_SSL_MODE: disable
RDEV_ADMIN_KEY: test-admin-key-12345
K8S_NAMESPACE: rdev-test
ports:
- "8080:8080"
depends_on:
postgres:
condition: service_healthy
healthcheck:
test: ["CMD", "wget", "-q", "-O-", "http://localhost:8080/health"]
interval: 2s
timeout: 5s
retries: 10
networks:
default:
name: rdev-e2e-test