Guide de Configuration du Stockage pour l’Auto-Initialisation
Vue d’Ensemble
Pour que l'auto-initialisation des vrais datasets fonctionne, le système IBIS-X nécessite un stockage d’objets configuré. Cette page explique comment tout est automatiquement configuré pour vous.
✅ Configuration Automatique Incluse
Bonne nouvelle ! Toute l’infrastructure de stockage est maintenant automatiquement déployée avec votre environnement IBIS-X :
Composants Automatiquement Déployés
Composant | Description | Statut |
---|---|---|
MinIO Server |
Stockage d’objets compatible S3 pour développement |
✅ Auto-déployé |
MinIO Service |
Service Kubernetes pour accès interne |
✅ Auto-configuré |
Stockage Persistant |
Volume persistant de 5Go pour MinIO |
✅ Auto-créé |
Secrets Unifiés |
Credentials MinIO et Azure pré-configurés |
✅ Pré-configuré |
Variables d’Environnement |
Configuration automatique des services |
✅ Auto-injectées |
Configuration Automatique des Services
Lorsque vous démarrez avec make dev-with-data
, voici ce qui se passe automatiquement :
-
MinIO déployé : Server MinIO démarré avec stockage persistant
-
Service exposé : MinIO accessible via
minio-service.IBIS-X.svc.cluster.local:9000
-
Bucket créé : Bucket
IBIS-X-datasets
créé automatiquement -
Service-selection configuré : Variables d’environnement injectées automatiquement
-
Auto-init activée : Initialisation des vrais datasets au démarrage
🔧 Variables d’Environnement Automatiques
Service-Selection (Automatique)
env:
- name: STORAGE_BACKEND
value: "minio"
- name: STORAGE_ENDPOINT_URL
value: "http://minio-service.IBIS-X.svc.cluster.local:9000"
- name: STORAGE_CONTAINER_NAME
value: "IBIS-X-datasets"
- name: STORAGE_ACCESS_KEY
valueFrom:
secretKeyRef:
name: storage-secrets
key: access-key # = minioadmin
- name: STORAGE_SECRET_KEY
valueFrom:
secretKeyRef:
name: storage-secrets
key: secret-key # = minioadmin
🚀 Démarrage Immédiat
Aucune configuration manuelle nécessaire ! Lancez simplement :
make dev-with-data
Ce qui se passe automatiquement :
-
✅ Minikube démarré avec configuration optimale
-
✅ Namespace
IBIS-X
créé -
✅ PostgreSQL déployé avec stockage persistant
-
✅ MinIO déployé avec stockage persistant (NOUVEAU !)
-
✅ Services applicatifs déployés avec variables d’environnement
-
✅ Migrations de base de données exécutées
-
✅ Auto-initialisation des vrais datasets avec conversion Parquet
-
✅ Logs en temps réel affichés
🔍 Vérification du Stockage
Vérifier MinIO
# Vérifier que MinIO est démarré
kubectl get pods -n IBIS-X -l app=minio
# Vérifier le service MinIO
kubectl get service minio-service -n IBIS-X
# Vérifier les logs MinIO
kubectl logs -f deployment/minio -n IBIS-X
Vérifier les Datasets Uploadés
# Vérifier que les datasets sont dans la base
kubectl exec -n IBIS-X deployment/service-selection -- python -c "
import sys; sys.path.append('/app')
from app.database import SessionLocal
from app.models import Dataset
with SessionLocal() as db:
datasets = db.query(Dataset).all()
for d in datasets:
print(f'📊 {d.name}: {d.storage_path} ({d.row_count} lignes)')
"
# Tester l'accès au stockage depuis le service
kubectl exec -n IBIS-X deployment/service-selection -- python -c "
import sys; sys.path.append('/app/..')
from common.storage_client import get_storage_client
try:
client = get_storage_client()
print('✅ Connexion stockage OK')
except Exception as e:
print(f'❌ Erreur stockage: {e}')
"
🌐 Accès à l’Interface MinIO (Optionnel)
Si vous souhaitez accéder à l’interface web de MinIO pour débugger :
# Créer un port-forward vers MinIO Console
kubectl port-forward -n IBIS-X service/minio-service 9001:9001
# Accéder à l'interface via : http://localhost:9001
# Credentials : minioadmin / minioadmin
📊 Monitoring du Stockage
🔧 Dépannage
Problèmes Courants
Problème | Symptôme | Solution |
---|---|---|
MinIO ne démarre pas |
Pod en |
Vérifier les logs : |
PVC pas attaché |
Pod en |
Vérifier la classe de stockage : |
Connexion refusée |
Erreur "connection refused" |
Vérifier le service : |
Upload échoue |
Erreur lors de l’auto-init |
Vérifier les credentials dans les secrets : |
Variables d’env manquantes |
Service ne trouve pas le stockage |
Vérifier que le pod service-selection a les bonnes env vars |
Commandes de Diagnostic
# Diagnostic complet du stockage
echo "=== État MinIO ==="
kubectl get all -n IBIS-X -l app=minio
echo "=== État PVC ==="
kubectl get pvc -n IBIS-X
echo "=== Secrets Stockage ==="
kubectl get secret storage-secrets -n IBIS-X
echo "=== Variables Env Service-Selection ==="
kubectl exec -n IBIS-X deployment/service-selection -- env | grep STORAGE
echo "=== Test Connexion ==="
kubectl exec -n IBIS-X deployment/service-selection -- python -c "
import sys; sys.path.append('/app/..')
from common.storage_client import get_storage_client
try:
client = get_storage_client()
print('✅ Connexion réussie')
except Exception as e:
print(f'❌ Erreur: {e}')
"
🏭 Production Azure
En production, le système bascule automatiquement vers Azure Blob Storage grâce au patch Kustomize :
# k8s/overlays/azure/storage-config-patch.yaml
env:
- name: STORAGE_BACKEND
value: "azure" # Bascule vers Azure
- name: STORAGE_ENDPOINT_URL
value: "https://your-storage-account.blob.core.windows.net"
Avantages Azure : * 🌐 Géo-réplication automatique * 🔒 Sécurité enterprise * 📈 Scalabilité illimitée * 💰 Modèle de coût à l’usage
✅ Résumé
Vous n’avez rien à configurer manuellement !
✅ MinIO : Déployé automatiquement ✅ Stockage : 5Go de PVC persistant ✅ Secrets : Credentials pré-configurés ✅ Variables : Injection automatique ✅ Auto-init : Vrais datasets uploadés automatiquement
Lancez simplement make dev-with-data
et profitez de votre système IBIS-X avec vrais datasets automatiquement initialisés ! 🎉