tower 0.61.17 / tower-ui 0.61.17 — async addon save (kill Saving freeze)

handleUpdateAddons was fully synchronous including BuildKit Jobs per
addon image. cetmix_tower auto-pulls 8 deps × ~30-90s each on a fresh
cluster = 5-15 min. Reverse proxy timeout (60-120s) cuts the request
mid-build, browser shows 'Saving' forever, drawer eventually closes
on the timeout error, AND the cancelled context kills the goroutine
mid-flight so values.yaml never gets committed.

Now: handler validates inline (immediate feedback on bad input),
spawns an addon-stage op, returns 202 + opId in <1s. The goroutine
runs phases (resolve → build → commit → refresh) with a fresh
context that survives client disconnect. Operator watches it in the
bell + Activity tab, can keep working in another tab. Same pattern
Deploy/Migrate/Apply already use.
This commit is contained in:
Claude
2026-04-30 16:19:47 +03:00
parent 971fd12fae
commit fab8d62521

View File

@@ -9,7 +9,7 @@ backend:
# so every cluster that runs Tower needs the same imagePullSecret
# provisioned out-of-band (until cluster-platform-v3 owns it).
repository: registry.odoosky.cloud/odoosky/docker-mirror/tower
tag: "0.61.16"
tag: "0.61.17"
pullPolicy: IfNotPresent
imagePullSecrets:
- name: docker-mirror-pull
@@ -29,7 +29,7 @@ frontend:
enabled: true
image:
repository: registry.odoosky.cloud/odoosky/docker-mirror/tower-ui
tag: "0.61.16"
tag: "0.61.17"
pullPolicy: IfNotPresent
imagePullSecrets:
- name: docker-mirror-pull