Skip to content

Commit 3e692cc

Browse files
committed
fix: auto-detect namespace
1 parent 1166939 commit 3e692cc

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

src/codeflare_sdk/ray/rayjobs/rayjob.py

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
from typing import Dict, Any, Optional, Tuple
2121
from python_client.kuberay_job_api import RayjobApi
2222

23-
from ..cluster.cluster import Cluster
2423
from ..cluster.config import ClusterConfiguration
2524
from ..cluster.build_ray_cluster import build_ray_cluster
25+
from ...common.utils import get_current_namespace
2626

2727
from .status import (
2828
RayJobDeploymentStatus,
@@ -48,7 +48,7 @@ def __init__(
4848
job_name: str,
4949
cluster_name: Optional[str] = None,
5050
cluster_config: Optional[ClusterConfiguration] = None,
51-
namespace: str = "default",
51+
namespace: Optional[str] = None,
5252
entrypoint: Optional[str] = None,
5353
runtime_env: Optional[Dict[str, Any]] = None,
5454
shutdown_after_job_finishes: bool = True,
@@ -62,7 +62,7 @@ def __init__(
6262
job_name: The name for the Ray job
6363
cluster_name: The name of an existing Ray cluster (optional if cluster_config provided)
6464
cluster_config: Configuration for creating a new cluster (optional if cluster_name provided)
65-
namespace: The Kubernetes namespace (default: "default")
65+
namespace: The Kubernetes namespace
6666
entrypoint: The Python script or command to run (required for submission)
6767
runtime_env: Ray runtime environment configuration (optional)
6868
shutdown_after_job_finishes: Whether to automatically cleanup the cluster after job completion (default: True)
@@ -77,13 +77,23 @@ def __init__(
7777
raise ValueError("Cannot specify both cluster_name and cluster_config")
7878

7979
self.name = job_name
80-
self.namespace = namespace
8180
self.entrypoint = entrypoint
8281
self.runtime_env = runtime_env
8382
self.shutdown_after_job_finishes = shutdown_after_job_finishes
8483
self.ttl_seconds_after_finished = ttl_seconds_after_finished
8584
self.active_deadline_seconds = active_deadline_seconds
8685

86+
if namespace is None:
87+
detected_namespace = get_current_namespace()
88+
if detected_namespace:
89+
self.namespace = detected_namespace
90+
logger.info(f"Auto-detected namespace: {self.namespace}")
91+
else:
92+
self.namespace = "default"
93+
logger.warning("Could not auto-detect namespace, using 'default'")
94+
else:
95+
self.namespace = namespace
96+
8797
# Cluster configuration
8898
self._cluster_name = cluster_name
8999
self._cluster_config = cluster_config
@@ -92,10 +102,10 @@ def __init__(
92102
if cluster_config is not None:
93103
# Ensure cluster config has the same namespace as the job
94104
if cluster_config.namespace is None:
95-
cluster_config.namespace = namespace
96-
elif cluster_config.namespace != namespace:
105+
cluster_config.namespace = self.namespace
106+
elif cluster_config.namespace != self.namespace:
97107
logger.warning(
98-
f"Cluster config namespace ({cluster_config.namespace}) differs from job namespace ({namespace})"
108+
f"Cluster config namespace ({cluster_config.namespace}) differs from job namespace ({self.namespace})"
99109
)
100110

101111
self.cluster_name = cluster_config.name or f"{job_name}-cluster"

0 commit comments

Comments
 (0)