Amalthea
Running Jupyter Servers in a Kubernetes-native way
What is Amalthea?
2
Why is Amalthea?
3
steak.yaml
4
apiVersion: restaurant/v1alpha1
kind: SteakDinner
metadata:
name: tasko
namespace: tasko
spec:
side: fries
level: mediumRare
type: tBone
Kitchen
Potatoes
Steak
SeasonSteak
CutPotatoes
CookPotatoes
CookSteak
SteakDinner
The k8s operator pattern for Amalthea
5
Custom resource
apiVersion: amalthea.dev/v1alpha1
kind: JupyterServer
metadata:
name: my-jupyter-server
namespace: tasko
spec:
routing:
host: tasko.renku.dev
auth:
token: verySecretToken
patches: []
Operator
Statefulset
Configmap
PVC
Ingress
Service
Secret
JupyterServer
Flexibility through templating and patching
6
Custom resource
apiVersion: amalthea.dev/v1alpha1
kind: JupyterServer
metadata:
name: my-jupyter-server
namespace: tasko
spec:
routing:
host: tasko.renku.dev
auth:
token: verySecretToken
patches: []
Operator
Parse custom resource (CR)
Read Jinja templates
Render Jinja templates with values from CR
Apply patches
“kubectl apply”
What can I do with patches?
Anything you want…
7
Auth flow
8
In summary…
9
Useful links
10
Demo
11