granja: golden NUEVA con Rust y Go — desbloquea el 76% del catálogo

Imagen 417847948 («hammer-golden-rust-go-2026-08-08») reemplaza a 408909310 como default de
farm-up.

EL PROBLEMA QUE CIERRA: hammer invoca `cargo vendor` y el toolchain Go en el HOST, no dentro
del sandbox — el vendoreo pasa ANTES de entrar a la caja. La golden vieja no los traía, así que
la granja no podía construir NINGUNA receta Rust ni Go: COSMIC entero, las 228 Rust y las 362
Go del corpus. El 76% del catálogo dependía de UNA SOLA máquina, el hub — justo lo que el
respaldo de ayer intentaba dejar de asumir.

VERIFICADO ANTES DE SNAPSHOTEAR, no después: `cosmic-bg` —que minutos antes moría con
`spawn cargo vendor: No such file`— sella en el worker. Un snapshot de una máquina a medio
arreglar es peor que ninguno.

MISMAS VERSIONES QUE EL HUB (cargo/rustc 1.96.0, go 1.26.4) a propósito: introducir un skew de
toolchain nuevo mientras se arregla otro es cómo se fabrican los fallos que nadie reproduce. Y
1.96 es además el techo MSRV del sandbox ya documentado.

NO RELAJA LA HERMETICIDAD: cargo/go son herramientas de FETCH, del mismo orden que `git` para
clonar. El build sigue ocurriendo dentro del sandbox con el árbol ya vendoreado. Es lo contrario
del caso «no engordar el rootfs del worker», que habla del rootfs DEL SANDBOX.

El PATH queda persistido en /etc/profile.d/hammer-toolchain.sh para que sobreviva a los logins
no interactivos de la granja. Y la imagen trae el store del worker al momento del snapshot (KDE
y GNOME reconstruidos hoy), así que los workers nuevos arrancan con más caché.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-08 17:33:57 -04:00
co-authored by Claude Opus 5
parent c7dd6652c0
commit 889720cac0
+17 -1
View File
@@ -19,7 +19,23 @@
set -euo pipefail set -euo pipefail
N="${1:-1}" N="${1:-1}"
IMAGE="${IMAGE:-408909310}" # ── GOLDEN 417847948 (2026-08-08): la anterior NO TENÍA RUST NI GO ─────────────────────────────
# `hammer` invoca `cargo vendor` (y el toolchain Go) en el HOST, no dentro del sandbox: el vendoreo
# pasa ANTES de entrar a la caja. La golden vieja (408909310) no los traía, así que la granja no
# podía construir NINGUNA receta Rust ni Go — o sea COSMIC entero, las 228 Rust y las 362 Go del
# corpus: **el 76% del catálogo sólo se podía construir en el hub**, una sola máquina.
#
# Esta imagen añade cargo/rustc 1.96.0 y go 1.26.4, **las mismas versiones que el hub**, para no
# introducir un skew de toolchain nuevo mientras se arregla otro. Verificado antes de snapshotear:
# `cosmic-bg` —que minutos antes moría con `spawn cargo vendor: No such file`— sella en el worker.
#
# NO relaja la hermeticidad: cargo/go son herramientas de FETCH, del mismo orden que `git` para
# clonar. El build sigue ocurriendo dentro del sandbox con el árbol ya vendoreado. Es lo contrario
# del caso «no engordar el rootfs del worker», que habla del rootfs DEL SANDBOX.
#
# Trae además el store del worker al momento del snapshot (KDE y GNOME reconstruidos el 2026-08-08),
# así que los workers nuevos arrancan con más caché que antes.
IMAGE="${IMAGE:-417847948}"
TYPE="${TYPE:-ccx23}" TYPE="${TYPE:-ccx23}"
LOCATION="${LOCATION:-hel1}" LOCATION="${LOCATION:-hel1}"
SSHKEY="${SSHKEY:-desarrollo@jlsoltech.com}" SSHKEY="${SSHKEY:-desarrollo@jlsoltech.com}"