helm-chart
This repository stores in its gh-pages
branch packaged Helm
charts for BinderHub and Zero to JupyterHub K8s. These packaged Helm
charts are made available as a valid Helm chart
repository on an automatically updated
website thanks to GitHub Pages.
We use chartpress to add package and add Helm charts to this Helm chart
repository.
Usage
This Helm chart repository enables you to install a JupyterHub and BinderHub Helm chart directly from it into your Kubernetes cluster. Please refer to the JupyterHub Helm chart documentation or the BinderHub Helm chart documentation for all the additional details required.
# Let helm the command line tool know about a Helm chart repository
# that we decide to name jupyterhub.
helm repo add jupyterhub https://hub.jupyter.org/helm-chart/
helm repo update
# Simplified example on how to install a Helm chart from a Helm chart repository
# named jupyterhub. See the Helm chart's documentation for additional details
# required.
helm install jupyterhub/<helm chart name> --version <helm chart version>
Release notes
The JupyterHub Helm chart
For an extensive list of the released versions, click the badge above!
Each JupyterHub Helm chart release utilizes a specific version of JupyterHub and KubeSpawner and requires a minimum Kubernetes version as well as a minimum Helm version to function properly.
For detailed information about what Python libraries and other packages are
available alongside JupyterHub, inspect files such as Dockerfile
and
requirements.txt
within the images
folder.
The BinderHub Helm chart
For an extensive list of the released versions, click the badge above!
BinderHub's Helm chart use JupyterHub's Helm chart as a dependency. That means that each BinderHub use a specific version of JupyterHub's Helm chart, along with BinderHub specific components like the BinderHub Python package itself and repo2docker.
For detailed information about what Python libraries and other packages are
available alongside BinderHub, inspect files such as Dockerfile
and
requirements.txt
within the images
folder.
Currently, the BinderHub Helm chart does not tag releases though, so making a similar comparison to the one above is hard.
Local development of GitHub page
Background knowledge
To locally development the GitHub page for this repostiory, some background understanding can be useful. A good start is to read Helm's documentation about Helm chart repositories. After that, keep this in mind.
- GitHub Pages relies on Jekyll that in turn use the Liquid templating language (with some additions) to generate and host static web pages.
- Everything that is to be used to generate the GitHub
Page is required to reside at the
gh-pages
branch. - Templates get data from a Jekyll Data Folder that you can inspect here. This folder only contains a symlink file that in turn points to index.yaml which is a important file for a Helm chart repository.
- index.md file will be converted to index.html by Jekyll and act as a Human readable page.
- _config.yml is a Jekyll configuration file.
- Gemfile acts
like a
doc-requirements.txt
but for Ruby, allowing us to work with Jekyll locally a bit easier. - info.json is a way for us to provide easy access to information from the templates underlying data source, the index.yaml file. We are for example using the rendered info.json to create the badges you find in this readme about the latest stable/pre/dev release.
Setting up for local development
There are probably different ways to go about this, but sometimes what matters is to have one at all. Doing the following was tested by @consideRatio 2019-10-19 on Ubuntu 19.04.
-
Install Ruby, Gem, and Bundler.
- Install
rbenv
. - Install the rbenv-build plugin to allows you to use
rbenv install
. - Run
rbenv install <version>
with the latest stable version. - Run
rbenv global <version>
. - Verify you can run
ruby -v
andgem -v
. - Run
gem install bundler
to work with Gemfiles etc.
- Install
-
Install Jekyll.
- Checkout the
gh-pages
branch withgit checkout gh-pages
. - Run
bundle install
- Checkout the
-
Start a local webserver.
- Run
bundle exec jekyll serve
. - Visit http://localhost:4000.
- Run