fix: I dunno, I'm making git server changes
This commit is contained in:
116
config/traefik/dynamic/blue-green.yml
Normal file
116
config/traefik/dynamic/blue-green.yml
Normal file
@@ -0,0 +1,116 @@
|
||||
# Traefik Dynamic Configuration for Blue-Green Deployment
|
||||
# This file is watched by Traefik and reloaded on changes
|
||||
# Traffic weights are updated by scripts/ci/switch-traffic.sh
|
||||
#
|
||||
# Current active stack is determined by weights:
|
||||
# - blue=100, green=0 -> Blue is active
|
||||
# - blue=0, green=100 -> Green is active
|
||||
# - Gradual: 75/25, 50/50, 25/75 for canary deployments
|
||||
|
||||
http:
|
||||
# ========================================
|
||||
# Routers - Route traffic to weighted services
|
||||
# ========================================
|
||||
routers:
|
||||
# Frontend router with weighted service
|
||||
mvp-frontend-bluegreen:
|
||||
rule: "(Host(`motovaultpro.com`) || Host(`www.motovaultpro.com`)) && !PathPrefix(`/api`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
service: mvp-frontend-weighted
|
||||
priority: 10
|
||||
|
||||
# Backend API router with weighted service
|
||||
mvp-backend-bluegreen:
|
||||
rule: "(Host(`motovaultpro.com`) || Host(`www.motovaultpro.com`)) && PathPrefix(`/api`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
service: mvp-backend-weighted
|
||||
priority: 20
|
||||
|
||||
# Health check router (always routes to active stack)
|
||||
mvp-backend-health:
|
||||
rule: "(Host(`motovaultpro.com`) || Host(`www.motovaultpro.com`)) && Path(`/api/health`)"
|
||||
entryPoints:
|
||||
- websecure
|
||||
tls:
|
||||
certResolver: letsencrypt
|
||||
service: mvp-backend-weighted
|
||||
priority: 30
|
||||
|
||||
# ========================================
|
||||
# Services - Weighted load balancers
|
||||
# ========================================
|
||||
services:
|
||||
# Frontend weighted service
|
||||
# Weights are updated by switch-traffic.sh
|
||||
mvp-frontend-weighted:
|
||||
weighted:
|
||||
services:
|
||||
- name: mvp-frontend-blue-svc
|
||||
weight: 100
|
||||
- name: mvp-frontend-green-svc
|
||||
weight: 0
|
||||
healthCheck: {}
|
||||
|
||||
# Backend weighted service
|
||||
# Weights are updated by switch-traffic.sh
|
||||
mvp-backend-weighted:
|
||||
weighted:
|
||||
services:
|
||||
- name: mvp-backend-blue-svc
|
||||
weight: 100
|
||||
- name: mvp-backend-green-svc
|
||||
weight: 0
|
||||
healthCheck: {}
|
||||
|
||||
# Individual stack services
|
||||
mvp-frontend-blue-svc:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://mvp-frontend-blue:3000"
|
||||
healthCheck:
|
||||
path: /
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
passHostHeader: true
|
||||
|
||||
mvp-frontend-green-svc:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://mvp-frontend-green:3000"
|
||||
healthCheck:
|
||||
path: /
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
passHostHeader: true
|
||||
|
||||
mvp-backend-blue-svc:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://mvp-backend-blue:3001"
|
||||
healthCheck:
|
||||
path: /health
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
passHostHeader: true
|
||||
|
||||
mvp-backend-green-svc:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://mvp-backend-green:3001"
|
||||
healthCheck:
|
||||
path: /health
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
passHostHeader: true
|
||||
|
||||
# Maintenance mode service (optional)
|
||||
mvp-maintenance:
|
||||
loadBalancer:
|
||||
servers:
|
||||
- url: "http://mvp-maintenance:80"
|
||||
Reference in New Issue
Block a user