Retour sur l’OSXP 2025 : Mini W’aaS, le Cloud Provider de poche à la Cité des Sciences
Lors de l’édition 2025 de l’Open Source Experience (OSXP) à la Cité des Sciences et de l’Industrie, on a voulu relever un défi un peu fou avec le projet Mini W’aaS : la démonstration en live et en miniature de notre offre d’hébergement W’aaS.
Le défi : déployer, seul et en seulement 2 jours de préparation, une infrastructure Cloud Provider complète (IaaS), sécurisée et monitorée, sur du matériel de bureau obsolète.
L’objectif n’était pas de montrer la puissance brute, mais de démontrer l’expertise et l’efficience : prouver qu’avec une architecture logicielle maîtrisée, on peut faire tourner OpenStack, Kubernetes et Ceph sur des machines que d’autres auraient mis à la benne.

Le Hardware : des machines d’occasion et des contraintes extrêmes
Le matériel
Pour cette démo, le Data Center tenait sur une table et dans trois racks. Il était composé de 21 machines récupérées, des ThinkCentre Tiny :
- 14x ThinkCentre M700
- 13x ThinkCentre M710Q (dont je n’ai utilisé qu’une partie)
- 8x ThinkCentre M715Q
- 15x ThinkCentre M73 (les vétérans de 2014 !)
- 1 Switch 24 Ports pour faire quelques vlans et Jumbo frame

La contrainte absolue : 4 Go de RAM par machine
C’est là que résidait tout le sel de la démo. Dans le monde du Cloud, 4 Go, c’est ce qu’on alloue à une petite VM. Ici, c’est la RAM totale du host physique pour faire tourner l’OS, Kubernetes (K3s), l’agent OpenStack (Nova), l’agent Ceph et les VMs clientes.
Le stockage “audacieux” sur USB
Pour le stockage distribué (Ceph), pas de disques NVMe. J’ai utilisé 3 hosts dédiés avec 6 OSDs montés sur… des clés USB. Faire tourner un cluster Ceph fonctionnel sur de la mémoire flash USB grand public démontre la robustesse incroyable de Rook, capable de gérer la santé du stockage même sur des supports lents (la subtilité : faire croire que les clés usb n’en sont pas).
[root@k1 ~]# kubectl exec -n rook-ceph deploy/rook-ceph-tools -- ceph status
cluster:
id: 31de7d7b-e50a-4fc9-aaef-1159c0a0c047
health: HEALTH_OK
services:
mon: 3 daemons, quorum a,b,c (age 2d)
mgr: a(active, since 2d)
osd: 6 osds: 6 up (since 2d), 6 in (since 2d)
data:
pools: 7 pools, 193 pgs
objects: 115 objects, 293 MiB
usage: 4.2 GiB used, 342 GiB / 347 GiB avail
pgs: 193 active+clean
io:
client: 20 KiB/s wr, 0 op/s rd, 1 op/s wr
Une stack logicielle parfaitement adaptée
Liste des logiciels utilisés
Si on fait un petit résumé des principaux produits déployés :
| Technologie | Lien | Commentaires |
|---|---|---|
| OpnSense | opnsense.org | Pare-feu Open Source |
| Rocky Linux 9 | rockylinux.org | OS Base |
| SELinux | docs.rockylinux.org | Module de sécurité noyau |
| K3S | K3s.io | Distribution Kubernetes légère |
| Calico | tigera.io/project-calico | CNI (Interface Réseau K8s) |
| WireGuard | wireguard.com | VPN moderne et rapide |
| OpenStack-Helm | docs.openstack.org / Git | Orchestre les conteneurs OpenStack (Nova, Neutron, Keystone, Cinder) sur Kubernetes |
| Rook-Ceph | rook.io | Opérateur Kubernetes pour Ceph |
| MetalLB | metallb.universe.tf | Load Balancer pour K8s |
| FRR | frrouting.org | Suite de routage (BGP/OSPF) |
| FreeIPA | freeipa.org | Gestion d’identité centralisée (LDAP/Kerberos) |
| Keycloak | keycloak.org | Gestionnaire d’identité et d’accès (IAM) |
| Grafana | grafana.com | Visualisation |
| Prometheus | prometheus.io | Base de données Time-Series / Collecte les métriques |
| Exporter FRR | github.com/tynany/frr_exporter | Permet de monitorer l’état des sessions BGP |
| Exporter Node | github.com/prometheus/node_exporter | Métriques système de base (CPU, RAM, Disque, Réseau) de chaque serveur physique |
| Exporter OpenStack | github.com/openstack-exporter | Interroge les API OpenStack pour remonter l’état applicatif |
| Exporter Goldpinger | github.com/bloomberg/goldpinger | Outil visuel génial pour voir la connectivité réseau entre les nœuds K8s |
| Exporter Kubernetes | github.com/kubernetes/kube-state-metrics | Remonte l’état des objets K8s |
| Ansible | ansible.com | Automatisation. Utilisé pour le Day 0 |
| Helm | helm.sh | Gestionnaire de paquets K8s |
Il est possible qu’il en manque mais cela représente déjà une idée du projet.
Avec cette répartition sur le matériel
Pour la démo, nous sommes parti d’une infrastructure de Data Center Leaf Spine à la sauce petit hardware :
- 3 Firewalls OpnSense avec le routage FRR
- 3 Leafs avec du FRR et les services Freeaipa
- 6 noeuds K3S hébergeant les control Plane : Openstack / Ceph / K3S
- 6 noeuds Kubernetes pour les computes Openstack
- 3 noeuds Ceph pour les 6 OSDs

