Réalisations personnelles

Contributions et projets personnels publiés en dehors des projets d'études, dans des projets open source et professionnels.

Health check gRPC pour Traefik Proxy v3

Contribution intégrée à Traefik Proxy v3 (pull request #8583) : la mise en œuvre du protocole de health check gRPC, citée dans l'annonce officielle de la v3 et saluée comme « a one-liner that will change the lives of many ».

Jusqu'ici, Traefik ne pouvait tester la santé d'un backend gRPC que par une simple sonde TCP : la connexion s'établissait même si le service était défaillant. Cette fonctionnalité permet au proxy d'interroger le service standard grpc.health.v1.Health et de router le trafic en fonction de l'état réellement retourné par le serveur gRPC — un besoin devenu central avec la montée de gRPC (streaming bidirectionnel, flow control, cancellation) dans les environnements cloud-native.

openvpn-auth-okta

Plugin d'authentification pour OpenVPN Community Edition, développé chez Algolia, qui valide les utilisateurs VPN directement auprès de l'API d'authentification Okta — y compris la double authentification (TOTP par code à 6 chiffres ajouté au mot de passe, ou notification Push).

Architecture en deux composants partageant la même bibliothèque de validation : un plugin C (openvpn-plugin-auth-okta.so) et un binaire Go (okta-auth-validator). Deux modes d'intégration à OpenVPN sont proposés : plugin partagé « deferred » (recommandé, les identifiants ne transitent ni par l'environnement des processus ni par le disque) ou script via auth-user-pass-verify. Les certificats clients SSL sont exigés par défaut, les paquets préconstruits couvrent les principales distributions (Debian, Ubuntu, CentOS, Fedora, openSUSE, Raspbian…) sur amd64, arm64, armv7l et ppc64le. Sous licence MPL-2.0, avec une couverture de tests d'environ 97 %.

vagrant-uml

Plugin Vagrant (Ruby, licence MIT) développé chez Algolia, qui ajoute un fournisseur User Mode Linux à Vagrant : les machines sont démarrées, arrêtées et accessibles en SSH avec les commandes Vagrant habituelles (vagrant up --provider uml).

Contrairement à VirtualBox ou VMware, UML fait tourner un noyau Linux complet comme un simple processus utilisateur, sans hyperviseur — idéal pour des environnements de développement légers et scriptables. Une « box » UML embarque le noyau exécutable, l'image du système de fichiers racine et un metadata.json décrivant le fournisseur, la version du noyau et ses fonctionnalités. Le plugin gère aussi la configuration réseau via iptables et s'appuie sur uml-utilities et mtools. Dépôt archivé (lecture seule) en décembre 2021.

Ressource nftables pour InSpec

Contribution à InSpec, l'outil de tests de conformité infrastructure-as-code de Chef (fusionnée en mai 2023, pull request #6499) : une nouvelle ressource nftables permettant d'auditer une configuration de pare-feu nftables — le projet netfilter destiné à remplacer les frameworks iptables/ip6tables/arptables/ebtables.

La ressource permet de vérifier, dans des profils de conformité, les attributs des chaînes (type, hook, prio, policy), la présence de règles dans une chaîne, les attributs des sets nommés (type, flags, size) et la présence d'éléments dans un set. Elle interroge nft en s'adaptant à la version installée plutôt qu'à la distribution, et s'accompagne de tests unitaires, de fixtures et de la documentation officielle de la ressource.

ipset — compatibilité noyaux 2.6.22/2.6.23

Contribution au projet ipset du monde netfilter : ipset fournit des structures de données noyau (bitmap, hash, arbres) regroupant adresses IP, réseaux, ports ou adresses MAC, qu'iptables peut filtrer efficacement via le match set et la cible SET — bien plus performant qu'une longue chaîne de règles individuelles.

Les correctifs de compatibilité avec les noyaux Linux 2.6.22 et 2.6.23, signés « Jeremy Jacque » dans le changelog de la version 2.3.0, ont permis de maintenir le fonctionnement du module noyau face aux évolutions de l'API interne du noyau — un travail de veille régulier pour ce type de module hors arbre.