createFirecrackerSandboxProvider
Rôle et comportement
Section intitulée « Rôle et comportement »Crée un provider distant qui démarre une microVM Firecracker à partir de votre noyau, de votre système de fichiers racine et de votre périphérique TAP, puis joint l’invité par SSH. Il exige Linux avec /dev/kvm et un invité avec Node.js 24+, git, setsid et tar. Un provider exécute une VM à la fois ; release l’arrête et supprime sa copie privée du rootfs.
Exemple complet et règles détaillées.
Paramètres et propriétés
Section intitulée « Paramètres et propriétés »optionsRequisFirecrackerOptionsRessources de démarrage hôtes, réseau TAP, accès SSH à l’invité, ressources et jailer optionnel. Des chemins ou valeurs invalides échouent avec le code configuration dès la création.options.binaryRequisstringChemin hôte absolu de l’exécutable firecracker.options.kernelRequisstringChemin hôte absolu de l’image du noyau invité.options.rootfsRequisstringChemin hôte absolu de l’image du système de fichiers racine invité ; chaque VM démarre sur une copie privée.options.tapRequisstringPériphérique TAP hôte existant pour le réseau de l’invité, d’au plus 15 lettres, chiffres, points, tirets ou soulignés. Le provider le possède : il exécute donc une VM à la fois.options.guestMacRequisstringAdresse MAC de l’interface réseau de l’invité, en six paires hexadécimales.options.bootArgsRequisstringArguments de démarrage du noyau transmis à Firecracker.options.sshRequis{ readonly host: string; readonly user: string; readonly identity: string; readonly knownHosts: string; readonly port?: number; readonly binary?: string; }Accès d’Outpost à l’invité : hôte, utilisateur, fichier d’identité, fichier known_hosts de confiance, port optionnel (22 par défaut) et binaire ssh.options.rootOptionnelstring | undefinedRépertoire du dépôt dans l’invité, /workspace par défaut.options.homeRequisstringHome de l’agent dans l’invité ; il doit correspondre au HOME de l’utilisateur invité, sinon la vérification de démarrage n’aboutit jamais.options.cpusOptionnelnumber | undefinedvCPU de l’invité, 2 par défaut. Il ne limite pas le CPU hôte ; jailer.cpuQuotaUs le fait.options.memoryMbOptionnelnumber | undefinedMémoire de l’invité en Mio, 2048 par défaut ; jailer.memoryMaxMb doit la dépasser.options.bootDeadlineMsOptionnelnumber | undefinedDélai accordé à l’invité pour répondre par SSH avec ses prérequis, 60000 par défaut. Au-delà, l’acquisition échoue avec le code timeout et la VM s’arrête.options.variablesOptionnelReadonly<Record<string, string>> | undefinedVariables d’environnement définies pour chaque commande de la sandbox, en valeurs littérales. Une clé aussi déclarée par l’agent échoue avec le code configuration.options.jailerOptionnel{ readonly binary: string; readonly directory: string; readonly cgroup: string; readonly uid: number; readonly gid: number; readonly cpuQuotaUs: number; readonly memoryMaxMb: number; readonly processes: number; } | undefinedLancement par le jailer Firecracker : binaire et chemins appartenant à root, parent cgroup v2 dédié avec les contrôleurs cpu, memory et pids activés, uid et gid non root, cpuQuotaUs par période de 100000 microsecondes (au moins 1000), memoryMaxMb supérieur à la mémoire invitée et processes (au moins 16). Outpost doit déjà tourner en root et n’appelle jamais sudo ; sans jailer, Firecracker tourne sous l’utilisateur appelant.