mirror of
https://github.com/ghndrx/k8s-game-2048.git
synced 2026-02-10 06:45:07 +00:00
3.7 KiB
3.7 KiB
Branch Strategy & Deployment Flow
Branch Structure
master (production)
├── staging (staging environment)
└── develop (development environment)
├── feature/feature-name
├── feature/another-feature
└── hotfix/urgent-fix
Deployment Flow
🟢 Development Environment
- Branch:
develop - Domain:
2048-dev.wa.darknex.us - Trigger: Push to
developbranch - Auto-deploy: ✅ Yes
- Purpose: Latest development features, may be unstable
🟡 Staging Environment
- Branch:
staging - Domain:
2048-staging.wa.darknex.us - Trigger: Push to
stagingbranch - Auto-deploy: ✅ Yes
- Purpose: Pre-production testing, stable features
🔴 Production Environment
- Branch:
master - Domain:
2048.wa.darknex.us - Trigger: Push to
masterbranch OR GitHub Release - Auto-deploy: ✅ Yes
- Purpose: Live production environment
Workflow Examples
Adding a New Feature
# 1. Start from develop
git checkout develop
git pull origin develop
# 2. Create feature branch
git checkout -b feature/awesome-new-feature
# 3. Make changes and commit
git add .
git commit -m "feat: add awesome new feature"
# 4. Push and create PR to develop
git push origin feature/awesome-new-feature
# Create PR: feature/awesome-new-feature → develop
Promoting to Staging
# 1. Merge feature to develop (via PR)
# 2. Test in dev environment: 2048-dev.wa.darknex.us
# 3. Promote to staging
git checkout staging
git pull origin staging
git merge develop
git push origin staging
# 4. Test in staging: 2048-staging.wa.darknex.us
Deploying to Production
# 1. After staging testing passes
git checkout master
git pull origin master
git merge staging
git push origin master
# 2. Optionally create a release tag
git tag -a v1.0.0 -m "Release version 1.0.0"
git push origin v1.0.0
# 3. Production deploys automatically: 2048.wa.darknex.us
Hotfix Flow
# 1. Create hotfix from master
git checkout master
git pull origin master
git checkout -b hotfix/critical-bug-fix
# 2. Fix the issue
git add .
git commit -m "fix: resolve critical bug"
# 3. Push and create PR to master
git push origin hotfix/critical-bug-fix
# Create PR: hotfix/critical-bug-fix → master
# 4. After merge, also merge back to develop
git checkout develop
git merge master
git push origin develop
CI/CD Pipeline
Development Pipeline (develop branch)
- ✅ Build Docker image
- ✅ Push to GHCR with
develop-{sha}tag - ✅ Deploy to dev namespace
- ✅ Run basic health checks
Staging Pipeline (staging branch)
- ✅ Build Docker image
- ✅ Push to GHCR with
staging-{sha}tag - ✅ Deploy to staging namespace
- ✅ Run smoke tests
- ✅ Health check staging URL
Production Pipeline (master branch)
- ✅ Build Docker image
- ✅ Push to GHCR with version tag
- ✅ Blue-green deployment to production
- ✅ Gradual traffic shifting (10% → 50% → 100%)
- ✅ Production health checks
- ✅ Rollback capability
Environment Configuration
| Environment | Namespace | Min Scale | Max Scale | Scale Down Delay |
|---|---|---|---|---|
| Development | game-2048-dev |
0 | 10 | 30s |
| Staging | game-2048-staging |
0 | 20 | 60s |
| Production | game-2048-prod |
0 | 50 | 300s |
Monitoring & Alerts
- Development: Basic logging, fast iteration
- Staging: Full monitoring, performance testing
- Production: Full observability, alerting, SLA monitoring
Security
- All images are scanned for vulnerabilities
- Secrets managed via GitHub Secrets
- RBAC configured per namespace
- TLS termination at Kourier gateway
- Auto-TLS via cert-manager and Let's Encrypt