From 3440b469484405e188aa3f4a5cc3cd677d9d8bda Mon Sep 17 00:00:00 2001 From: Egor Sklyarov Date: Tue, 16 Jan 2024 13:38:56 +0100 Subject: [PATCH 1/2] Make get_latest_runner_build robuster for editable installs --- src/dstack/_internal/core/backends/base/compute.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dstack/_internal/core/backends/base/compute.py b/src/dstack/_internal/core/backends/base/compute.py index 3776a04e4d..beef72e11d 100644 --- a/src/dstack/_internal/core/backends/base/compute.py +++ b/src/dstack/_internal/core/backends/base/compute.py @@ -202,7 +202,7 @@ def get_latest_runner_build() -> Optional[str]: workflow_id = "build.yml" version_offset = 150 - repo = git.Repo(search_parent_directories=True) + repo = git.Repo(os.path.abspath(os.path.dirname(__file__)), search_parent_directories=True) for remote in repo.remotes: if re.search(rf"[@/]github\.com[:/]{owner_repo}\.", remote.url): break From 81c2b53faad26675f67fb5347eb442467277a791 Mon Sep 17 00:00:00 2001 From: Egor Sklyarov Date: Tue, 16 Jan 2024 13:47:23 +0100 Subject: [PATCH 2/2] Check the version for gateway operations --- src/dstack/_internal/core/backends/base/compute.py | 2 ++ src/dstack/_internal/server/services/gateways/__init__.py | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/dstack/_internal/core/backends/base/compute.py b/src/dstack/_internal/core/backends/base/compute.py index beef72e11d..81522b4884 100644 --- a/src/dstack/_internal/core/backends/base/compute.py +++ b/src/dstack/_internal/core/backends/base/compute.py @@ -241,6 +241,8 @@ def get_dstack_gateway_wheel(build: str) -> str: def get_dstack_gateway_commands() -> List[str]: build = get_dstack_runner_version() + if build == "latest": + raise ValueError("`latest` is not appropriate version for a gateway") return [ "mkdir -p /home/ubuntu/dstack", "python3 -m venv /home/ubuntu/dstack/blue", diff --git a/src/dstack/_internal/server/services/gateways/__init__.py b/src/dstack/_internal/server/services/gateways/__init__.py index 0cb4a78675..575600d511 100644 --- a/src/dstack/_internal/server/services/gateways/__init__.py +++ b/src/dstack/_internal/server/services/gateways/__init__.py @@ -297,7 +297,7 @@ def _gateway_preflight( async def update_gateways(session: AsyncSession): if settings.SKIP_GATEWAY_UPDATE: - logger.debug("Skipping gateway update") + logger.debug("Skipping gateway update due to DSTACK_SKIP_GATEWAY_UPDATE env variable") return res = await session.execute( @@ -306,8 +306,11 @@ async def update_gateways(session: AsyncSession): gateway_computes = res.scalars().all() build = get_dstack_runner_version() - aws = [run_async(_update_gateway, gateway, build) for gateway in gateway_computes] + if build == "latest": + logger.debug("Skipping gateway update due to `latest` version being used") + return + aws = [run_async(_update_gateway, gateway, build) for gateway in gateway_computes] for error, gateway in zip( await asyncio.gather(*aws, return_exceptions=True), gateway_computes ):