@@ -120,13 +120,34 @@ def _build_docker_images(use_test_docker_file=True):
120120
121121
122122def _remove_docker_image (image_name , raises = True ):
123+ if "CI" not in os .environ :
124+ # delete image iff in CI environment
125+ return
123126 proc = subprocess .Popen (["docker" , "rmi" , "-f" , image_name ])
124127 if proc .wait () != 0 and raises :
125128 raise SystemError ("Executing docker rmi failed." )
126129
127130
131+ def _load_docker_env ():
132+ if os .path .exists ("/var/run/docker.sock" ) or not shutil .which ("minikube" ):
133+ return
134+
135+ proc = subprocess .Popen (["minikube" , "docker-env" ], stdout = subprocess .PIPE )
136+ proc .wait (30 )
137+ for line in proc .stdout :
138+ line = line .decode ().split ("#" , 1 )[0 ]
139+ line = line .strip () # type: str | bytes
140+ export_pos = line .find ("export" )
141+ if export_pos < 0 :
142+ continue
143+ line = line [export_pos + 6 :].strip ()
144+ var , value = line .split ("=" , 1 )
145+ os .environ [var ] = value .strip ('"' )
146+
147+
128148@contextmanager
129149def _start_kube_cluster (use_test_docker_file = True , ** kwargs ):
150+ _load_docker_env ()
130151 image_name = _build_docker_images (use_test_docker_file = use_test_docker_file )
131152
132153 temp_spill_dir = tempfile .mkdtemp (prefix = "test-mars-k8s-" )
@@ -208,7 +229,7 @@ def _start_kube_cluster(use_test_docker_file=True, **kwargs):
208229 _remove_docker_image (image_name , False )
209230
210231
211- @pytest .mark .parametrize ("use_test_docker_file" , [False , True ])
232+ @pytest .mark .parametrize ("use_test_docker_file" , [True , False ])
212233@pytest .mark .skipif (not kube_available , reason = "Cannot run without kubernetes" )
213234def test_run_in_kubernetes (use_test_docker_file ):
214235 with _start_kube_cluster (
@@ -240,6 +261,7 @@ def test_run_in_kubernetes(use_test_docker_file):
240261 new = lambda * _ , ** __ : None ,
241262)
242263def test_create_timeout ():
264+ _load_docker_env ()
243265 api_client = k8s_config .new_client_from_config ()
244266
245267 cluster = None
0 commit comments