playbooks/upgrade-docker-ce: accept compose plugin major ≥ 2 (was hardcoded v2.X.Y)

docker-ce 29 ships docker-compose-plugin renumbered to v5.x (was v2.x
with docker-ce 26-28). Same Compose v2 codebase under the hood —
Docker just realigned the major number. The verify regex was hardcoded
to `v2\.[0-9]+\.[0-9]+`, so a successful migration on esh-docker-vm
(29.4.1, 16/16 stacks back up clean) reported FAILED on the verify
phase. Switched to `docker compose version --short` parsed for major,
gated `>= 2` — works across future plugin renumbers too.

STATUS.md: mark esh-docker-vm done. ana-docker is the last host.
This commit is contained in:
vh
2026-04-26 14:22:26 -07:00
parent be9109bc95
commit b0608f9300
2 changed files with 17 additions and 4 deletions
+8 -2
View File
@@ -338,8 +338,14 @@ Order (least → most blast radius):
homepage-discovery binding) → "conflicting host options". homepage-discovery binding) → "conflicting host options".
Playbook now backs up any existing override, probes `daemon.json` Playbook now backs up any existing override, probes `daemon.json`
for `hosts:`, and installs an override that strips `-H` when needed. for `hosts:`, and installs an override that strips `-H` when needed.
2. **esh-docker-vm** — pending. Run from your TTY: 2. ~~**esh-docker-vm**~~ — **done 2026-04-24.** docker-ce 29.4.1, all
`scripts/elway esh-docker-vm --playbook playbooks/upgrade-docker-ce.yaml` 16 stacks back up clean (adguard, beszel-agent, calibre-web,
cloudflare-ddns, dockge, dozzle-agent, drawio, esphome, homeassistant,
homepage, mosquitto, paperless-ngx, pgadmin, traefik, uptimekuma).
Surfaced one verify-only nit: the docker-compose-plugin shipped with
docker-ce 29 is renumbered v5.x (was v2.x with 26-28); same Compose
v2 codebase, just realigned major. Playbook's compose-version verify
was hardcoded to `v2.X.Y` and false-failed — now accepts any major ≥ 2.
3. **ana-docker** — pending. Largest blast radius (homepage, miniflux, 3. **ana-docker** — pending. Largest blast radius (homepage, miniflux,
news-digest, synapse, seafile, vaultwarden, gitea, openwebui, …). news-digest, synapse, seafile, vaultwarden, gitea, openwebui, …).
Verify each card / service after. Verify each card / service after.
+9 -2
View File
@@ -224,8 +224,15 @@ verify:
[ "$v" -ge 24 ] [ "$v" -ge 24 ]
changed_when: "false" changed_when: "false"
- name: docker compose plugin v2 installed - name: docker compose plugin v2+ installed
shell: docker compose version | grep -qE 'v2\.[0-9]+\.[0-9]+' # docker-ce 29 ships docker-compose-plugin renumbered to v5.x (was
# v2.x with docker-ce 26-28). Both are the same Compose v2 codebase
# under the hood — Docker just realigned the plugin's major number.
# Accept anything ≥ 2 so this verify keeps working across future
# plugin renumbers.
shell: |
major=$(docker compose version --short | sed 's/^v//' | cut -d. -f1)
[ "$major" -ge 2 ]
changed_when: "false" changed_when: "false"
- name: at least one previously-running stack is back up - name: at least one previously-running stack is back up