Skip to content

fix(cluster): poll after up --profile instead of claiming Active#72

Merged
hbrombeer merged 1 commit into
mainfrom
feat/cluster-up-poll
Jul 11, 2026
Merged

fix(cluster): poll after up --profile instead of claiming Active#72
hbrombeer merged 1 commit into
mainfrom
feat/cluster-up-poll

Conversation

@hbrombeer

Copy link
Copy Markdown
Member

Client-side follow-up to groundsgg/grounds-forge#439. Merge that first.

Why

forge no longer provisions on the request path — POST /v1/cluster/up now enqueues and a background worker reconciles (this is what lets the internet-facing forge api pod drop the cluster-wide RBAC that currently lets it escalate to cluster-admin). So the response comes back state=creating, not active.

The legacy --profile path printed "Workspace Active" and exited the moment the request returned. Post-change that would report success while the vCluster is still building — and stay silent if the provision later failed.

What

Reuse waitForBundle, the generic GET /v1/cluster poller the default bundle path already uses, and exit non-zero when the workspace ends failed.

The default (bundle) path already polled and is unchanged. ClusterUp needed no change — doRequest already accepts any status < 400.

Verification

go build + go vet + package tests pass. waitForBundle is directly covered by existing tests; BundleProgressSummary(nil) returns "", so the minigame/platform profiles (which carry no bundleProgress) fall through to the plain state: line rather than nil-dereferencing.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AXYNq1wXz2hFg4yzPsHdDx

forge no longer provisions on the request path: `POST /v1/cluster/up` enqueues
and a background worker reconciles, so the response now carries state=creating.
The legacy --profile path printed "Workspace Active" and exited the moment the
request returned, which would have reported success while the vCluster was
still being built — and said nothing at all when the provision later failed.

Reuse waitForBundle (a generic GET /v1/cluster poller, already used by the
default bundle path) and exit non-zero on a failed provision.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AXYNq1wXz2hFg4yzPsHdDx
@hbrombeer hbrombeer merged commit b086e5e into main Jul 11, 2026
5 checks passed
@hbrombeer hbrombeer deleted the feat/cluster-up-poll branch July 11, 2026 17:16
This was referenced Jul 11, 2026
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