A repository to manage the private Turing BinderHub instance, Hub23.
| ♻️ CI Status | |
|---|---|
| 💸 Subscription | |
| 🚀 Deployment | |
| 🧹 Linting and Formatting | |
| 📓 Docs |
Table of Contents:
This repository contains the local Helm Chart that configures the Hub23 BinderHub deployment: hub23-chart.
The HelmUpgradeBot automatically opens Pull Requests to this repository that update the dependencies of the Helm Chart in the requirements.yaml file.
Upon merging the Pull Request, the Continuous Deployment Azure Pipeline automatically applies the updated Helm Chart to the Kubernetes cluster running Hub23.
Please read the 💜Code of Conduct💜 and 👾Contributing Guidelines👾 before you begin developing.
Three command line interfaces are used to manage Hub23:
- Azure CLI - to manage the Azure compute resources
- Kubernetes CLI (
kubectl) - to manage the Kubernetes cluster - Helm CLI - to manage the BinderHub application running on the Kubernetes cluster
If changes are made during development, make sure that:
- the new format is reflected in
deploy/prod-template.yamland any new secrets/tokens/passwords are redacted; - new secrets/tokens/passwords are added to the Azure Key Vault (see the Key Vault docs); and
.az-pipelines/cd-pipeline.ymlis updated in order to populate the template with the appropriate information.
This will ensure that the Hub23 deployment is kept up-to-date with the repo, and a future developer (someone else or future-you!) can recreate the configuration files for Hub23.
If you DO have write access: ✒️
# Clone this repository
git clone https://github.com/alan-turing-institute/hub23-deploy.git
cd hub23-deploy
# Create a new branch
git checkout -b NEW_BRANCH_NAMEAnd you're ready to go! 🎉
If you DON'T have write access: 🙅
- Click "Fork" in the top-right corner of the browser window
- Select your GitHub username as the fork destination
- Clone the forked repository
# Clone your fork
git clone https://github.com/YOUR_GITHUB_USERNAME/hub23-deploy.git
cd hub23-deploy
# Create a new branch
git checkout -b NEW_BRANCH_NAMEThis section uses the Azure CLI.
-
Login to Azure
az login
-
Set the Azure subscription
az account set --subscription turingmybinder -
Connect to the cluster
az aks get-credentials --name turing --resource-group binder-prod
To find out more info about a Kubernetes pod:
kubectl --namespace hub23 describe pod POD_NAMEIf the Hub is being problematic, for example, throwing "Internal Server Error" messages or not spinning up user nodes, it can be restarted with the following commands.
Scale down the Hub:
kubectl --namespace hub23 scale deployment hub --replicas=0Wait until the hub- pod has been terminated.
Use kubectl --namespace hub23 get pods to check its status.
Scale the Hub back up:
kubectl --namespace hub23 scale deployment hub --replicas=1The billing subdir contains resources for calculating running costs of Hub23.
The Deployment Guide docs for Hub23 are stored in the docs folder.
A GitHub Action workflow renders the documentation using Jupyter Book and publishes it to the gh-pages branch of the repo to be hosted at https://alan-turing-institute.github.io/hub23-deploy