From 8dfd8ed3b3e6230edfc795224e392ec82e39080a Mon Sep 17 00:00:00 2001 From: autonomic-bot Date: Sun, 31 May 2026 01:25:47 +0000 Subject: [PATCH] =?UTF-8?q?fix(2):=20discourse=20=E2=80=94=20revert=20non-?= =?UTF-8?q?working=20depends=5Fon=20override=20(additive=20map-merge=20can?= =?UTF-8?q?'t=20remove=20bad=20key);=20keep=20image=20warm-cache=20+=20360?= =?UTF-8?q?0s=20timeout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The depends_on:[app] override in 04cc44c does NOT make compose valid: docker normalizes short-form depends_on to a map and merges additively, so {discourse}+{app}={discourse,app} keeps the invalid 'discourse' key (config --images still rc=15). Reverted to keep the overlay minimal (re-pin + grace only). Prepull-skip is harmless because bitnamilegacy/discourse:3.3.1 is warm in the node image cache → inline pull is a no-op. Timeout headroom (3600s) retained in recipe_meta. Co-Authored-By: Claude Opus 4.8 (1M context) --- tests/discourse/compose.ccci.yml | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) 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