K3s & WireGuard : l’art du déploiement optimisé
Pour faire tenir tout ce monde dans 4 Go de RAM, chaque mégaoctet comptait. L’utilisation d’un Kubernetes standard (k8s) était impossible car trop gourmand.
L’Orchestrateur : K3s
Mon choix s’est porté sur K3s, la distribution Kubernetes légère certifiée. Là où un K8s classique consomme facilement 1 Go de RAM à vide, K3s se contente de moins de 512 Mo, laissant des ressources vitales pour les charges de travail OpenStack.
L’installation s’est faite en une ligne de commande, illustrant la puissance de l’automatisation moderne.
Le Secret : WireGuard dans Calico
Le véritable tour de force réside dans la couche réseau (CNI). Je voulais un réseau chiffré (Zero Trust), mais sur des CPU vieux de 10 ans, le chiffrement IPsec classique aurait mis les machines à genoux.
La solution ? Utiliser le backend WireGuard de Calico pour pouvoir utiliser MetalLB. WireGuard fonctionnant directement dans le kernel Linux, l’overhead est minime et les performances excellentes.
K3s configure automatiquement des tunnels WireGuard transparents entre tous les nœuds. Le résultat est immédiat : tout le trafic inter-pod est encapsulé et chiffré, sans aucune configuration complexe de certificats ou de VPN tiers.
Sécurité : Niveau Entreprise (Zero Trust)
Même si le matériel est roots et que le setup a été monté en deux jours, la sécurité n’a pas été sacrifiée. Au contraire, elle respecte les standards les plus stricts.
Identité Unifiée et SSO
Pas de comptes locaux dispersés. L’infrastructure repose sur une gestion d’identité centralisée :
- FreeIPA : pour la gestion des serveurs Linux, l’authentification SSH centralisée et les règles SUDO. Chaque nœud rejoint le domaine au boot. Hébergé sur les trois noeuds FRR, une machine virtuelle hébergeant les services FreeIPA permet d’avoir une redondance.
- Keycloak : pour la couche fédération d’identité. L’accès au dashboard OpenStack (Horizon), à Grafana et aux APIs est protégé par SSO (Single Sign-On) hébergé directement sur le K3s. Une seule identité permet de tout piloter.
SDN Chiffré (Le résultat du setup K3s)
Grâce à la configuration WireGuard décrite plus haut, le réseau Overlay (les tunnels VXLAN qui transportent les paquets des VMs) ne circule pas en clair. Même si on branche un sniffer sur le switch de la démo, on ne voit qu’un flux chiffré indéchiffrable entre les hyperviseurs. Le réseau physique est considéré comme non-sûr par défaut.
L’Observabilité : piloter au millimètre
Faire tourner une stack Cloud complète sur 4 Go de RAM ne laisse aucune marge d’erreur. Une fuite mémoire de 200 Mo et le nœud crash (OOM Killer). L’observabilité n’était pas un luxe, mais une nécessité vitale.
J’ai déployé une stack Prometheus / Grafana surveillant 4 niveaux critiques :
La surveillance des ressources
Via node_exporter, je surveillais l’usage RAM à la seconde près. Des alertes étaient configurées pour prévenir si la RAM disponible descendait sous les 200 Mo, permettant d’intervenir avant que le kernel ne tue les processus OpenStack.

