refactor: migrate to src/ package + add DinD-based E2E runner with debug artifacts

- Replace legacy standalone scripts with a proper src-layout Python package
  (baudolo backup/restore/configure entrypoints via pyproject.toml)
- Remove old scripts/files (backup-docker-to-local.py, recover-docker-from-local.sh,
  databases.csv.tpl, Todo.md)
- Add Dockerfile to build the project image for local/E2E usage
- Update Makefile: build image and run E2E via external runner script
- Add scripts/test-e2e.sh:
  - start DinD + dedicated network
  - recreate DinD data volume (and shared /tmp volume)
  - pre-pull helper images (alpine-rsync, alpine)
  - load local baudolo:local image into DinD
  - run unittest E2E suite inside DinD and abort on first failure
  - on failure: dump host+DinD diagnostics and archive shared /tmp into artifacts/
- Add artifacts/ debug outputs produced by failing E2E runs (logs, events, tmp archive)

https://chatgpt.com/share/694ec23f-0794-800f-9a59-8365bc80f435
This commit is contained in:
2025-12-26 18:13:26 +01:00
parent 41910aece2
commit c30b4865d4
55 changed files with 2950 additions and 804 deletions

View File

@@ -0,0 +1,14 @@
2025-12-26T18:04:57.729650330+01:00 image pull ghcr.io/kevinveenbirkenbach/alpine-rsync:latest (name=ghcr.io/kevinveenbirkenbach/alpine-rsync, org.opencontainers.image.created=2025-12-26T11:16:41.250Z, org.opencontainers.image.description=alpine image with rsync, org.opencontainers.image.licenses=AGPL-3.0, org.opencontainers.image.revision=44d48fb12106e82de8e0bb9c374f6a2c0c2b542c, org.opencontainers.image.source=https://github.com/kevinveenbirkenbach/alpine-rsync, org.opencontainers.image.title=alpine-rsync, org.opencontainers.image.url=https://github.com/kevinveenbirkenbach/alpine-rsync, org.opencontainers.image.version=main)
2025-12-26T18:05:02.774379357+01:00 image pull alpine:3.20 (name=alpine)
2025-12-26T18:05:07.091956837+01:00 image load sha256:84e1ce4363e7f6880bbc55dce81bd8bc3d0cd35db78f6b625f6693eb28f26d46 (name=sha256:84e1ce4363e7f6880bbc55dce81bd8bc3d0cd35db78f6b625f6693eb28f26d46)
2025-12-26T18:05:07.706443392+01:00 volume create baudolo-e2e-files-full-468c9a54be-vol-src (driver=local)
2025-12-26T18:05:07.876060673+01:00 container create f606f132edfe329a81b3ec57a35a707f957409c387c10e7b8e78f984cbbef72f (image=alpine:3.20, name=eloquent_solomon)
2025-12-26T18:05:07.878097650+01:00 container attach f606f132edfe329a81b3ec57a35a707f957409c387c10e7b8e78f984cbbef72f (image=alpine:3.20, name=eloquent_solomon)
2025-12-26T18:05:07.897098146+01:00 volume mount baudolo-e2e-files-full-468c9a54be-vol-src (container=f606f132edfe329a81b3ec57a35a707f957409c387c10e7b8e78f984cbbef72f, destination=/data, driver=local, propagation=, read/write=true)
2025-12-26T18:05:08.083750320+01:00 network connect f9303d265b7c4eadd53194f11a7203398a0fb64cacedec113668cea7448632a3 (container=f606f132edfe329a81b3ec57a35a707f957409c387c10e7b8e78f984cbbef72f, name=bridge, type=bridge)
2025-12-26T18:05:08.117011831+01:00 container start f606f132edfe329a81b3ec57a35a707f957409c387c10e7b8e78f984cbbef72f (image=alpine:3.20, name=eloquent_solomon)
2025-12-26T18:05:08.286072714+01:00 network disconnect f9303d265b7c4eadd53194f11a7203398a0fb64cacedec113668cea7448632a3 (container=f606f132edfe329a81b3ec57a35a707f957409c387c10e7b8e78f984cbbef72f, name=bridge, type=bridge)
2025-12-26T18:05:08.306579097+01:00 volume unmount baudolo-e2e-files-full-468c9a54be-vol-src (container=f606f132edfe329a81b3ec57a35a707f957409c387c10e7b8e78f984cbbef72f, driver=local)
2025-12-26T18:05:08.326825706+01:00 container die f606f132edfe329a81b3ec57a35a707f957409c387c10e7b8e78f984cbbef72f (execDuration=0, exitCode=0, image=alpine:3.20, name=eloquent_solomon)
2025-12-26T18:05:08.391069360+01:00 container destroy f606f132edfe329a81b3ec57a35a707f957409c387c10e7b8e78f984cbbef72f (image=alpine:3.20, name=eloquent_solomon)
2025-12-26T18:05:08.792526442+01:00 volume destroy baudolo-e2e-files-full-468c9a54be-vol-src (driver=local)