docs(arje): organiza core/ + seeds canónicas + boot reproducible
- crates/core/README.md: agrupamiento lógico de los 31 crates absorbidos
de arje (ente-*) y del protocolo brahman (brahman-*) en 6 grupos —
Init/PID 1, contratos, discovery, IPC+CAS, cerebro, 14 shims compat
systemd. No se movieron crates físicamente (rompería paths
cross-workspace).
- seeds/arje-minimal.card.json: PID1 + /bin/sh, smoke test QEMU.
- seeds/arje-prod.card.json: PID1 + 14 shims compat + tmpfiles/binfmt
one-shots + echo + getty (16 children). Validados con
brahman_card::Card::validate.
- seeds/validate.sh: carga la seed vía ente-zero en dev mode.
- scripts/build-arje-initrd.sh: empaqueta CPIO+gzip newc layout
/init→/sbin/ente-zero, /usr/sbin/ente-*-compat, /ente/seed.card.json,
/bin/{sh,...} (busybox o glibc+ldd). Tested: produce 20 MB initrd OK.
- scripts/run-arje-qemu.sh: qemu-system-x86_64 con KVM auto-detect,
-kernel/-initrd/-append "rdinit=/init console=ttyS0,115200 panic=10".
- docs/arje-boot.md: doc end-to-end — layout initramfs, QEMU (con kernel
del host o externo), GRUB bare metal, Proxmox/libvirt args:, schema
de Card con todas las validaciones, debugging (sockets de
introspección, snapshot/restore, metrics), checklist pre-deploy.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Executable
+40
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env bash
|
||||
# Valida una Tarjeta Semilla pasándola por el parser+validate de brahman-card.
|
||||
# Uso: seeds/validate.sh seeds/arje-prod.card.json
|
||||
#
|
||||
# Método: copiamos la Card como `seed.card.json` en un cwd vacío y corremos
|
||||
# ente-zero en dev-mode 4 s. Si carga, valida, e instancia genesis, la
|
||||
# Card es estructuralmente correcta — los binarios de los hijos pueden
|
||||
# faltar en el host (vivirán en /usr/sbin del initrd).
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if [ "$#" -ne 1 ]; then
|
||||
echo "uso: $0 <ruta/seed.card.json>" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
SEED="$(realpath "$1")"
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
REPO_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
BIN="$REPO_DIR/target/release/ente-zero"
|
||||
|
||||
if [ ! -x "$BIN" ]; then
|
||||
echo "[validate] compilando ente-zero (release)…"
|
||||
(cd "$REPO_DIR" && cargo build --quiet --release -p ente-zero)
|
||||
fi
|
||||
|
||||
SCRATCH="$(mktemp -d -t arje-validate.XXXXXX)"
|
||||
trap 'rm -rf "$SCRATCH"' EXIT
|
||||
cp "$SEED" "$SCRATCH/seed.card.json"
|
||||
|
||||
cd "$SCRATCH"
|
||||
timeout 5 "$BIN" 2>&1 | tee /tmp/arje-validate.log | \
|
||||
grep -E "Tarjeta Semilla cargada|semilla inválida|JSON no contiene|Caused by" | head -5
|
||||
|
||||
if grep -q "Tarjeta Semilla cargada y validada" /tmp/arje-validate.log; then
|
||||
echo "[validate] OK: $SEED"
|
||||
exit 0
|
||||
fi
|
||||
echo "[validate] FALLÓ: $SEED" >&2
|
||||
exit 1
|
||||
Reference in New Issue
Block a user