Skip to content

fix(deploy_scale): dispatch to K8sDriver for a k8s-runtime fleet - #161

Merged
brettchien merged 1 commit into
mainfrom
orca/deploy-scale-k8s-dispatch
Sep 14, 2026
Merged

brettchien merged 1 commit into
mainfrom
orca/deploy-scale-k8s-dispatch

Conversation

@brettchien

Copy link
Copy Markdown
Contributor

Summary

  • deploy_scale/t_scale never got a k8s branch when studio#146 made the read path (deploy_list/deploy_get/runtime_context) k8s-aware — start/stop on a k8s-runtime fleet silently fell through to the ECS path with an empty cluster string, which AWS's ECS API treats as the literal "default" cluster, and with no fleet binding to match it, oab-mcp fell back to the local machine's default AWS credential chain.
  • Reproduced live: stopping the seaturtle k8s test agent (studio-fleet/orbstack) instead tried to scale a same-named ECS service in a different (wrong) AWS account — AccessDeniedException on ecs:UpdateService.
  • t_scale now checks the named fleet's runtime first (mirroring t_list/t_get/t_runtime_context) and calls the new scp::scale_k8s_deployment (K8sDriver::scale, already existed from feat(oabctl): K8sDriver skeleton — apply/scale/delete against a Deployment (slice 3b) #99) when it's k8s, before ever touching the ECS cluster arg. Console's start/stop button and the Tauri deploy_scale bridge now thread fleet through alongside cluster, same as the existing deploy_list/runtime_context calls.

Test plan

  • cargo check -p oab-mcp -p studio-cp — clean
  • console: npx tsc --noEmit — clean
  • console: npx vitest run — 117/117 passed
  • Live verify: stop/start seaturtle from the console and confirm it hits K8sDriver::scale (orbstack), not ECS — not run in this session (no local k8s/AWS creds here)

🤖 Generated with Claude Code

deploy_scale/t_scale never got a k8s branch when studio#146 made the
read path (list/get/runtime_context) k8s-aware — start/stop on a
k8s-runtime fleet silently fell through to the ECS path with an empty
cluster string, which AWS's ECS API treats as the literal "default"
cluster, and with no fleet binding to match it, oab-mcp fell back to
the local machine's default AWS credential chain. Reproduced live:
stopping the "seaturtle" k8s test agent scaled a same-named ECS
service in the wrong AWS account instead.

t_scale now checks the named fleet's runtime first (mirroring
t_list/t_get/t_runtime_context) and calls the new
scp::scale_k8s_deployment (K8sDriver::scale) when it's k8s, before
ever touching the ECS cluster arg. The console's start/stop button and
the Tauri deploy_scale bridge now thread `fleet` through alongside
`cluster`, same as the existing list/runtime_context calls.
@brettchien
brettchien merged commit 0f1b62d into main Sep 14, 2026
2 checks passed
@brettchien
brettchien deleted the orca/deploy-scale-k8s-dispatch branch September 14, 2026 09:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant