diff --git a/docs/ci-cd.md b/docs/ci-cd.md index 3bc241a9f..ccc0f69f7 100644 --- a/docs/ci-cd.md +++ b/docs/ci-cd.md @@ -114,6 +114,24 @@ commit in the range (see the `decisions.md` header) — routine lifecycle metada > `DeployStack media-servers` silently targets the **dead** stack. Confirm with > `/read ListStacks` before deploying. > +> **A third stack, literally named `ersatztv`, is also live and is NOT prod**: it owns +> `ersatztv-test`, tracks the floating `:latest` tag, and runs with `auto_update: true`. (Stack +> name, compose project, config-file path and image tag re-confirmed from the container labels on +> jazz 2026-08-11; the `auto_update` flags and the bumblebee `unhealthy` status are carried from +> the earlier checks noted above, not re-measured that day.) +> `DeployStack ersatztv` succeeds and looks healthy — it just promotes nothing to prod. Three names, +> one target: +> +> | Stack name | project_name | auto_update | owns | +> |---|---|---|---| +> | `jazz-media` | `media-servers` | `false` | `ersatztv` (**prod**, tracks `:prod`) | +> | `ersatztv` | `ersatztv` | `true` | `ersatztv-test` (tracks `:latest`) | +> | `media-servers` | — | — | dead stack on bumblebee, `unhealthy` | +> +> Don't resolve the prod stack by name at all — resolve it by the **container's** +> `com.docker.compose.project.config_files` label (e.g. via `docker inspect`), which points at the +> actual compose file path and can't be confused by a same-named stack. +> > **There is no Global Auto Update fallback anymore**: `jazz-media` has `auto_update: false` > (`poll_for_updates: true` only), so nothing promotes `:prod` on a timer — promotion is manual, > full stop. The old "don't cut a tag near the 03:00 run" caveat no longer applies.