Managing Conda Environments

QHub has several ways to manage environments for users. The traditional approach, available in older QHub deployments, is still available by editing the qhub-config.yaml environments: key within the configuration file. Here’s an example:

environments:
  "environment-default.yaml":
    name: default
    channels:
      - conda-forge
      - defaults
    dependencies:
      - python=3.7
      - ipykernel
      - ipywidgets
      - qhub-dask==0.4.1
      - numpy
      - numba
      - pandas

When the environments are updated in this file and an automated qhub deploy is kicked off, the environments are updated for all users. There is also a way to easily create ad-hoc environments without modifying the file. Visiting https://<qhub-domain>/conda-store/ will take you to Conda-Store an open source tool for managing conda environments within enterprise environments. For now the username is anything with a password of password, but soon this will be integrated with central authentication via keycloak. The create environment endpoint will allow you to easily create a new environment. Additionally, you can update existing environments by visiting the environment and clicking edit.

NOTE: Environments, even global ones, created from the /conda-store user interface CANNOT be used when running dashboards via the CDSDashboard interface. Only those added via the qhub-config.yaml.

In order for your new environment to be properly visible in the list of available kernels, you will need to include ipykernel and ipywidgets in your environment’s dependency list. Also, if using Dask, you will need to include extra dependencies to maintain version compatibility between the Dask client and server.

We are working towards developing an extension within JupyterLab for editing these environments, but it is not complete at the moment. Follow gator for progress on this extension.