Présentation du plugin Neckbeard

Neckbeard est un plugin destiné aux agents de codage qui transforme le code d’une application en une infrastructure cloud prête à être revue. Le plugin s’appuie sur un catalogue versionné de modules OpenTofu, chaque module étant testé en CI à chaque modification. Le catalogue couvre les principaux fournisseurs (AWS, GCP, Azure) et les modèles d’exécution serveur‑less (Cloud Run, ECS Fargate, Container Apps) ainsi que les clusters Kubernetes (EKS, GKE, AKS). Les modules autorisent uniquement un ensemble limité de ressources : une image de conteneur, jusqu’à dix processus HTTP, worker ou cron, une base Postgres, du stockage d’objets et des secrets. Aucun module Redis n’est encore disponible, ce qui empêche le plugin de générer une configuration non supportée.

/plugin marketplace add bealesh/neckbeard
/plugin install neckbeard@neckbeard

Architecture et flux de travail

Le processus démarre lorsqu’un développeur exécute /neckbeard:analyze dans le dépôt de l’application. L’agent analyse les Dockerfiles, les ports exposés, les variables d’environnement, les points de santé et les fichiers de configuration (par ex. settings.py de Django). Chaque constatation est associée à un fichier et à un numéro de ligne, et chaque inférence reçoit un score de confiance. Les questions que l’agent ne peut pas répondre (trafic attendu, tolérance d’indisponibilité, choix du stockage Postgres) sont posées à l’utilisateur et les réponses sont enregistrées à côté des hypothèses correspondantes.

Le planificateur crée un fichier blueprint.yaml dont le contenu est vérifié par hash. Le rendu est une fonction pure de ce blueprint ; toute modification manuelle du fichier empêche la régénération automatique. Le plugin génère ensuite les pipelines CI/CD (GitHub Actions ou GitLab CI) et, pour Kubernetes, les manifests du cluster. Les secrets restent dans les gestionnaires de secrets du cloud et ne transitent jamais par le code du plugin.

Validation, sécurité et estimation des coûts

Neckbeard s’appuie sur Infracost, OpenTofu et Checkov pour valider la configuration et estimer la facture. La commande /neckbeard:estimate produit un tableau détaillé : coût de base, coût d’usage, scénarios bas/haut, et indication explicite des ressources que Infracost ne peut pas chiffrer (par ex. le compute de Container Apps). La validation se décline en trois niveaux : V0 (syntaxe et politiques, incluant tofu validate, checkov et kubeconform), V1 (plan authentifié nécessitant des credentials cloud) et V2 (déploiement vérifié, également credential‑dépendant). Les sauts de politique dans les fichiers générés sont toujours accompagnés d’une justification écrite, évitant ainsi les déclarations trompeuses.

Les pipelines utilisent une fédération OIDC de bout en bout ; aucune clé d’accès statique n’est stockée. Les identités en lecture‑seule sont employées pour les plans sur les pull‑requests, tandis que les déploiements sur la branche principale utilisent une identité en écriture protégée. Trivy bloque les vulnérabilités de niveau HIGH et CRITICAL, et les réseaux sont privés par défaut.

Limites et perspectives

Le plugin reste en phase pré‑alpha. Le catalogue ne couvre pas encore tous les services (par ex. Redis) et les estimations de coût sont limitées par les capacités d’Infracost, notamment l’absence de prix pour certains services server‑less. La partie « déploiement » du cycle de vie (exécution du plan authentifié et vérification du déploiement) n’est pas automatisée ; elle nécessite une intervention humaine pour passer de V1 à V2. Malgré ces restrictions, Neckbeard fournit une chaîne de production entièrement révisable, du code source à l’infrastructure, tout en exposant clairement les hypothèses et les coûts associés.