La performance du stockage USB
Avec le module Ceph Exporter, je surveillais spécifiquement la latence de commit (écriture) sur les 6 clés USB. Le constat : on pouvait voir graphiquement les pics d’IOPS lors du déploiement d’une VM. Malgré la lenteur du support, Rook a parfaitement lissé la charge, assurant la stabilité du service.
La santé du Control Plane
Un exportateur dédié interrogeait les APIs OpenStack pour vérifier l’état des agents Nova, Neutron et Cinder. Cela permettait de savoir instantanément si un service était Down sans avoir à se connecter en SSH.
La connectivité BGP
Grâce au monitoring de FRR, je pouvais visualiser l’état des sessions BGP entre les hyperviseurs et les routeurs de bordure, garantissant que les IPs des VMs étaient bien annoncées sur le réseau.

Conclusion
Ce projet Mini W’aaS présenté à l’OSXP démontre qu’OpenStack n’est pas une usine à gaz réservée aux équipes de 50 personnes avec un budget illimité. Seul, en 2 jours, et sur du matériel de récupération, il est possible de monter un Cloud Privé résilient, avec du chiffrement WireGuard natif, du SSO et un monitoring complet. C’est une belle preuve de ce que permet la sobriété quand elle est couplée à une expertise technique sur des outils comme K3s.
- Retour de helm
[root@k1 ~]# helm list -n openstack NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION cinder openstack 7 2025-12-04 15:51:19.950985143 +0100 CET deployed cinder-2025.2 v1.0.0 glance openstack 1 2025-12-03 13:12:30.524797775 +0100 CET deployed glance-2025.2 v1.0.0 horizon openstack 2 2025-12-04 16:04:21.569158846 +0100 CET deployed horizon-2025.2 v1.0.0 ingress openstack 2 2025-12-03 11:33:30.030254791 +0100 CET deployed ingress-0.2.19 v1.8.2 keystone openstack 3 2025-12-03 12:02:03.239122838 +0100 CET deployed keystone-2025.2 v1.0.0 libvirt openstack 5 2025-12-03 17:30:27.140643483 +0100 CET deployed libvirt-2025.2 v1.0.0 mariadb openstack 1 2025-12-02 13:20:41.893833456 +0100 CET deployed mariadb-2025.2 v10.6.7 memcached openstack 1 2025-12-02 13:39:38.422099454 +0100 CET deployed memcached-2025.2 v1.5.5 neutron openstack 1 2025-12-03 13:42:06.874793696 +0100 CET deployed neutron-2025.2 v1.0.0 nova openstack 23 2025-12-04 16:11:55.042845769 +0100 CET deployed nova-2025.2 v1.0.0 openvswitch openstack 2 2025-12-03 17:31:10.676735009 +0100 CET deployed openvswitch-2025.2 v1.0.0 placement openstack 1 2025-12-03 13:28:08.736924742 +0100 CET deployed placement-2025.2 v1.0.0 rabbitmq openstack 1 2025-12-03 11:51:58.42025061 +0100 CET deployed rabbitmq-2025 v3.12.0
Rendez-vous à la prochaine édition :)
Retrouvez notre retour complet de l’événement et nos conférences dans nos actualités : L’Open Source Experience, c’est fini ! Retour sur l’édition 2025.