ARC — GitHub App (creación, secret y rotación)¶
Crear la GitHub App (una sola vez)¶
- Ir a
https://github.com/settings/apps/new(cuenta personalgorkarevilla; no hay URL de organización para una cuenta personal). - 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 |
- Permisos (Repository permissions):
| Ámbito | Permiso | Acceso |
|---|---|---|
| Repository | Administration |
Read and write |
| Repository | Metadata |
Read-only (obligatorio) |
- 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. - 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. - Guardar en
.env: ARC_GITHUB_APP_ID=<App ID>ARC_GITHUB_APP_INSTALLATION_ID=<Installation ID>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
datacomo texto plano y los re-encodea en base64. Por eso las notas usan valores en claro (la clave privada como block scalar|), no base64.
- Asegurar que existe el namespace:
kubectl create namespace arc-runners --dry-run=client -o yaml | kubectl apply -f -. - Generar
vaultwarden-import.jsoncon el script dedocs/plans/2026-09-07-arc.md(Task 2, Step 2). - Org
Familia→ Tools → Import data → formato Bitwarden (json) → colecciónHomelab→ subir el fichero. (Si ya existe un ítemarc-github-configviejo, borrarlo antes.) - VKS sincroniza (≤5 min) y crea el
Secret. Verificar:kubectl -n arc-runners get secret arc-github-config.
Rotar la clave privada¶
- En la página de la App → Generate a private key (nueva).
- Actualizar el ítem Secure Note
arc-github-configen Vaultwarden (colecciónHomelab) con el nuevo PEM en claro (mismo formato block scalar que la importación original). - 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.