mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-11 21:26:44 +00:00
Filter no longer takes a `database_volume=` parameter. The volume name is derived from the central provider's `services.<dbtype>.name` (shared) or `<entity>_database` (dedicated) — mirroring `plugins/lookup/database.py`'s `volume_prefix + host` construction. Simultaneous postgres + mariadb on the same role now raises an AnsibleFilterError with a clear message; support is deferred per the docstring TODO. The integration test (renamed from `test_shared_service_volumes.py` to `test_compose_volumes_call_required.py`) now requires every `roles/*/templates/compose.yml.j2` to call `compose_volumes`, so the top-level `volumes:` block is always rendered. Without it, flipping a shared service to dedicated mode adds a named-volume reference that Compose rejects with `service "<name>" refers to undefined volume`. Adds the call to 14 templates that were missing it (dashboard, hugo, sphinx, bridgy-fed, fediwall, littlejs, mig, mini-qr, navigator, roulette-wheel, simpleicons, collabora, logout, openresty) and strips the `database_volume=...` argument from every other role plus Taiga's now-unused `TAIGA_DATABASE_VOLUME` var. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Compose Tests 🧱
Integration tests that validate Docker Compose templates across roles: every service MUST declare an image, templates MUST NOT call raw docker commands, and build: blocks MUST still carry an image reference.
Tests in this directory MUST only cover structural rules of compose.yml.j2 and related compose artefacts. Tests for image versions, backups, or service-registry semantics MUST live elsewhere under tests/integration/.
For framework, directory layout, and make test-integration usage see integration.md.