Code Monkey home page Code Monkey logo

hub23-deploy's Introduction

hub23-deploy

A repository to manage the private Turing BinderHub instance, Hub23.

♻️ CI Status
πŸ’Έ Subscription Build Status
πŸš€ Deployment Deploy Status
🧹 Linting and Formatting pre-commit.ci status
πŸ““ Docs Build and Publish JupyterBook Docs

Table of Contents:


☸️ Hub23 Helm Chart

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.

πŸš€ Developing Hub23

Please read the πŸ’œCode of ConductπŸ’œ and πŸ‘ΎContributing GuidelinesπŸ‘Ύ before you begin developing.

πŸ“Œ Requirements

Three command line interfaces are used to manage Hub23:

πŸ” Changing hub23-chart

If changes are made during development, make sure that:

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.

❓ How-To's

🏑 Work Locally

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_NAME

And you're ready to go! πŸŽ‰

If you DON'T have write access: πŸ™…

  1. Click "Fork" in the top-right corner of the browser window
  2. Select your GitHub username as the fork destination
  3. 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_NAME

πŸ”Œ Connect to Kubernetes

This section uses the Azure CLI.

  1. Login to Azure

    az login
  2. Set the Azure subscription

    az account set --subscription turingmybinder
  3. Connect to the cluster

    az aks get-credentials --name turing --resource-group binder-prod

πŸ’» Code Snippets

To find out more info about a Kubernetes pod:

kubectl --namespace hub23 describe pod POD_NAME

πŸ’« Restarting the JupyterHub

If 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=0

Wait 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=1

πŸ’Έ Billing

The billing subdir contains resources for calculating running costs of Hub23.

πŸ“š Documentation

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

hub23-deploy's People

Contributors

callummole avatar dependabot[bot] avatar github-actions[bot] avatar jemrobinson avatar pre-commit-ci[bot] avatar sgibson91 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.