Skip to content

Commit

Permalink
Provide instructions for testing on a local Minikube k8s cluster.
Browse files Browse the repository at this point in the history
  • Loading branch information
csadorf committed Sep 20, 2022
1 parent 7f89fde commit 96fa8aa
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 0 deletions.
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@ This will update the README.md file, make a commit, tag it, and then push both t

To create a _special_ release, simply tag it with a tag name of your choice with the exception that it cannot start with the character `v`.

### Deploy AiiDAlab on Kubernetes

Please see [here](k8s/README.md) for instructions on how to deploy AiiDAlab on Kubernetes.

## Deploy AiiDAlab with AiiDAlab Launch

The `aiidalab-launch` tool provides a convenient and robust method of both launching and managing one or multiple AiiDAlab instances on your computer.
Expand Down
38 changes: 38 additions & 0 deletions k8s/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# AiiDAlab on Kubernetes

## Deploy on a local Minikube (Kubernetes) cluster for testing

Here we provide instructions on how to run the stack on a local [Minikube Kubernetes cluster](https://minikube.sigs.k8s.io) for testing.

Using Minikube is one approach to deploy a small local Kubernetes cluster, however alternatives exist (e.g. [kind](https://kind.sigs.k8s.io/), k3s, colima).
If you are not using Minikube you may have to adjust the instructions provided here slightly.

First, [install Minikube](https://k8s-docs.netlify.app/en/docs/tasks/tools/install-minikube/) in your test environment and then start it, e.g., with `minikube start`.

If you want to test locally built images, make sure to build them within your test environment, with
```console
eval $(minikube docker-env)
doit build
```

Before installing the deployment for the first time, execute:

```console
helm repo add jupyterhub https://jupyterhub.github.io/helm-chart/
helm repo update
```

Then execute `./k8s/helm-install.sh` to install AiiDAlab on the cluster.

To expose the web server, you need to create a tunnel with
```console
minikube tunnel
```

You should then be able to access the server at the address shown by
```console
kubectl get svc proxy-public
```

Tip: Use ngrok to forward the server to the internet and access it from a different machine.
**Please be advised that this approach carries significant security risk and should only be used for testing!**
13 changes: 13 additions & 0 deletions k8s/helm-install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash
set -e
set -u

VERSION=$(dunamai from git --dirty | sed 's/+/_/g')

helm upgrade aiidalab \
jupyterhub/jupyterhub \
--version=1.1.4 \
--values k8s/values.dev.yml \
--set singleuser.image.tag="${VERSION}" \
--cleanup-on-fail \
--install $@
7 changes: 7 additions & 0 deletions k8s/values.dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
singleuser:
image:
name: "aiidalab/full-stack"
tag: "latest"
pullPolicy: Never # To use locally built images
cmd: start-singleuser.sh

0 comments on commit 96fa8aa

Please sign in to comment.