From 25d94e51abeb0c593495f8547c7a5a27853dd4f9 Mon Sep 17 00:00:00 2001 From: eskild <42120229+iameskild@users.noreply.github.com> Date: Thu, 17 Mar 2022 21:02:47 +0100 Subject: [PATCH] Only list active conda-envs for dask-gateway (#1162) * Only list available conda-envs * Add QHUB_GH_BRANCH as env var to workflows * Add QHUB_GH_BRANCH as env var to workflows * Update gateway_config.py * Pin Jupyterlab version * Add jupyter_server dep * Remove jupyter_server dep * Avoid troublesome jupyter_server versions * Fix * Fix Co-authored-by: Christopher Ostrouchov --- qhub/provider/cicd/github.py | 5 ++++- .../image/jupyterlab/environment.yaml | 1 + .../dask-gateway/files/gateway_config.py | 21 ++++++++++++------- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/qhub/provider/cicd/github.py b/qhub/provider/cicd/github.py index df6797843d..4317b6e10e 100644 --- a/qhub/provider/cicd/github.py +++ b/qhub/provider/cicd/github.py @@ -95,6 +95,9 @@ def gha_env_vars(config): "GITHUB_TOKEN": "${{ secrets.GITHUB_TOKEN }}", } + if os.environ.get("QHUB_GH_BRANCH"): + env_vars["QHUB_GH_BRANCH"] = "${{ secrets.QHUB_GH_BRANCH }}" + if config["provider"] == "aws": env_vars["AWS_ACCESS_KEY_ID"] = "${{ secrets.AWS_ACCESS_KEY_ID }}" env_vars["AWS_SECRET_ACCESS_KEY"] = "${{ secrets.AWS_SECRET_ACCESS_KEY }}" @@ -266,7 +269,7 @@ def gen_qhub_linter(config): env_vars = {} qhub_gh_branch = os.environ.get("QHUB_GH_BRANCH") if qhub_gh_branch: - env_vars["QHUB_GH_BRANCH"] = qhub_gh_branch + env_vars["QHUB_GH_BRANCH"] = "${{ secrets.QHUB_GH_BRANCH }}" else: env_vars = None diff --git a/qhub/template/image/jupyterlab/environment.yaml b/qhub/template/image/jupyterlab/environment.yaml index 31f54bef02..9ee0396795 100644 --- a/qhub/template/image/jupyterlab/environment.yaml +++ b/qhub/template/image/jupyterlab/environment.yaml @@ -9,6 +9,7 @@ dependencies: - nb_conda_kernels - ipython > 7 - jupyter-server-proxy + - "jupyter_server>=1.15.6 | <1.15" - jupyterlab >=3 - jupyter_client - jupyter_console diff --git a/qhub/template/stages/07-kubernetes-services/modules/kubernetes/services/dask-gateway/files/gateway_config.py b/qhub/template/stages/07-kubernetes-services/modules/kubernetes/services/dask-gateway/files/gateway_config.py index 13e6ff8938..75f702e4dc 100644 --- a/qhub/template/stages/07-kubernetes-services/modules/kubernetes/services/dask-gateway/files/gateway_config.py +++ b/qhub/template/stages/07-kubernetes-services/modules/kubernetes/services/dask-gateway/files/gateway_config.py @@ -86,12 +86,18 @@ async def authenticate(self, request): # ==================== Profiles ======================= def get_packages(conda_prefix): - packages = set() - for filename in os.listdir(os.path.join(conda_prefix, "conda-meta")): - if filename.endswith(".json"): - with open(os.path.join(conda_prefix, "conda-meta", filename)) as f: - packages.add(json.load(f).get("name")) - return packages + try: + packages = set() + for filename in os.listdir(os.path.join(conda_prefix, "conda-meta")): + if filename.endswith(".json"): + with open(os.path.join(conda_prefix, "conda-meta", filename)) as f: + packages.add(json.load(f).get("name")) + return packages + except OSError as e: + import logging + + logger = logging.getLogger() + logger.error(f"An issue with a conda environment was encountered.\n{e}") def get_conda_prefixes(conda_store_mount): @@ -105,7 +111,8 @@ def get_conda_prefixes(conda_store_mount): def list_dask_environments(conda_store_mount): for namespace, name, conda_prefix in get_conda_prefixes(conda_store_mount): - if {"dask", "distributed"} <= get_packages(conda_prefix): + packages = get_packages(conda_prefix) + if packages and {"dask", "distributed"} <= packages: yield namespace, name, conda_prefix