Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

firerunner

FireRunner es un executor personalizado para GitLab Runner que ejecuta cada job en una microVM Firecracker efímera con kernel propio, Docker daemon y red independiente. Incluye pool de VMs pre-iniciadas (~0.3s vs 15-17s cold boot) y aislamiento completo entre jobs.

Ficha actualizada 24 sept 2026, 16:10 · upstream 24 sept 2026, 15:59 · release sin release detectada

Ver códigoProblemas y ayudaRepositorio ↗Sitio oficial
00

Qué es firerunner

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

FireRunner es un executor personalizado para GitLab Runner que ejecuta cada job en una microVM Firecracker efímera con kernel propio, Docker daemon y red independiente. Cada VM se elimina al finalizar el job, garantizando aislamiento total entre ejecuciones.

El sistema mantiene un pool de VMs pre-iniciadas (~0.3s vs 15-17s cold boot), utiliza flintlock para gestión segura de microVMs, y emplea una arquitectura basada en containerd con Firecracker, dnsmasq y nftables. El guest corre Ubuntu 24.04 con kernel 6.18 LTS, Docker CE (buildx, compose), git y gitlab-runner.

Los benchmarks demuestran mejoras significativas: dotnet test en 27.7s vs 31.1s con docker executor, docker build en 4.8s con cache per-project aislado, y pipelines de 6 jobs reducidos a 19s con pool de 4 VMs.

CASOS DE USO
  • Ejecución de CI/CD con aislamiento completo entre jobs mediante microVMs efímeras
  • Builds de Docker con cache per-project aislado para evitar contaminación cruzada
  • Tests de integración con servicios ephemeral (PostgreSQL, etc.) dentro del job VM
  • Despliegues multi-tenant donde cada job tiene su propia identidad de red y kernel
PUNTOS DESTACADOS
  • Aislamiento total: cada job en VM distinta con kernel propio, Docker daemon y red independiente
  • Pool de VMs pre-iniciadas reduce latencia inicial a ~0.3s frente a 15-17s cold boot
  • Cache per-project en BuildKit microVMs evita contaminación entre proyectos
  • Seguridad: flintlock con token root-only, redes aisladas, VMs nunca reutilizadas
  • Benchmarks validados: dotnet test 27.7s vs 31.1s docker executor, docker build 4.8s con cache
PRECAUCIONES
  • Solo x86_64; no compatible con arquitecturas ARM o RISC-V
  • Cache per-project: el primer build de un proyecto y tras 24h inactivas es cold
  • Testeado en Rocky Linux 9.6 y Ubuntu 24.04; Debian/Ubuntu sin validación end-to-end
  • Requiere host con /dev/kvm (bare metal o VM con nested virtualization)
  • GitLab 16+ necesario para nuevo flujo de tokens de runner
VISUAL

Capturas del proyecto

Imágenes reales detectadas en la documentación del repositorio.

FireRunner Grafana dashboardFireRunner architecturefirerunner doctorfirerunner status
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU2 vCPUrecomendación inicial
MEMORIA2 GBRAM estimada
DISCO20 GBalmacenamiento base
COMPLEJIDADmediumnivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Despliegue manual

Instalar con curl -sfL https://raw.githubusercontent.com/ismoilovdevml/firerunner/main/install.sh | sudo bash. Variables clave: FR_DISK (primera disk blank), FR_POOL_SIZE (VMs pre-booted, default 2), FR_RUNNER_CONCURRENT (default 4). Requiere systemd, disk blank 100GB+ para thin pool, y host con /dev/kvm. Registrar runner en GitLab con tags firecracker. Monitoreo Prometheus en :9477/metrics con Grafana dashboard incluido.

—Dockerfile
—Compose
—One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
GoPython
SERVICIOS
PostgreSQLS3/MinIO
BASES DE DATOS
PostgreSQL
PUERTOS
9477
06

Experiencia real de la comunidad

Ayuda a contrastar la estimación automática con instalaciones reales.

Todavía no hay datos comunitarios para este proyecto.