Fix sgl-router silently parse selector wrongly causing OME fail to discover pods (#14359)

This commit is contained in:
fzyzcjy
2025-12-04 09:56:37 +08:00
committed by GitHub
parent d42c167bfd
commit df026bb110
2 changed files with 21 additions and 6 deletions

View File

@@ -718,6 +718,10 @@ class RouterArgs:
if not selector_list:
return {}
# Support `- --selector\n- a=b c=d` case
if len(selector_list) == 1 and (" " in selector_list[0]):
selector_list = selector_list[0].split(" ")
selector = {}
for item in selector_list:
if "=" in item:

View File

@@ -476,7 +476,7 @@ class TestParseRouterArgs:
def test_parse_service_discovery_args(self):
"""Test parsing service discovery arguments."""
args = [
args_a = [
"--service-discovery",
"--selector",
"app=worker",
@@ -486,13 +486,24 @@ class TestParseRouterArgs:
"--service-discovery-namespace",
"default",
]
args_b = [
"--service-discovery",
"--selector",
# OME has this style
"app=worker env=prod",
"--service-discovery-port",
"8080",
"--service-discovery-namespace",
"default",
]
router_args = parse_router_args(args)
for args in [args_a, args_b]:
router_args = parse_router_args(args)
assert router_args.service_discovery is True
assert router_args.selector == {"app": "worker", "env": "prod"}
assert router_args.service_discovery_port == 8080
assert router_args.service_discovery_namespace == "default"
assert router_args.service_discovery is True
assert router_args.selector == {"app": "worker", "env": "prod"}
assert router_args.service_discovery_port == 8080
assert router_args.service_discovery_namespace == "default"
def test_parse_retry_and_circuit_breaker_args(self):
"""Test parsing retry and circuit breaker arguments."""