소스 검색

fix(gateway): 修复 ConfigNode 对象调用 .get() 导致的 AttributeError

- KubeConfigMerger.config 返回 ConfigNode 而非 dict,缺少 .get() 方法
- 通过 isinstance 检查并提取 ConfigNode.value 获取实际 dict 数据
- 导入 ConfigNode 类用于类型判断
kinglee 1 주 전
부모
커밋
22cd02179e
1개의 변경된 파일3개의 추가작업 그리고 1개의 파일을 삭제
  1. 3 1
      gpustack/gateway/__init__.py

+ 3 - 1
gpustack/gateway/__init__.py

@@ -10,7 +10,7 @@ from typing import Any, Dict, Tuple, List, Optional, Literal
 from pydantic import BaseModel
 from kubernetes_asyncio import client as k8s_client
 from kubernetes_asyncio.client import Configuration
-from kubernetes_asyncio.config.kube_config import KubeConfigLoader, KubeConfigMerger
+from kubernetes_asyncio.config.kube_config import KubeConfigLoader, KubeConfigMerger, ConfigNode
 from kubernetes_asyncio.config.incluster_config import (
     InClusterConfigLoader,
     SERVICE_TOKEN_FILENAME,
@@ -83,6 +83,8 @@ def init_async_k8s_config(cfg: Config):
             logger.debug(f"Kubeconfig not found at {kubeconfig_path}, skipping k8s config initialization")
             return
         config_dict = KubeConfigMerger(cfg.gateway_kubeconfig).config
+        if isinstance(config_dict, ConfigNode):
+            config_dict = config_dict.value
         if not config_dict or not config_dict.get("current-context"):
             logger.debug(f"Kubeconfig at {kubeconfig_path} is empty or missing current-context, skipping k8s config initialization")
             return