Skip to content

Commit e9b2485

Browse files
committed
refactor: adjust mirrored deployment
Signed-off-by: thxCode <[email protected]>
1 parent a9c8a3a commit e9b2485

File tree

2 files changed

+39
-20
lines changed

2 files changed

+39
-20
lines changed

gpustack_runtime/deployer/docker.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -982,7 +982,7 @@ def _prepare_create(self):
982982
return
983983
self._mutate_create_options = lambda o: o
984984
if not envs.GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT:
985-
logger.debug("Skipping mirrored deployment")
985+
logger.debug("Mirrored deployment disabled")
986986
return
987987

988988
# Retrieve self-container info.
@@ -991,15 +991,20 @@ def _prepare_create(self):
991991
if not self_container_id:
992992
self_container_id = socket.gethostname()
993993
logger.warning(
994-
"Mirrored deployment enabled but no Container name set, using hostname(%s) instead",
994+
"Mirrored deployment enabled, but no Container name set, using hostname(%s) instead",
995995
self_container_id,
996996
)
997997
try:
998998
self_container = self._client.containers.get(self_container_id)
999999
self_image = self_container.image
1000-
except docker.errors.APIError as e:
1001-
msg = f"Mirrored deployment enabled but failed to get self Container {self_container_id}"
1002-
raise OperationError(msg) from e
1000+
except docker.errors.APIError:
1001+
output_log = logger.warning
1002+
if logger.isEnabledFor(logging.DEBUG):
1003+
output_log = logger.exception
1004+
output_log(
1005+
f"Mirrored deployment enabled, but failed to get self Container {self_container_id}, skipping",
1006+
)
1007+
return
10031008

10041009
# Process mirrored deployment options.
10051010
## - Container runtime

gpustack_runtime/deployer/kuberentes.py

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)