/qhub

QHub deployment tool

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Nebari logo mark - text will be black in light color mode and white in dark color mode.


Information Links
Project License QHUb documentation PyPI version
Community GH discussions Open an issue
CI Kubernetes Tests Tests

Table of contents

⚠️ Warning ⚠️

The project has recently been renamed from QHub to Nebari. If your deployment is is still managed by qhub, performing an inplace upgrade will IRREVOCABLY BREAK your deployment. This will cause you to lose any data stored on the platform, including but not limited to, NFS (filesystem) data, conda-store environments, Keycloak users and groups, etc. Please backup your data before attempting an upgrade.

Automated data science platform. From JupyterHub to Cloud environments with Dask Gateway.

Nebari is an open source tool that enables users to build and maintain cost-effective and scalable compute/data science platforms on HPC or on Kubernetes with minimal DevOps experience.

This repository details the Nebari (Kubernetes) version.

Not sure what to choose? Check out our Setup Initialization page.

QHub HPC

Version of Nebari based on OpenHPC.

NOTE: The tool is currently under development. Curious? Check out the Nebari HPC repository.

Nebari

The Kubernetes version of Nebari is built using Terraform, Helm, and GitHub Actions. Terraform handles the build, change, and versioning of the infrastructure. Helm helps to define, install, and manage Kubernetes. GitHub Actions is used to automatically create commits when the configuration file (nebari-config.yaml) is rendered, as well as to kick off the deployment action.

Nebari aims to abstract all these complexities for its users. Hence, it is not necessary to know any of the above mentioned technologies to have your project successfully deployed.

TLDR: If you know GitHub and feel comfortable generating and using API keys, you should have all it takes to deploy and maintain your system without the need for a dedicated DevOps team. No need to learn Kubernetes, Terraform, or Helm.

☁️ Cloud Providers

Nebari offers out-of-the-box support for Digital Ocean, Amazon AWS, GCP, and Microsoft Azure.

High-level illustration of Nebari architecture

For more details, check out the release blog post.

💻 Installation

Pre-requisites

  • Nebari is supported by macOS and Linux operating systems (Windows is NOT currently supported).
  • Compatible with Python 3.7+. New to Python? We recommend using Anaconda.
  • Adoption of virtual environments (conda, pipenv or venv) is also encouraged.

Install Nebari

To install Nebari type the following commands in your command line:

  • Install using conda:

    conda install -c conda-forge nebari
  • Install using pip:

    pip install nebari

Once finished, you can check Nebari's version (and additional CLI args) by typing:

nebari --help

If successful, the CLI output will be similar to the following:

usage: nebari [-h] [-v] {deploy,destroy,render,init,validate} ...

Nebari command line

positional arguments:
  {deploy,destroy,render,init,validate}
                        Nebari

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         Nebari version

🏷️ Usage

Nebari requires the setting of environment variables to automate the deployments fully. For details on how to obtain those variables, check the installation guide in the docs.

Once all the necessary credentials are gathered and set as UNIX environment variables, Nebari can be deployed in under 20 minutes using:

nebari init   ... # generates initial config file and optionally automates deployment steps
nebari deploy ... # creates and configures the cloud infrastructure

❓ Questions?

Have a look at our FAQ to see if your query has been answered.

We separate the queries for Nebari into:

  • GitHub Discussions used to raise discussions about a subject, such as: "What is the recommended way to do X with Nebari?"

  • Issues for queries, bug reporting, feature requests,documentation, etc.

We work around the clock to make Nebari better, but sometimes your query might take a while to get a reply. We apologise in advance and ask you to please, be patient 🙏.

📖 Code of Conduct

To guarantee a welcoming and friendly community, we require contributors to follow our Code of Conduct.

⚙️ Installing the Development version of Nebari

To install the latest developer version (unstable) use:

pip install git+https://github.com/nebari-dev/nebari.git@dev

🙌 Contributions

Thinking about contributing? Check out our Contribution Guidelines.

Ongoing Support

The v0.4.0 release introduced many changes that will irrevocably break your deployment if you attempt an inplace upgrade; for details see our RELEASE notes. In order to focus on the future direction of the project, we have decided as a team that we will provide limited support for older versions. Any new user is encouraged to use v0.4.0 or greater.

If you're using an older version of Nebari and would like professional support, please reach out to Quansight.

License

Nebari is BSD3 licensed.