Deploying to Kubernetes

Local Deployment

The BIA-binder is fully deployed using helmsman which can be installed using your preferred package manager, e.g. on mac:

brew install helmsman

Helmsman repackages helmsman yaml files into helm (the preferred Kubernetes package manager) commands.

Once installed the full environment can be deployed using

helmsman --apply -f helmsman.yaml -f helmsman-production.yaml

This can be limited to only the staging environment say using

helmsman --apply -f helmsman.yaml -f helmsman-production.yaml --group staging

Helmsman is expecting that the context name of the cluster you are deploying to is called CPU. To deploy to a cluster called say GPU, and with the necessary GPU overrides for JupyterHub and Binderhub, you append the helmsman-gpu.yaml

helmsman --apply -f helmsman.yaml -f helmsman-production.yaml -f helmsman-gpu.yaml

helmsman-token.yaml is reserved for runners within the cluster deploying to the cluster as would be the case with GitLab, which is how the BIA-Binder is deployed.

The minikube variant of the deployment is also availiable using

helmsman --apply -f helmsman.yaml -f helmsman-minikube.yaml

The 'helmsman-*' files can all be mixed and matched but the order of operations does matter.