Skip to content

Commit 1cdb877

Browse files
committed
refactor: add model_types for K8sServiceNameServiceDiscovery
1 parent 03da839 commit 1cdb877

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

src/vllm_router/service_discovery.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1042,6 +1042,20 @@ def _get_model_label(self, service) -> Optional[str]:
10421042
return None
10431043
return service.spec.selector.get("model")
10441044

1045+
def _get_model_type(self, service) -> str:
1046+
"""
1047+
Get the model type from the service's metadata labels.
1048+
1049+
Args:
1050+
service: The Kubernetes service object
1051+
1052+
Returns:
1053+
The model type if found, 'chat' as default otherwise
1054+
"""
1055+
if not service.metadata.labels:
1056+
return "chat" # Default to chat model type
1057+
return service.metadata.labels.get("model_type", "chat")
1058+
10451059
def _watch_engines(self):
10461060
while self.running:
10471061
try:
@@ -1064,21 +1078,24 @@ def _watch_engines(self):
10641078
if is_service_ready:
10651079
model_names = self._get_model_names(service_name)
10661080
model_label = self._get_model_label(service)
1081+
model_type = self._get_model_type(service)
10671082
else:
10681083
model_names = []
10691084
model_label = None
1085+
model_type = None
10701086
self._on_engine_update(
10711087
service_name,
10721088
event_type,
10731089
is_service_ready,
10741090
model_names,
10751091
model_label,
1092+
model_type,
10761093
)
10771094
except Exception as e:
10781095
logger.error(f"K8s watcher error: {e}")
10791096
time.sleep(0.5)
10801097

1081-
def _add_engine(self, engine_name: str, model_names: List[str], model_label: str):
1098+
def _add_engine(self, engine_name: str, model_names: List[str], model_label: str, model_type: str):
10821099
logger.info(
10831100
f"Discovered new serving engine {engine_name} at "
10841101
f"running models: {model_names}"
@@ -1100,6 +1117,7 @@ def _add_engine(self, engine_name: str, model_names: List[str], model_label: str
11001117
added_timestamp=int(time.time()),
11011118
Id=str(uuid.uuid5(uuid.NAMESPACE_DNS, engine_name)),
11021119
model_label=model_label,
1120+
model_type=model_type,
11031121
sleep=sleep_status,
11041122
service_name=engine_name,
11051123
namespace=self.namespace,
@@ -1121,6 +1139,7 @@ def _on_engine_update(
11211139
is_service_ready: bool,
11221140
model_names: List[str],
11231141
model_label: Optional[str],
1142+
model_type: Optional[str],
11241143
) -> None:
11251144
if event == "ADDED":
11261145
if not engine_name:
@@ -1132,7 +1151,7 @@ def _on_engine_update(
11321151
if not model_names:
11331152
return
11341153

1135-
self._add_engine(engine_name, model_names, model_label)
1154+
self._add_engine(engine_name, model_names, model_label, model_type)
11361155

11371156
elif event == "DELETED":
11381157
if engine_name not in self.available_engines:
@@ -1145,7 +1164,7 @@ def _on_engine_update(
11451164
return
11461165

11471166
if is_service_ready and model_names:
1148-
self._add_engine(engine_name, model_names, model_label)
1167+
self._add_engine(engine_name, model_names, model_label, model_type)
11491168
return
11501169

11511170
if (

0 commit comments

Comments
 (0)