| name | upgrade-featbit-chart |
| description | Guides safe FeatBit Helm chart upgrades on Kubernetes and AKS. Use when user asks to upgrade FeatBit, update FeatBit version, deploy new FeatBit release, check FeatBit migrations, or troubleshoot FeatBit upgrade issues. |
| license | MIT |
| metadata | {"author":"FeatBit","version":"1.0.0","category":"kubernetes-deployment"} |
Upgrade FeatBit Deployment
Guides safe, three-step upgrades of FeatBit deployments: check database migrations, test locally, deploy to production.
Quick Start
ls migration/ && cat migration/RELEASE-v<version>.md
kubectl config use-context docker-desktop
helm upgrade featbit-test charts/featbit \
-f charts/featbit/examples/standard/featbit-standard-local-pg.yaml
az aks get-credentials --resource-group <rg> --name <cluster>
helm upgrade <release> featbit/featbit \
-f charts/featbit/examples/aks/featbit-aks-values.local.yaml \
--namespace <ns>
Three-Step Upgrade Workflow
Step 1: Check Database Migrations
⚠️ CRITICAL: FeatBit does NOT auto-execute migrations.
ls migration/
cat migration/RELEASE-v<target-version>.md
Actions required:
📄 Complete Guide: references/database-migrations.md
Step 2: Test Locally on Docker Desktop
Test upgrades locally before production:
kubectl config use-context docker-desktop
helm upgrade featbit-test charts/featbit \
-f charts/featbit/examples/standard/featbit-standard-local-pg.yaml \
--dry-run
helm upgrade featbit-test charts/featbit \
-f charts/featbit/examples/standard/featbit-standard-local-pg.yaml
kubectl get pods -w
Verification:
kubectl get pods
kubectl logs -l app.kubernetes.io/name=featbit-api --tail=50
kubectl port-forward service/featbit-ui 8081:8081
curl http://localhost:5000/health
📄 Complete Guide: references/local-testing-guide.md
Step 3: Deploy to Production (AKS)
After successful local testing:
az login
az aks get-credentials --resource-group <rg> --name <cluster>
kubectl config use-context <aks-context>
helm list -A | grep featbit
helm repo update featbit
helm upgrade <release-name> featbit/featbit \
-f charts/featbit/examples/aks/featbit-aks-values.local.yaml \
--namespace <namespace> \
--dry-run
helm upgrade <release-name> featbit/featbit \
-f charts/featbit/examples/aks/featbit-aks-values.local.yaml \
--namespace <namespace>
kubectl get pods -n <namespace> -w
Post-upgrade verification:
kubectl rollout status deployment/featbit-api -n <ns>
curl https://api.yourdomain.com/health
curl https://els.yourdomain.com/health
📄 Complete Guide: references/aks-deployment-guide.md
Critical Concepts
Database Migrations:
- NOT automated by Helm chart
- Located in
migration/RELEASE-v{version}.md
- Must be executed manually before upgrade
- Always backup database first
Chart Sources:
- Local testing:
charts/featbit (local path)
- AKS/Production:
featbit/featbit (published from Helm repo)
- Never mix local and published charts
External URLs (Production):
apiExternalUrl: "https://api.featbit.com"
evaluationServerExternalUrl: "https://els.featbit.com"
⚠️ Without these, client SDKs cannot connect.
Pre-Upgrade Checklist
Database:
Kubernetes:
Configuration:
Operational:
Troubleshooting
Quick Rollback
helm history <release> -n <namespace>
helm rollback <release> <revision> -n <namespace>
Debug Commands
kubectl get pods -n <namespace>
kubectl describe pod <pod-name> -n <namespace>
kubectl logs <pod-name> -n <namespace>
kubectl get events -n <namespace> --sort-by='.lastTimestamp'
📄 Complete Guide: references/troubleshooting.md
Common Issues
| Issue | Quick Fix |
|---|
| Migration not executed | Execute migration scripts manually |
| Pods not starting | Check resources: kubectl describe pod |
| Connection errors | Verify ConfigMaps and secrets |
| Ingress not working | Check ingress controller and TLS |
| Database connection failure | Verify firewall rules and credentials |
See references/troubleshooting.md for detailed solutions.
Best Practices
- ✅ Always test locally first - Catch issues early
- ✅ Use dry-run extensively - Simulate before applying
- ✅ Review migrations - Understand database changes
- ✅ Backup before upgrade - Database and configurations
- ✅ Monitor during upgrade - Watch logs and status
- ✅ Have rollback plan - Note current revision
- ✅ Staged rollout - Dev → Staging → Production
- ✅ External URLs - Required for production
- ✅ Managed services - Use external providers for production
- ✅ Document changes - Track customizations
Reference Guides
Tools Required
- Helm >= 3.7.0
- kubectl >= 1.23
- Azure CLI (for AKS)
- Docker Desktop with Kubernetes (for local testing)
Support