diff --git a/dagster_uc/uc_handler.py b/dagster_uc/uc_handler.py index 98fc7c9..27bf2d0 100644 --- a/dagster_uc/uc_handler.py +++ b/dagster_uc/uc_handler.py @@ -17,6 +17,7 @@ from kr8s.objects import RoleBinding as RoleBinding from kr8s.objects import Service as Service from kr8s.objects import ServiceAccount as ServiceAccount +from packaging.version import Version from dagster_uc.config import UserCodeDeploymentsConfig from dagster_uc.configmaps import BASE_CONFIGMAP, BASE_CONFIGMAP_DATA @@ -430,10 +431,25 @@ def get_deployment_name(self, deployment_name_suffix: str | None = None) -> str: def _ensure_dagster_version_match(self) -> None: """Raises an exception if the cluster version of dagster is different than the local version""" logger.debug("Going to read the cluster dagster version...") - local_dagster_version = self.config.dagster_version - cluster_dagster_version = self._read_namespaced_config_map("dagster-instance")["metadata"][ - "labels" - ]["chart"].split("-")[1] + local_dagster_version = Version(self.config.dagster_version) + + ## GETS cluster version from dagster deamon pod + deamon_pod = cast( + list[Pod], + self.api.get(Pod, label_selector="deployment=daemon", namespace=self.config.namespace), + )[0] + + ex = deamon_pod.exec(command=["dagster", "--version"]) + output = ex.stdout.decode("ascii") # type: ignore + cluster_dagster_version = re.findall("version (.*)", output) + + if len(cluster_dagster_version) != 1: + raise Exception( + f"Failed parsing the cluster dagster version, exec response from container `{output}`", + ) + else: + cluster_dagster_version = Version(cluster_dagster_version[0]) + logger.debug(f"Cluster dagster version detected to be '{cluster_dagster_version}'") if not cluster_dagster_version == local_dagster_version: raise Exception( diff --git a/dagster_uc/utils.py b/dagster_uc/utils.py index 3de984d..9ab6a5e 100644 --- a/dagster_uc/utils.py +++ b/dagster_uc/utils.py @@ -161,7 +161,7 @@ def build_and_push( BuildTool.podman.value, "build", "-f", - os.path.join(repository_root, dockerfile), + os.path.join(os.getcwd(), dockerfile), "-t", os.path.join(image_registry, f"{image_name}:{tag}"), "--build-arg=BRANCH_NAME=" + branch_name, diff --git a/pyproject.toml b/pyproject.toml index d625c77..2fc990d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,10 @@ [project] name = "dagster-uc" -version = "0.2.1" -authors = [{name = "Stefan Verbruggen", email="27513235+sverbruggen@users.noreply.github.com"}, {name = "Ion Koutsouris"}] +version = "0.2.2" +authors = [ + {name = "Stefan Verbruggen"}, + {name = "Ion Koutsouris"}, + ] description = "CLI for managing user code deployments of a Dagster instance that was deployed on kubernetes." readme = "README.md" requires-python = ">=3.9" @@ -159,4 +162,4 @@ suppress-none-returning = true [tool.ruff.lint.pydocstyle] # Use Google-style docstrings. -convention = "google" \ No newline at end of file +convention = "google"