I see the issue, but I'm not sure it means the SPA architecture itself is
wrong.

My understanding is that Polaris Console was never positioned as a
multi-tenant web application. It is closer to a standalone client
application that happens to run in a browser and is configured to talk to a
specific Polaris endpoint. In that model, having the browser call the
configured Polaris REST API directly seems consistent with the current
design.

The problem seems more like a mismatch in local debugging configuration. If
VITE_POLARIS_API_URL is set to an in-cluster DNS name such as
http://polaris:8181, it will only work for clients that can resolve and
reach that address. A browser running outside the cluster through a console
port-forward cannot do that.

I think we can improve the developer experience with clearer documentation,
better examples for port-forward workflows. However, I do not think this
issue alone suggests that Polaris Console should move away from the SPA
model.

Yufei


On Mon, Jun 1, 2026 at 9:08 PM Yong Zheng <[email protected]> wrote:

> Hi everyone,
>
> While poking around polaris console during the weekend, I have both the
> Polaris server and Polaris console deployed in the same k8s namespace (in
> this case, polaris). The console nginx serves the SPA to the browser, and
> VITE_POLARIS_API_URL is set to http://polaris:8181 (the in-cluster
> service DNS name).
>
> When accessing via kubectl port-forward svc/polaris-console 8080:80:
>
> 1. Browser loads the SPA from localhost:8080 (port-forward to console pod)
> 2. JS executes in the browser and calls VITE_POLARIS_API_URL (defaults to
> http://polaris:8181)
> 3. Browser resolves polaris using the client machine's DNS, not in-cluster
> DNS (fails with net::ERR_NAME_NOT_RESOLVED when debugging from browser as I
> am not seeing any logs on the console and no incoming requests to the
> polaris pod)
> 4. The error surfaces as "Network Error" in the UI with no server-side logs
>
> The port-forward tunnel only covers traffic to its own port (8080). The
> API requests are independent HTTP calls from the browser that bypass the
> tunnel entirely. The console nginx is just a static file server and never
> sees these requests, thus no logs from the console pod.
>
> Not sure if this is just me, but this UX feels odd. Wondering if the
> community thinks a pure SPA is the right call here, or if there's a better
> approach.
>
> Thanks,
> Yong Zheng
>

Reply via email to