You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(cli): five deploy roll-up fixes from the 2957 wave-4 checklist (#3169)
- DEP-11a: same-version redeploy — force-remove a conflicting same-name
container before docker run (exact-anchored name filter, xargs -r
idempotent) and stop superseded versions best-effort after the
kamal-proxy cutover (AppCommands.remove_conflicting / stop_old_versions,
wired into DeployMainCli.$deploy).
- DEP-11b: 'wheels deploy secrets extract' key match is now exact —
CFML == is case-insensitive, so 'extract path' matched the PATH line.
- DEP-11c: kamal-proxy config volume derives the remote home from the
ssh user (/root for the default root user) instead of hardcoding
/home/<user>.
- SecretResolver: bounded stdout drain + deadline (default 60s,
opts.timeoutSeconds) replaces the unbounded waitFor()/read-to-EOF —
an interactively-blocking secrets command now kills bash and throws
SecretResolver.ResolutionFailed with a clear message.
- rollback() forwards {destination} into ConfigLoader.load — it was the
last verb not applying the --destination overlay (same class as 3085).
All five red-first specs plus full CLI suite green in the lucee7 docker
harness (1015 pass / 0 fail; 2 known docker-env artifacts).
Refs #2957
Signed-off-by: Peter Amiri <peter@alurium.com>
Signed-off-by: Peter Amiri <petera@pai.com>
Co-authored-by: Peter Amiri <petera@pai.com>
-`wheels deploy`: a same-version redeploy no longer hits a guaranteed `docker run --name` conflict — deploy now force-removes an existing same-name container (exact-anchored, idempotent) before each app run, and stops superseded versions best-effort after the kamal-proxy cutover instead of leaving every old container running forever (#2957 DEP-11a)
2
+
-`wheels deploy secrets extract <key>` now matches the key case-sensitively, like Kamal — previously CFML's case-insensitive `==` let `extract path` return the `PATH` line's value (#2957 DEP-11b)
3
+
-`wheels deploy`: the kamal-proxy config volume now derives the remote home from the ssh user (`/root` for the default root user, `/home/<user>` otherwise) instead of hardcoding the `/home/<user>` layout, which was wrong on every default config (#2957 DEP-11c)
4
+
-`wheels deploy`: secret resolution from `.kamal/secrets` is now bounded by a timeout (default 60s, configurable via `timeoutSeconds`) — a command blocking on interactive input (e.g. `op read` prompting for sign-in) used to hang the deploy thread forever; it now kills the bash process and throws a clear `SecretResolver.ResolutionFailed` (#2957)
5
+
-`wheels deploy rollback --destination=X` now applies the destination overlay — rollback was the last verb loading `deploy.yml` without forwarding `--destination`, so it targeted the base config's hosts (#2957; same defect class as the `config` fix in #3085)
0 commit comments