def test_run_with_mounts(self, db: Session, client: TestClient): runtime = self._generate_runtime() # Mount v3io - Set the env variable, so auto_mount() will pick it up and mount v3io v3io_access_key = "1111-2222-3333-4444" v3io_user = "******" os.environ["V3IO_ACCESS_KEY"] = v3io_access_key os.environ["V3IO_USERNAME"] = v3io_user runtime.apply(auto_mount()) self._execute_run(runtime) self._assert_pod_creation_config() self._assert_v3io_mount_configured(v3io_user, v3io_access_key) # Mount a PVC. Create a new runtime so we don't have both v3io and the PVC mounted runtime = self._generate_runtime() pvc_name = "test-pvc" pvc_mount_path = "/volume/mount/path" volume_name = "test-volume-name" runtime.apply(auto_mount(pvc_name, pvc_mount_path, volume_name)) self._execute_run(runtime) self._assert_pod_creation_config() self._assert_pvc_mount_configured(pvc_name, pvc_mount_path, volume_name)
def _generate_runtime(self): # This is following the steps in # https://docs.mlrun.org/en/latest/runtimes/dask-mlrun.html#set-up-the-environment mlconf.remote_host = "http://remote_host" os.environ["V3IO_USERNAME"] = self.v3io_user mlrun.set_environment( project=self.project, access_key=self.v3io_access_key, artifact_path=self.artifact_path, ) dask_cluster = mlrun.new_function(self.name, project=self.project, kind="dask", image=self.image_name) dask_cluster.apply(auto_mount()) dask_cluster.spec.min_replicas = 1 dask_cluster.spec.max_replicas = 4 dask_cluster.spec.remote = True dask_cluster.spec.service_type = "NodePort" return dask_cluster