veza/config/incus/NETWORK_FIX.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

128 lines
4.6 KiB
Markdown

# Correction du Problème de Vérification Réseau
**Date**: 2026-01-14
**Problème**: Le script continuait même si le réseau ne fonctionnait pas
**Statut**: ✅ **CORRIGÉ**
## Problème Identifié
Dans `deploy-service-native.sh` (lignes 146-152), la vérification réseau échouait silencieusement :
```bash
# AVANT (PROBLÉMATIQUE)
if incus exec ${CONTAINER_NAME} -- ping -c 2 -W 2 8.8.8.8 >/dev/null 2>&1; then
echo "✅ Network connectivity verified"
else
echo "⚠️ Warning: Network connectivity test failed, but continuing..."
fi
```
**Impact**: Le déploiement continuait même si le réseau ne fonctionnait pas, causant des échecs d'installation de packages et des services non fonctionnels.
## Solution Implémentée
### 1. Vérification Réseau Stricte
La vérification réseau est maintenant **obligatoire** et fait échouer le déploiement si elle échoue :
```bash
# APRÈS (CORRIGÉ)
# Verify network connectivity - CRITICAL: Do not continue if network fails
echo "Verifying network connectivity (CRITICAL - deployment will fail if this doesn't work)..."
# Test 1: Ping gateway
echo " Testing gateway connectivity (10.10.10.1)..."
if ! incus exec ${CONTAINER_NAME} -- ping -c 3 -W 3 10.10.10.1 >/dev/null 2>&1; then
echo "❌ ERROR: Cannot reach gateway (10.10.10.1)"
echo " Network configuration failed. Deployment aborted."
exit 1
fi
# Test 2: Ping external DNS
echo " Testing Internet connectivity (8.8.8.8)..."
if ! incus exec ${CONTAINER_NAME} -- ping -c 3 -W 3 8.8.8.8 >/dev/null 2>&1; then
echo "❌ ERROR: Cannot reach Internet (8.8.8.8)"
echo " Internet connectivity is required for package installation."
echo " Check NAT configuration: incus network show ${NETWORK}"
exit 1
fi
# Test 3: DNS resolution
echo " Testing DNS resolution (google.com)..."
if ! incus exec ${CONTAINER_NAME} -- getent hosts google.com >/dev/null 2>&1; then
echo "❌ ERROR: DNS resolution failed"
echo " Cannot resolve hostnames. DNS configuration failed."
exit 1
fi
echo "✅ Network connectivity fully verified (gateway, Internet, DNS)"
```
### 2. Script Simple de Configuration de Base
Création de `setup-basic-incus.sh` pour configurer l'infrastructure Incus de base :
- Crée le réseau `veza-network` avec NAT et DHCP
- Crée le profil `veza-profile` avec root et network devices
- Vérifie que tout est correctement configuré
**Usage**:
```bash
./config/incus/setup-basic-incus.sh
```
### 3. Intégration dans deploy-service-native.sh
Le script de déploiement utilise maintenant automatiquement `setup-basic-incus.sh` :
```bash
# Ensure basic Incus infrastructure is set up
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
if [ -f "${SCRIPT_DIR}/setup-basic-incus.sh" ]; then
echo "Ensuring basic Incus infrastructure is configured..."
"${SCRIPT_DIR}/setup-basic-incus.sh" >/dev/null 2>&1 || {
echo "❌ ERROR: Failed to setup basic Incus infrastructure"
echo " Run manually: ${SCRIPT_DIR}/setup-basic-incus.sh"
exit 1
}
fi
```
## Tests de Vérification
Le script effectue maintenant **3 tests obligatoires** :
1. **Gateway (10.10.10.1)** : Vérifie que le conteneur peut atteindre la passerelle
2. **Internet (8.8.8.8)** : Vérifie que le conteneur peut atteindre Internet (NAT fonctionne)
3. **DNS (google.com)** : Vérifie que la résolution DNS fonctionne
Si **n'importe lequel** de ces tests échoue, le déploiement est **aborté immédiatement**.
## Améliorations Apportées
1.**Vérification réseau stricte** : Le déploiement échoue si le réseau ne fonctionne pas
2.**Messages d'erreur clairs** : Indique exactement quel test a échoué et pourquoi
3.**Script de base simple** : `setup-basic-incus.sh` pour configurer l'infrastructure
4.**Configuration réseau robuste** : Gestion d'erreurs améliorée dans la configuration réseau
5.**Vérification pré-déploiement** : Vérifie que le réseau et le profil existent avant de créer le conteneur
## Impact
- **Avant** : Déploiements incomplets, services non fonctionnels, difficulté de débogage
- **Après** : Déploiements échouent rapidement si le réseau ne fonctionne pas, messages d'erreur clairs, infrastructure de base garantie
## Utilisation
### Configuration initiale
```bash
# Configurer l'infrastructure de base (une seule fois)
./config/incus/setup-basic-incus.sh
```
### Déploiement d'un service
```bash
# Le script vérifie automatiquement l'infrastructure et le réseau
./config/incus/deploy-service-native.sh backend-api
```
Si le réseau ne fonctionne pas, le déploiement échouera immédiatement avec un message d'erreur clair.