Aller au contenu
English

FirecrackerOptions

import type { FirecrackerOptions } from "@elie-laloum/outpost/providers/firecracker";
  • binaryRequis
    string
    Chemin hôte absolu de l’exécutable firecracker.
  • kernelRequis
    string
    Chemin hôte absolu de l’image du noyau invité.
  • rootfsRequis
    string
    Chemin hôte absolu de l’image du système de fichiers racine invité ; chaque VM démarre sur une copie privée.
  • tapRequis
    string
    Pé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.
  • guestMacRequis
    string
    Adresse MAC de l’interface réseau de l’invité, en six paires hexadécimales.
  • bootArgsRequis
    string
    Arguments de démarrage du noyau transmis à Firecracker.
  • 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.
  • rootOptionnel
    string | undefined
    Répertoire du dépôt dans l’invité, /workspace par défaut.
  • homeRequis
    string
    Home 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.
  • cpusOptionnel
    number | undefined
    vCPU de l’invité, 2 par défaut. Il ne limite pas le CPU hôte ; jailer.cpuQuotaUs le fait.
  • memoryMbOptionnel
    number | undefined
    Mémoire de l’invité en Mio, 2048 par défaut ; jailer.memoryMaxMb doit la dépasser.
  • bootDeadlineMsOptionnel
    number | undefined
    Dé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.
  • variablesOptionnel
    Readonly<Record<string, string>> | undefined
    Variables 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.
  • 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; } | undefined
    Lancement 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.
export interface FirecrackerOptions {
  readonly binary: string;
  readonly kernel: string;
  readonly rootfs: string;
  readonly tap: string;
  readonly guestMac: string;
  readonly bootArgs: string;
  readonly ssh: {
    readonly host: string;
    readonly user: string;
    readonly identity: string;
    readonly knownHosts: string;
    readonly port?: number;
    readonly binary?: string;
  };
  readonly root?: string;
  readonly home: string;
  readonly cpus?: number;
  readonly memoryMb?: number;
  readonly bootDeadlineMs?: number;
  readonly variables?: Variables;
  readonly jailer?: {
    readonly binary: string;
    readonly directory: string;
    readonly cgroup: string;
    readonly uid: number;
    readonly gid: number;
    readonly cpuQuotaUs: number;
    readonly memoryMaxMb: number;
    readonly processes: number;
  };
}