diff --git a/tests/discourse/compose.ccci.yml b/tests/discourse/compose.ccci.yml index 9d8d357..32d74ea 100644 --- a/tests/discourse/compose.ccci.yml +++ b/tests/discourse/compose.ccci.yml @@ -21,18 +21,13 @@ version: "3.8" # Both changes are namespace/grace-only: identical image content, a healthy check still marks healthy # immediately → NO assertion is weakened and no defect is masked. # -# 3. PREPULL-ENABLE (compose-validity): the published recipe (BOTH 0.7.0 base AND the PR head) ships -# `sidekiq.depends_on: [discourse]`, but the main service is named `app` — `discourse` is an -# UNDEFINED service, so `abra app config --images` (the harness prepull step) returns -# `invalid compose project` (rc=15) and prepull is SKIPPED → the 2.4GB discourse image is pulled -# INLINE during `abra app deploy`, eating the convergence budget on the 7-GiB single node and -# pushing the slow Rails cold boot past the deploy timeout (full4 base-deploy timed out at 2400s). -# This overlay overrides sidekiq.depends_on to the real service `app` so the merged compose is -# VALID → prepull resolves+pre-pulls the images before deploy → reliable convergence. This is a -# NO-OP at runtime: `docker stack deploy` (swarm) IGNORES depends_on entirely, so correcting a -# dangling lint-only reference to the real service changes NOTHING swarm does — it masks no defect -# and weakens no test; it only unblocks the image pre-pull. (The same dangling ref exists upstream; -# filed as a recipe nit, but the fix here is the immutable-published-base + harness-prepull path.) +# NOTE (prepull): the published recipe ships `sidekiq.depends_on: [discourse]` but the main service is +# named `app` (`discourse` is undefined), so `abra app config --images` returns invalid-compose (rc=15) +# and the harness prepull is SKIPPED. This overlay does NOT try to override depends_on — compose +# normalizes short-form depends_on to a map and map-merge is additive, so an override can't REMOVE the +# bad `discourse` key. Instead the 2.4GB `bitnamilegacy/discourse:3.3.1` image is kept warm in the node +# image cache, so the inline pull during deploy is a no-op and convergence isn't pull-bound. (swarm +# ignores depends_on, so the dangling ref has zero runtime effect — a recipe lint nit, not a defect.) services: app: image: bitnamilegacy/discourse:3.3.1 @@ -40,5 +35,3 @@ services: start_period: 20m sidekiq: image: bitnamilegacy/discourse:3.3.1 - depends_on: - - app