veza/config/incus/IMPROVEMENTS.md
senke f0ba7de543 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

5.5 KiB

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

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

make deploy-incus

Vérification du statut

make incus-status

Vérification détaillée

./config/incus/verify-deployment.sh

Déploiement d'un service spécifique

./config/incus/deploy-service-native.sh backend-api

Résolution de Problèmes

Service ne démarre pas

# 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

# 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

# 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)