From 0c020ab8c073e09d1bcacfc3f8f1da670030d6cd Mon Sep 17 00:00:00 2001 From: Kris Hicks Date: Fri, 14 Aug 2026 13:16:58 -0700 Subject: [PATCH] fix(gateway): respect OPENSHELL_BIND_ADDRESS in dev task This is convenient when you want to run a local gateway pointed at a remote compute driver so that the supervisor can reach across the network to the gateway which is listening on 0.0.0.0. Signed-off-by: Kris Hicks --- tasks/scripts/gateway.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tasks/scripts/gateway.sh b/tasks/scripts/gateway.sh index 69a487e00d..51eb1d0eee 100644 --- a/tasks/scripts/gateway.sh +++ b/tasks/scripts/gateway.sh @@ -35,6 +35,8 @@ Options: Environment: OPENSHELL_DRIVERS Driver override used by openshell-gateway. OPENSHELL_GATEWAY_NAME Gateway name for generic podman/kubernetes runs. + OPENSHELL_BIND_ADDRESS Gateway listener address. Defaults to 127.0.0.1, + or ::1 for Podman Machine on macOS. OPENSHELL_SERVER_PORT Gateway port. Defaults to 8080 for Kubernetes, 18080 for Podman/Docker, and 18081 for VM. OPENSHELL_SUPERVISOR_IMAGE @@ -300,13 +302,16 @@ SANDBOX_IMAGE="${OPENSHELL_SANDBOX_IMAGE:-ghcr.io/nvidia/openshell-community/san SANDBOX_IMAGE_PULL_POLICY="${OPENSHELL_SANDBOX_IMAGE_PULL_POLICY:-IfNotPresent}" GRPC_ENDPOINT="${OPENSHELL_GRPC_ENDPOINT:-}" LOG_LEVEL="${OPENSHELL_LOG_LEVEL:-info}" -PRIMARY_BIND_IP="127.0.0.1" +PRIMARY_BIND_IP="${OPENSHELL_BIND_ADDRESS:-127.0.0.1}" CLI_ENDPOINT_HOST="127.0.0.1" -if [[ "${DRIVER}" == "podman" && "$(uname -s)" == "Darwin" ]]; then +if [[ -z "${OPENSHELL_BIND_ADDRESS:-}" \ + && "${DRIVER}" == "podman" \ + && "$(uname -s)" == "Darwin" ]]; then # Podman Machine reserves IPv4 loopback for its callback-only listener. # Keep the primary listener distinct while using a hostname that resolves - # to IPv6 loopback for local CLI connections. + # to IPv6 loopback for local CLI connections. An explicit bind address + # overrides this platform default. PRIMARY_BIND_IP="::1" CLI_ENDPOINT_HOST="localhost" fi @@ -437,6 +442,7 @@ register_gateway_metadata "${GATEWAY_NAME}" "${GATEWAY_ENDPOINT}" "${PORT}" echo "Starting standalone ${DRIVER} gateway..." echo " gateway: ${GATEWAY_NAME}" echo " endpoint: ${GATEWAY_ENDPOINT}" +echo " bind: ${PRIMARY_BIND_IP}:${PORT}" echo " namespace: ${SANDBOX_NAMESPACE}" echo " state dir: ${STATE_DIR}" if [[ "${DRIVER}" == "podman" ]]; then