veza/config/incus/IMPROVEMENTS.md
senke 1ed6e7f07b state-ownership: delete unused optimisticStoreUpdates.ts file
- Deleted apps/web/src/utils/optimisticStoreUpdates.ts (unused file)
- File was unused - no imports found in codebase
- Mutations already use React Query's onMutate pattern
- No TypeScript errors after deletion
- Actions 4.4.1.2 and 4.4.1.3 complete
2026-01-15 19:26:53 +01:00

179 lines
5.5 KiB
Markdown

# Améliorations du Déploiement Incus
## Résumé des Améliorations
Ce document décrit toutes les améliorations apportées au déploiement Incus pour le rendre entièrement fonctionnel et robuste.
## 1. Configuration Réseau Améliorée
### Problèmes résolus
- ✅ Configuration DNS persistante dans les conteneurs
- ✅ Configuration automatique des routes par défaut
- ✅ Activation du DHCP et DNS managé dans le réseau Incus
- ✅ Configuration réseau persistante via systemd-resolved
### Améliorations
- Configuration DNS via `/etc/systemd/resolved.conf.d/dns_servers.conf` pour persistance
- Configuration DNS directe dans `/etc/resolv.conf` pour effet immédiat
- Vérification automatique de la connectivité réseau après configuration
- Support de serveurs DNS multiples (8.8.8.8, 1.1.1.1)
## 2. Script de Build Amélioré
### Problèmes résolus
- ✅ Meilleure gestion des erreurs de compilation
- ✅ Support amélioré de la cross-compilation Rust
- ✅ Logs de build sauvegardés pour débogage
- ✅ Continuation du build même si un service échoue
### Améliorations
- Gestion d'erreurs avec `set -euo pipefail`
- Logs de build sauvegardés dans `/tmp/` pour analyse
- Détection automatique de la disponibilité de la cross-compilation
- Compteur d'erreurs pour afficher le nombre de services ayant échoué
- Messages d'erreur plus informatifs avec chemins de logs
## 3. Script de Déploiement Amélioré
### Problèmes résolus
- ✅ Configuration réseau automatique et persistante
- ✅ Vérification de l'état des conteneurs avant configuration
- ✅ Démarrage automatique des services après déploiement
- ✅ Vérifications de santé après déploiement
- ✅ Gestion robuste des erreurs avec continuation
### Améliorations
- Attente intelligente du démarrage des conteneurs (vérification systemd)
- Configuration réseau complète (IP, route, DNS) en une seule passe
- Vérification de connectivité Internet après configuration réseau
- Démarrage automatique des services systemd après déploiement
- Vérification de l'état des services après démarrage
- Messages d'erreur informatifs avec commandes de débogage
## 4. Configuration Réseau Incus
### Améliorations du Makefile
- Configuration automatique du DHCP dans le réseau
- Configuration automatique du DNS managé
- Vérification et mise à jour de la configuration réseau existante
- Vérification des devices du profil avant ajout
### Configuration réseau
```bash
ipv4.address=10.10.10.1/24
ipv4.nat=true
ipv4.dhcp=true
dns.mode=managed
dns.nameservers=8.8.8.8,1.1.1.1
```
## 5. Commandes de Statut et Vérification
### Nouvelle commande `make incus-status`
- Affichage de l'état de tous les conteneurs
- Statut détaillé de chaque service systemd
- Indicateurs visuels (✅/⚠️) pour l'état des services
- Format lisible et coloré
### Script de vérification amélioré
- Tests de connectivité réseau entre conteneurs
- Tests de connectivité Internet
- Vérification des endpoints de santé des services
- Messages d'erreur plus informatifs
- Gestion des timeouts pour éviter les blocages
## 6. Gestion des Erreurs
### Améliorations générales
- Utilisation de `set -euo pipefail` pour détection d'erreurs stricte
- Messages d'erreur informatifs avec suggestions de correction
- Continuation du déploiement même si un service échoue
- Logs sauvegardés pour analyse post-mortem
- Vérifications de santé après chaque étape critique
## 7. Démarrage Automatique des Services
### Améliorations
- Tous les services démarrent automatiquement après déploiement
- Vérification de l'état des services après démarrage
- Messages d'avertissement si un service ne démarre pas
- Commandes suggérées pour déboguer les problèmes
## 8. Configuration Persistante
### Améliorations
- Configuration DNS persistante via systemd-resolved
- Configuration réseau persistante dans les conteneurs
- Routes configurées automatiquement au démarrage
- IP statiques configurées via Incus et dans le conteneur
## Utilisation
### Déploiement complet
```bash
make deploy-incus
```
### Vérification du statut
```bash
make incus-status
```
### Vérification détaillée
```bash
./config/incus/verify-deployment.sh
```
### Déploiement d'un service spécifique
```bash
./config/incus/deploy-service-native.sh backend-api
```
## Résolution de Problèmes
### Service ne démarre pas
```bash
# Vérifier les logs
incus exec veza-backend-api -- journalctl -u veza-backend-api -n 50
# Vérifier le statut
incus exec veza-backend-api -- systemctl status veza-backend-api
```
### Problème de réseau
```bash
# Vérifier la configuration réseau
incus network show veza-network
# Tester la connectivité
incus exec veza-backend-api -- ping -c 2 8.8.8.8
incus exec veza-backend-api -- ping -c 2 10.10.10.10
```
### Rebuild complet
```bash
# Nettoyer
make incus-stop-all
for container in $(incus list -c n --format csv | grep veza-); do
incus delete $container --force
done
# Rebuild et redéployer
make deploy-incus
```
## Notes Techniques
- Les conteneurs utilisent Ubuntu 22.04 comme image de base
- Tous les services sont gérés via systemd
- Le réseau utilise des adresses IP statiques pour chaque service
- Le DNS est configuré à la fois via Incus et dans les conteneurs
- Les routes sont configurées automatiquement au démarrage
## Prochaines Améliorations Possibles
- [ ] Support de la haute disponibilité
- [ ] Backup automatique des configurations
- [ ] Monitoring automatique des services
- [ ] Auto-scaling basé sur la charge
- [ ] Support de plusieurs environnements (dev, staging, prod)