Skip to content

feat!: deploy and manage frontends in local development - #297

Merged
subnetmarco merged 2 commits into
mainfrom
feat/local-frontends
Oct 14, 2026
Merged

subnetmarco merged 2 commits into
mainfrom
feat/local-frontends

Conversation

@subnetmarco

@subnetmarco subnetmarco commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

Summary

Second of three stacked PRs for volcano deploy; based on PR1.

  • volcano frontends now targets the local development server: deploy, list, get, redeploy, delete, logs, and routes. The local server already builds and serves frontends at <id>.frontends.localhost:8080, but the CLI had no way to reach it.
  • a local frontends deploy notes on stderr that it deploys to local development and names volcano cloud frontends deploy, so a script still on the old alias sees the target change
  • a local frontends deploy prints the site URL. A new frontend has no URL until its first build finishes, so it prints the frontends get command that shows it instead. Cloud output is unchanged.
  • function routes work locally, since the local server serves them. Custom domains stay a cloud command; locally they refuse and name volcano cloud frontends domain ....
  • docs/frontends.md and docs/project-configuration.md describe both modes

Breaking: volcano frontends ... was a hidden, deprecated alias for volcano cloud frontends .... It now acts on the local server; scripts that relied on the alias must use volcano cloud frontends ....

Merge order: land #296 on main first, then retarget this PR to main before squashing, so the feat! title reaches main and release-please records the breaking change.

Verification

  • make lint
  • go test ./...
  • local-mode E2E against kong/volcano:local-nightly. The frontends scenario deploys a Next.js app locally, checks the URL hint, serves it, and redeploys it. It reads the build logs (asserting next build), creates a function route, fetches it through the frontend, deletes the route, and deletes the frontend.
  • builds and passes go test ./... on its own, without PR3

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@subnetmarco subnetmarco left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. The local tree reuses the cloud subcommands, and the domain/routes refusals follow the existing cloud-only pattern. The local-mode E2E covers the whole lifecycle, including a scoped NEXT_PUBLIC_* value reaching the build. Because of bump-minor-pre-major, feat! only bumps to 0.45.0, which seems right for retiring a hidden alias.

Two small things:

  • docs/project-configuration.md: the local path ends on the cloud config command (see the inline comment).
  • Optional: a script that still uses the old alias, run with no local server, gets the generic "run volcano start" error. A hint naming volcano cloud frontends ... on that error would make the break self-explanatory. The deprecation warning has been out for a while, so this is fine to skip.

Comment thread docs/project-configuration.md Outdated
@subnetmarco
subnetmarco force-pushed the refactor/deploy-entrypoints branch from 9f1445b to 16ae1d9 Compare October 13, 2026 16:17
@subnetmarco

Copy link
Copy Markdown
Member Author

Fixed the project-configuration.md sentence. I skipped the alias hint: when no local server is running, the error already ends with "or use 'volcano cloud ' to target your cloud project", so a script on the old alias is pointed at the cloud tree.

@swkeever swkeever left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving. Making root frontends local matches the other resource commands, and the break is documented in the footer, PR body, and docs. Local frontend support is on hosting main, and localmode-e2e passed against the nightly image.

Merge order: land #296 on main first, then retarget this PR to main before squashing. If it's squashed into refactor/deploy-entrypoints, the feat! title disappears into #296's refactor: commit and release-please won't record the breaking change or bump the version.

Non-blocking:

  • With volcano start running, a script still on the old alias now deploys, lists, or deletes local frontends and exits 0. Deploy output doesn't say "local" for a new frontend. The no-server error points to cloud, but this case gets no signal. A one-line stderr note naming the target on local frontends deploy would cover it.
  • frontends delete --help in the local tree still says "Delete a frontend from the current cloud project." (internal/cmd/frontends/delete.go:31).
  • Follow-up: volcano-skills AGENTS.md (~L307) and its copies in volcano-agentic-plugins still call volcano frontends ... a deprecated alias.

Comment thread internal/cmd/frontends/frontends.go Outdated
Comment thread docs/frontends.md Outdated
Comment thread docs/frontends.md Outdated
Comment thread tests/e2e/localmode/frontends_test.go Outdated
@subnetmarco
subnetmarco force-pushed the refactor/deploy-entrypoints branch from 16ae1d9 to 1954160 Compare October 13, 2026 17:38
Base automatically changed from refactor/deploy-entrypoints to main October 13, 2026 23:53
subnetmarco and others added 2 commits October 13, 2026 16:53
"volcano frontends" now targets the local development server like the other
root resource commands: deploy, list, get, redeploy, delete, and logs. The
local server already builds and serves frontends at
<id>.frontends.localhost:8080; the CLI had no way to reach it.

Custom domains and function routes stay cloud commands. Locally they refuse
and name "volcano cloud frontends ..." (and volcano-config.yaml for routes).

BREAKING CHANGE: "volcano frontends ..." was a hidden, deprecated alias for
"volcano cloud frontends ...". It now acts on the local development server.
Use "volcano cloud frontends ..." for cloud frontends.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ploy target

Co-authored-by: Cursor <cursoragent@cursor.com>
@subnetmarco
subnetmarco enabled auto-merge October 13, 2026 23:54
@subnetmarco
subnetmarco added this pull request to the merge queue Oct 14, 2026
Merged via the queue into main with commit b1fb326 Oct 14, 2026
11 checks passed
@subnetmarco
subnetmarco deleted the feat/local-frontends branch October 14, 2026 00:07
@kong-volcano-app kong-volcano-app Bot mentioned this pull request Oct 14, 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.

3 participants