fix(deploy): require BUNYIP_API_IMAGE + BUNYIP_WEB_IMAGE, drop :latest fallback (BUNYIP-237) #266

Merged
YousifShkara merged 1 commit from fix/BUNYIP-237-compose-fail-loud-on-missing-image into main 2026-06-29 10:42:04 +02:00
Owner

Audit finding (BUNYIP-205 roll-up, Medium): the shipped production template defaulted to :latest. :latest + pull_policy: always resolves the tag at restart time, so two restarts seconds apart can pull two different digests and the LB serves mixed builds (same failure mode MAPPS-315 closed for mokosh-www).

Switch both image refs in compose.yml from ${VAR:-default} to ${VAR:?error} so a missing value surfaces as a clear compose-up error instead of silently pulling :latest. .env.example documents both as required and now ships with a v0.4.1 pin to give operators a known-good starting tag. README rewritten from "you can pin" to "you must pin", with the failure-mode rationale.

Companion docker-repo PR pins c-01 (staging) bunyip-api + bunyip-web to v0.4.1; nc-01 (production) was already pinned per existing operator practice.

#BUNYIP-237

Audit finding (BUNYIP-205 roll-up, Medium): the shipped production template defaulted to :latest. `:latest` + `pull_policy: always` resolves the tag at restart time, so two restarts seconds apart can pull two different digests and the LB serves mixed builds (same failure mode MAPPS-315 closed for mokosh-www). Switch both image refs in compose.yml from `${VAR:-default}` to `${VAR:?error}` so a missing value surfaces as a clear compose-up error instead of silently pulling :latest. `.env.example` documents both as required and now ships with a v0.4.1 pin to give operators a known-good starting tag. README rewritten from "you can pin" to "you must pin", with the failure-mode rationale. Companion docker-repo PR pins c-01 (staging) bunyip-api + bunyip-web to v0.4.1; nc-01 (production) was already pinned per existing operator practice. #BUNYIP-237
fix(deploy): require BUNYIP_API_IMAGE + BUNYIP_WEB_IMAGE, drop :latest fallback (BUNYIP-237)
All checks were successful
E2E / Playwright against deployment (pull_request) Successful in 23s
Check / fmt + clippy + build + tests (pull_request) Successful in 16m26s
Create release / Create release from merged PR (pull_request) Has been skipped
0ca52f4bf9
Audit finding (BUNYIP-205 roll-up, Medium): the shipped production template defaulted to :latest. `:latest` + `pull_policy: always` resolves the tag at restart time, so two restarts seconds apart can pull two different digests and the LB serves mixed builds (same failure mode MAPPS-315 closed for mokosh-www).

Switch both image refs in compose.yml from `${VAR:-default}` to `${VAR:?error}` so a missing value surfaces as a clear compose-up error instead of silently pulling :latest. `.env.example` documents both as required and now ships with a v0.4.1 pin to give operators a known-good starting tag. README rewritten from "you can pin" to "you must pin", with the failure-mode rationale.

Companion docker-repo PR pins c-01 (staging) bunyip-api + bunyip-web to v0.4.1; nc-01 (production) was already pinned per existing operator practice.

#BUNYIP-237
YousifShkara deleted branch fix/BUNYIP-237-compose-fail-loud-on-missing-image 2026-06-29 10:42:04 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/bunyip!266
No description provided.