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
Use dynamic ports for Steve to avoid conflicts with other software
Steve previously listened on hardcoded port 9443, which could conflict
with other software. Allocate both the HTTPS and HTTP ports dynamically
at startup and propagate them to Steve, the dashboard proxy, and the
certificate-error handler.
Key changes:
- Add getAvailablePorts(), which binds all requested ports simultaneously
before releasing any, guaranteeing distinct values despite the inherent
TOCTOU window.
- Accept port arguments in Steve.start() instead of using a constant.
Let startup errors propagate to the caller instead of swallowing them;
the state-changed handler catches them locally so the Kubernetes ready
notification still reaches the UI.
- Recreate dashboard proxy middleware on each Steve start via a new
setStevePort() method. Express routes use wrapper functions that
dereference the current proxy instances, so routes survive recreation
without re-registration.
- Add /api/steve-port endpoint for Rancher Dashboard to discover the
dynamic HTTPS port.
- Rename the networking module's port setter to setSteveCertPort() to
distinguish it from DashboardServer.setStevePort().
- Bump rancherDashboard to 2.11.1.rd4 (consumes the new endpoint).
Signed-off-by: Jan Dubois <jan.dubois@suse.com>
0 commit comments