User Guide#

Installation#

Recommended: create or activate a Python virtual environment.

uv add "jupyter-deploy[aws,k8s]" jupyter-deploy-tf-aws-eks-oidc

Or with pip:

pip install "jupyter-deploy[aws,k8s]" jupyter-deploy-tf-aws-eks-oidc

Project setup#

mkdir my-eks-deployment
cd my-eks-deployment

jd init . -E terraform -P aws -I eks -T oidc

Consider making my-eks-deployment a git repository.

Configure and deploy#

jd config
jd up

The first deployment takes approximately 25-30 minutes (EKS cluster creation, node provisioning, Helm chart installation, and OIDC provider registration).

Monitor cluster#

# aggregated health check
jd health

# cluster control plane status
jd cluster status

# configure local kubeconfig
jd cluster login

Access workspaces#

The web UI at the root of your domain lets users manage workspaces from the browser and download a kubectl setup script — see Web UI.

# open the web UI
jd open

# open a specific workspace
jd open --server-name my-workspace --scope default

Manage user workspaces#

# list all workspaces
jd server list

# list workspaces in a specific namespace
jd server list --scope default

# check workspace status
jd server status --name my-workspace --scope default

# show workspace details
jd server show --name my-workspace --scope default

# stop a workspace
jd server stop --name my-workspace --scope default

# start a stopped workspace
jd server start --name my-workspace --scope default

# view workspace logs
jd server logs --name my-workspace --scope default

# execute a command in a workspace
jd server exec --name my-workspace --scope default -- ls /home/jovyan

# open an interactive shell
jd server connect --name my-workspace --scope default

Manage platform components#

# health dashboard for all components
jd health --components

# list components
jd component list

# check a specific component
jd component status --name traefik

# view component logs
jd component logs --name dex

# restart a deployment (rolling restart)
jd component restart --name oauth2-proxy

# trigger a CronJob manually
jd component trigger --name jwt-rotator

# reconcile a HelmRelease (re-assert desired state, recreating deleted objects)
jd component reconcile --name workspace-router-chart

Take down#

This operation removes all the resources associated with this project in your AWS account.

jd down