DEVOPS-C-01: Replace hardcoded :latest with IMAGE_TAG placeholder in all 8
production K8s manifests. Update deploy-production.yml to sed-replace
IMAGE_TAG with commit SHA before kubectl apply (remove now-redundant
kubectl set image step).
DEVOPS-C-02: Configure Alertmanager — create alertmanager.yml with Slack +
email receivers (critical/warning/infra routes, inhibition rules). Add
alertmanager:v0.27.0 service to both docker-compose.observability.yml and
deployments/local/docker-compose.yml. Enable prometheus.yml target
(alertmanager:9093).
DEVOPS-C-03: Remove :latest from docker-build.yml main branch push. Now
only SHA tag is pushed for main; :staging+SHA for develop.
DEVOPS-C-04: Add 4 mkt-* services to deployments/local/docker-compose.yml
with unique host ports (facebook:5021, whatsapp:5022, x:5023, zalo:5024)
to eliminate port 5000 conflicts. Add corresponding Traefik routers and
load-balancer entries in infra/traefik/dynamic/routes.yml
(/api/v1/mkt/{facebook,whatsapp,x,zalo}).
Co-Authored-By: Paperclip <noreply@paperclip.ing>
Traefik Configuration
Traefik reverse proxy and load balancer configuration.
Files
traefik.yml- Static configurationdynamic/routes.yml- HTTP routing rulesdynamic/middlewares.yml- Middleware definitions (CORS, rate limiting, security headers)
Usage
Traefik will automatically discover services via Docker labels or file-based configuration.
Routes
/api/v1/auth/*-> Auth Service/api/v1/users/*-> Auth Service
Middlewares
secure-headers- Security headerscors- CORS configurationauth-ratelimit- Rate limiting for auth endpointscompress- Response compression