6.4 KiB
Demo Nginx Documentation
Документация для demo-nginx deployment с автоматическим и ручным rollback.
📚 Available Documentation
ROLLBACK_MANUAL.md
Comprehensive Manual Rollback Guide
Полная документация по функции ручного rollback:
- 3 способа rollback (IMAGE_TAG, REVISION, GIT_COMMIT)
- Setup guide
- Troubleshooting со всеми fixes
- Best practices
- Examples
- FAQ
When to use: Нужна детальная информация или troubleshooting
ROLLBACK_QUICK_REF.md
Quick Reference Card
Краткая справка для быстрого использования:
- Quick start (2 минуты)
- 3 способа rollback
- Emergency procedure
- Verification commands
- Checklist
When to use: Быстрый rollback в production
🎯 Quick Links
Rollback Feature
- Full Guide: ROLLBACK_MANUAL.md
- Quick Ref: ROLLBACK_QUICK_REF.md
- Jenkinsfile: Jenkinsfile.rollback
- CI/CD Guide: ../../../CICD_GUIDE.md
Related Resources
- Jenkins RBAC: apps/jenkins/rbac.yaml
- Deployment: deployment.yaml
- Main CI/CD: Jenkinsfile
🚀 Quick Start
Manual Rollback (2 minutes)
1. Jenkins → demo-nginx-rollback
2. IMAGE_TAG + main-21
3. SKIP_HEALTH_CHECK: true
4. Build
See ROLLBACK_QUICK_REF.md for details.
Emergency Rollback (30 seconds)
kubectl rollout undo deployment/demo-nginx -n demo-app
📊 Features Summary
Manual Rollback
✅ 3 rollback methods (IMAGE_TAG, REVISION, GIT_COMMIT)
✅ GitOps sync (auto-commit to Git)
✅ Zero downtime (rolling updates)
✅ DRY_RUN mode (safe testing)
✅ Full RBAC permissions
✅ Input validation (auto-trim)
✅ Retry logic (5 attempts)
⚠️ Health check optional (use SKIP_HEALTH_CHECK=true)
Automatic Rollback
✅ Triggered on deployment failure
✅ Saves previous state
✅ Kubernetes rollback
✅ Git revert
✅ Health checks
✅ Timeout protection
🐛 All Fixes Applied
| # | Issue | Fix | Status | Doc |
|---|---|---|---|---|
| 1 | Container name | Use nginx |
✅ | Link |
| 2 | Whitespace | Auto-trim | ✅ | Link |
| 3 | RBAC | pods/exec perm | ✅ | Link |
| 4 | Health timing | SKIP option | ⚠️ | Link |
| 5 | Bash loop | Explicit list | ✅ | Link |
💡 Recommended Reading Order
For New Users:
- Start → ROLLBACK_QUICK_REF.md
- Practice → Follow quick start
- Deep Dive → ROLLBACK_MANUAL.md
For Troubleshooting:
- Check → ROLLBACK_MANUAL.md - Troubleshooting
- Verify → ROLLBACK_QUICK_REF.md - Verification
- Support → ROLLBACK_MANUAL.md - Support
For Emergency:
- Fast → ROLLBACK_QUICK_REF.md - Emergency
- Alternative → ROLLBACK_MANUAL.md - Emergency
🎓 Key Concepts
Rollback Methods Comparison
| Method | Speed | Precision | Use Case |
|---|---|---|---|
| IMAGE_TAG | ⚡⚡⚡ | 🎯 High | Known build number |
| REVISION | ⚡⚡ | 🎯 Medium | Recent rollback |
| GIT_COMMIT | ⚡ | 🎯🎯 High | Exact code state |
When to Use What
Use IMAGE_TAG when:
- You know the build number (main-21)
- Quick rollback needed
- Most common scenario
Use REVISION_NUMBER when:
- Need to go back N versions
- Don't remember exact tag
- Working with kubectl history
Use GIT_COMMIT when:
- Need exact code state
- Multiple changes in one build
- Precise rollback required
📈 Monitoring
Check Rollback Status
# Deployment status
kubectl get deployment demo-nginx -n demo-app
# Pod status
kubectl get pods -n demo-app -l app=demo-nginx
# Rollout history
kubectl rollout history deployment/demo-nginx -n demo-app
# ArgoCD status
kubectl get application demo-nginx -n argocd
Grafana Queries
# Rollback count
sum(increase(deployment_rollback_total[1h])) by (deployment)
# Rollback rate
rate(deployment_rollback_total[5m])
❓ FAQ
Q: Какой метод rollback использовать?
A: Для большинства случаев используй IMAGE_TAG - самый быстрый и простой.
Q: Health check всегда падает, это баг?
A: Нет, это timing issue во время rolling update. Используй SKIP_HEALTH_CHECK: true и проверь вручную через минуту.
Q: Как быстро откатиться в emergency?
A: Используй kubectl rollout undo (30 секунд) или Jenkins с SKIP_HEALTH_CHECK (2 минуты).
Q: Где полная документация?
A: ROLLBACK_MANUAL.md - comprehensive guide со всеми details.
🆘 Support
Need Help?
- Check ROLLBACK_MANUAL.md - Troubleshooting
- Review ROLLBACK_MANUAL.md - FAQ
- Check Jenkins console output
- Verify RBAC permissions
- Review pod status and logs
Still stuck?
- Jenkins logs: Jenkins → Build → Console Output
- K8s events:
kubectl get events -n demo-app - Pod logs:
kubectl logs -n demo-app -l app=demo-nginx
📝 Documentation Updates
Last Updated: 2026-01-06
Version: 1.0
Status: Production Ready ✅
Recent Changes:
- ✅ Added comprehensive manual rollback guide
- ✅ Added quick reference card
- ✅ Documented all 5 fixes
- ✅ Added examples and best practices
- ✅ Production-ready feature
Ready to rollback? Start with Quick Reference! 🚀