skills/blue-green-deployment-orchestrator/SKILL.md
Blue-green and canary deployment orchestrator with traffic shifting and automated rollback. Activate on: blue-green deployment, canary release, rolling deployment, traffic shifting, rollback automation, progressive delivery, Argo Rollouts, Flagger. NOT for: K8s manifest generation (use kubernetes-manifest-generator), CI/CD pipeline setup (use github-actions-pipeline-builder), monitoring (use monitoring-stack-deployer).
npx skillsauth add curiositech/windags-skills blue-green-deployment-orchestratorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Expert in progressive delivery strategies — blue-green, canary, and rolling deployments with automated traffic shifting and rollback.
Activate on: "blue-green deployment", "canary release", "rolling deployment", "traffic shifting", "rollback automation", "progressive delivery", "Argo Rollouts", "Flagger", "deployment strategy"
NOT for: K8s manifests → kubernetes-manifest-generator | CI/CD pipelines → github-actions-pipeline-builder | Monitoring → monitoring-stack-deployer
| Domain | Technologies | |--------|-------------| | Controllers | Argo Rollouts 1.7, Flagger 1.38, Spinnaker | | Traffic Splitting | Istio VirtualService, Linkerd TrafficSplit, Gateway API HTTPRoute | | Analysis | Prometheus queries, Datadog metrics, CloudWatch, custom webhooks | | Strategies | Blue-green, canary (linear/exponential), A/B testing, rolling | | Platforms | Kubernetes, AWS ECS (CodeDeploy), Cloudflare Workers (gradual) |
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: api-server
spec:
replicas: 5
strategy:
canary:
canaryService: api-canary-svc
stableService: api-stable-svc
trafficRouting:
istio:
virtualService:
name: api-vsvc
steps:
- setWeight: 5 # 5% traffic to canary
- pause: { duration: 5m }
- analysis:
templates:
- templateName: error-rate-check
- setWeight: 25 # 25% if analysis passes
- pause: { duration: 10m }
- analysis:
templates:
- templateName: latency-check
- setWeight: 50 # 50%
- pause: { duration: 10m }
- setWeight: 100 # Full promotion
rollbackWindow:
revisions: 2
┌──────────────┐
│ Router │
│ (Ingress/ │
│ Gateway) │
└──────┬───────┘
│
┌────────────┼────────────┐
▼ ▼
┌────────────────┐ ┌────────────────┐
│ BLUE (active) │ │ GREEN (preview)│
│ v1.2.0 │ │ v1.3.0 │
│ 3 replicas │ │ 3 replicas │
└────────────────┘ └────────────────┘
Workflow:
1. Deploy v1.3.0 to GREEN (preview, no traffic)
2. Run smoke tests against GREEN preview URL
3. Switch router: 100% traffic BLUE → GREEN
4. Monitor for 15 minutes
5. If healthy: scale down BLUE (now standby)
6. If unhealthy: instant rollback — switch back to BLUE
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: error-rate-check
spec:
metrics:
- name: error-rate
interval: 1m
count: 5
successCondition: result[0] < 0.01 # < 1% error rate
failureLimit: 2
provider:
prometheus:
address: http://prometheus:9090
query: |
sum(rate(http_requests_total{status=~"5..",
app="{{args.service}}",
rollout_hash="{{args.canary-hash}}"}[2m]))
/
sum(rate(http_requests_total{
app="{{args.service}}",
rollout_hash="{{args.canary-hash}}"}[2m]))
[ ] Deployment strategy documented (blue-green, canary, or rolling)
[ ] Progressive delivery controller deployed (Argo Rollouts or Flagger)
[ ] Traffic splitting configured via service mesh or Gateway API
[ ] Canary analysis templates defined with Prometheus queries
[ ] Automated rollback triggers on error rate or latency degradation
[ ] Preview/canary service accessible for pre-promotion testing
[ ] Rollback tested independently (not just on failure)
[ ] Deployment takes less than 15 minutes end-to-end
[ ] Resource budget accounts for blue-green double capacity
[ ] Deployment status visible in Grafana or ArgoCD dashboard
[ ] Notification sent on promotion and rollback events
[ ] Runbook documents manual override procedures
data-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.