- Conceptual guides
- Environment configurations
Environment configurations
Nebari comes with two default environments that are built during deployment:
nebari-git-nebari-git-daskto run distributed workflows with Dask,nebari-git-nebari-git-dashboardto [create shareable dashboard][create-dashboards].
The configuration of each environment in Nebari is achieved through a environment.<filename> mapping to a conda environment specification. To configure environments, you can add entries to the nebari-config.yml file located in the deployment repository, which will then be used by conda-store to create or update the environment during deployment.
For example, the following snippet shows an environment configuration in nebari-config.yml:
### Example environment configurationenvironments: "environment-example.yaml": name: example channels: - conda-forge - defaults dependencies: - python=3.9 - ipykernel - ipywidgets - numpy - numba - pandas - jinja2 - pyyamlIn this example, the environment is defined with the name "example" and includes various dependencies specified as a list of package names and versions. Additionally, two channels, conda-forge and defaults, are specified to be used to retrieve the packages during environment creation.
After you modify an environment definition in the configuration, it may take 1-10 minutes for the changes to take effect after you deploy the configuration. Once the environment is updated, you can access it from the JupyterLab environment selection menu under the nebari-git namespace. For example, if you created an environment called example (as show in the above example), it will be available as nebari-git-nebari-git-example.
Built-in namespaces:
Section titled “Built-in namespaces:”In Nebari, namespaces are used to organize and isolate resources. Nebari has two built-in namespaces: nebari-git and global.
The nebari-git namespace refers to all available environments created using the nebari-config.yaml file and is available for all users and services. On the other hand, the global namespace (previously known as default) is the default namespace used by conda-store to manage its internal components and workers. It is designed for environments that are specific to a user or a service.
For more information, please refer to conda-store administration documentation related to CondaStore.default_namespace and CondaStore.filesystem_namespace respectively.
When you specify an environment in nebari-config.yml, it will be made available for all users and services under the nebari-git namespace. Conda-store is responsible for creating them upon request from the deployment process.
However, the conda-store permission model restricts user intervention for both namespaces. This means that nebari-git environments can only be modified within the Nebari deployments, while global environments can be locally changed via direct interaction with conda activate. However, any changes made to global environments will only be perceived by the user and not propagated to other users.