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 14, 2022
1 parent 5a4e305 commit 05a5fdd
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 0 deletions.
36 changes: 36 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,42 @@ Images are built for `linux/amd64` and `linux/arm64` during continuous integrati
You can run automated or manual tests against those images by specifying the registry and version for both the `up` and `tests` commands, example: `doit up --registry=ghcr.io/ --version=pr-123`.
Note: You may have to [log into the registry first](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry#authenticating-to-the-container-registry).

### 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 for testing.
Here we show how to run the stack on a Minikube 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!**

## 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
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 05a5fdd

Please sign in to comment.