Que es GitLab Runner

Por: Artiko
gitlabrunnersci-cdintroduccion

Que es GitLab Runner

El problema que resuelve

Cuando haces push a un repositorio GitLab, quieres que automaticamente se ejecuten tests, se construya una imagen Docker o se despliegue a produccion. GitLab CI/CD lee tu .gitlab-ci.yml y crea jobs, pero necesita una maquina que los ejecute. Esa maquina es el Runner.

Arquitectura

┌─────────────┐     ┌──────────────┐     ┌─────────────┐
│  Developer   │────▶│  GitLab      │────▶│  Runner     │
│  git push    │     │  Server      │     │  Ejecuta    │
│              │     │  Crea jobs   │     │  los jobs   │
└─────────────┘     └──────────────┘     └─────────────┘

El Runner se comunica con GitLab via polling HTTP:

  1. Runner pregunta: “Hay trabajo para mi?”
  2. GitLab responde con un job (o nada)
  3. Runner ejecuta el job y reporta el resultado
  4. GitLab actualiza el estado del pipeline

Tipos de Runners

Shared Runners

Disponibles para todos los proyectos de una instancia GitLab. GitLab.com ofrece runners compartidos con Linux, Windows y macOS.

Group Runners

Disponibles para todos los proyectos dentro de un grupo de GitLab.

Project Runners (Specific)

Asignados a un proyecto especifico. Solo ejecutan jobs de ese proyecto.

Runner vs Executor

Es comun confundir estos conceptos:

ConceptoQue esEjemplo
RunnerEl agente/servicio que se conecta a GitLabProceso gitlab-runner en tu servidor
ExecutorEl metodo que usa el runner para ejecutar jobsDocker, Shell, Kubernetes

Un runner tiene un executor configurado. El executor define el entorno de ejecucion.

Cuando necesitas tu propio Runner

Requisitos minimos

RecursoMinimoRecomendado
CPU1 core2+ cores
RAM512 MB2+ GB
Disco10 GB50+ GB (Docker)
SOLinux, macOS, Windows, FreeBSDLinux x86_64

Siguiente: Capitulo 2: Instalacion y Registro →