Saltar a contenido

ARC — GitHub App (creación, secret y rotación)

Crear la GitHub App (una sola vez)

  1. Ir a https://github.com/settings/apps/new (cuenta personal gorkarevilla; no hay URL de organización para una cuenta personal).
  2. Campos:
Campo Valor
GitHub App name homelab-arc
Homepage URL https://github.com/gorkarevilla/homelab
Callback URL (vacío)
Webhook URL (vacío) — marcar inactivo
Where can this app be installed? Only on this account
  1. Permisos (Repository permissions):
Ámbito Permiso Acceso
Repository Administration Read and write
Repository Metadata Read-only (obligatorio)
  1. Install App → instalar solo en gorkarevilla/homelab (no "All repositories"). Al guardar los permisos, si la App ya estaba instalada, GitHub puede pedir aceptar los nuevos permisos.
  2. Anotar App ID (página de la App) y Installation ID (de la URL https://github.com/settings/installations/<ID>). Generar la Private key (.pem) y guardarla.
  3. Guardar en .env:
  4. ARC_GITHUB_APP_ID=<App ID>
  5. ARC_GITHUB_APP_INSTALLATION_ID=<Installation ID>
  6. ARC_GITHUB_APP_PRIVATE_KEY=<base64 del PEM> (una sola línea)

Dar de alta el secret en Vaultwarden (VKS)

El scale set lee el Secret arc-github-config (ns arc-runners) con 3 claves (github_app_id, github_app_installation_id, github_app_private_key). Lo crea VKS a partir de un ítem Secure Note en la colección Homelab.

Importante: VKS aplica las notas como YAML pero trata los valores de data como texto plano y los re-encodea en base64. Por eso las notas usan valores en claro (la clave privada como block scalar |), no base64.

  1. Asegurar que existe el namespace: kubectl create namespace arc-runners --dry-run=client -o yaml | kubectl apply -f -.
  2. Generar vaultwarden-import.json con el script de docs/plans/2026-09-07-arc.md (Task 2, Step 2).
  3. Org Familia → Tools → Import data → formato Bitwarden (json) → colección Homelab → subir el fichero. (Si ya existe un ítem arc-github-config viejo, borrarlo antes.)
  4. VKS sincroniza (≤5 min) y crea el Secret. Verificar: kubectl -n arc-runners get secret arc-github-config.

Rotar la clave privada

  1. En la página de la App → Generate a private key (nueva).
  2. Actualizar el ítem Secure Note arc-github-config en Vaultwarden (colección Homelab) con el nuevo PEM en claro (mismo formato block scalar que la importación original).
  3. VKS sincroniza (≤5 min) y el listener reinicia la conexión con GitHub.

Borrar registros de runners huérfanos

  • UI: gorkarevilla/homelab → Settings → Actions → Runners → quitar runners viejos.
  • Los runners ARC son efímeros (mueren solos); los huérfanos aparecen si el pod se mata a mitad de un job.