feat(matilda): detección de drift con docker inspect

matilda-discover gana discover_inventory(): corre docker inspect en
cada contenedor y compara contra el spec deseado — imagen, puertos,
env y volúmenes declarados. Si el contenedor que corre se desvió, el
plan emite un Update; si está al día, no hay acción. La comparación es
por satisfacción (lo extra que trae la imagen se ignora).

El CLI (--discover) y el shell (:matilda) ahora usan discover_inventory
en vez del descubrimiento por nombre: detectan no sólo qué crear y
eliminar, sino la deriva de configuración de lo que ya existe.

container_drift es puro — 6 tests nuevos con JSON de docker inspect.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-20 20:44:50 +00:00
parent fdf820edbb
commit b7181da7d9
6 changed files with 228 additions and 5 deletions
+3 -3
View File
@@ -737,9 +737,9 @@ impl Shell {
return;
}
};
// Reconcilia contra el estado observado de esta máquina.
let current =
matilda_discover::observed_inventory(&matilda_discover::discover_local(), &desired);
// Reconcilia contra el estado real de esta máquina — con
// detección de drift vía `docker inspect`.
let current = matilda_discover::discover_inventory(&desired);
let p = matilda_plan::plan(&current, &desired);
match sub {