@@ -987,41 +987,55 @@ def _prepare_create(self):
987987 return
988988 self ._mutate_create_pod = lambda o : o
989989 if not envs .GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT :
990- logger .debug ("Skipping mirrored deployment" )
990+ logger .debug ("Mirrored deployment disabled " )
991991 return
992992
993993 # Retrieve self-pod info.
994994 core_api = kubernetes .client .CoreV1Api (self ._client )
995- ## - Get Pod namespace, default to "default" if not found.
996- self_pod_namespace = "default"
997- self_pod_namespace_f = Path (
998- "/var/run/secrets/kubernetes.io/serviceaccount/namespace" ,
999- )
1000- if self_pod_namespace_f .exists ():
1001- with self_pod_namespace_f .open ("r" ) as f :
1002- self_pod_namespace = f .read ().strip ()
1003995 ## - Get Pod name, default to hostname if not set.
1004996 self_pod_name = envs .GPUSTACK_RUNTIME_DEPLOY_MIRRORED_NAME
1005997 if not self_pod_name :
1006998 self_pod_name = socket .gethostname ()
1007999 logger .warning (
1008- "Mirrored deployment enabled but no Pod name set, using hostname(%s) instead" ,
1000+ "Mirrored deployment enabled, but no Pod name set, using hostname(%s) instead" ,
10091001 self_pod_name ,
10101002 )
1003+ ## - Get Pod namespace, default to "default" if not found.
1004+ try :
1005+ self_pod_namespace_f = Path (
1006+ "/var/run/secrets/kubernetes.io/serviceaccount/namespace" ,
1007+ )
1008+ self_pod_namespace = self_pod_namespace_f .read_text (
1009+ encoding = "utf-8" ,
1010+ ).strip ()
1011+ except (FileNotFoundError , OSError ):
1012+ self_pod_namespace = "default"
1013+ logger .warning (
1014+ "Mirrored deployment enabled, but no Pod namespace found, using 'default' instead" ,
1015+ )
10111016 try :
10121017 self_pod = core_api .read_namespaced_pod (
10131018 name = self_pod_name ,
10141019 namespace = self_pod_namespace ,
10151020 )
1016- except kubernetes .client .exceptions .ApiException as e :
1017- msg = f"Mirrored deployment enabled but failed to get self Pod { self_pod_namespace } /{ self_pod_name } "
1018- raise OperationError (msg ) from e
1021+ except kubernetes .client .exceptions .ApiException :
1022+ output_log = logger .warning
1023+ if logger .isEnabledFor (logging .DEBUG ):
1024+ output_log = logger .exception
1025+ output_log (
1026+ f"Mirrored deployment enabled, but failed to get self Pod { self_pod_namespace } /{ self_pod_name } , skipping" ,
1027+ )
1028+ return
10191029 ## - Get the first Container, or the Container named "default" if exists.
1020- self_container = self_pod .spec .containers [0 ]
10211030 self_container = next (
10221031 (c for c in self_pod .spec .containers if c .name == "default" ),
1023- self_container ,
1032+ None ,
10241033 )
1034+ if not self_container :
1035+ self_container = self_pod .spec .containers [0 ]
1036+ logger .warning (
1037+ "Mirrored deployment enabled, but no Container named 'default' found, using the first Container instead" ,
1038+ )
10251039
10261040 # Preprocess mirrored deployment options.
10271041 in_same_namespace = (
0 commit comments