Skip to content

nebari-dev/nebari-data-science-pack

nebari-data-science-pack

Lint Test Release

A Helm chart for deploying JupyterHub with jhub-apps on Kubernetes.

Features

  • JupyterHub with Nebari's custom images
  • jhub-apps integration for deploying data science applications
  • Dummy authenticator for local development (OAuth/Keycloak configurable for production)

Quick Start

Install from Helm Repository

helm repo add nebari https://nebari-dev.github.io/nebari-data-science-pack
helm repo update
helm install data-science-pack nebari/nebari-data-science-pack

Install from Source

git clone https://github.com/nebari-dev/nebari-data-science-pack.git
cd nebari-data-science-pack
helm dependency update
helm install data-science-pack . --namespace default

Access JupyterHub

kubectl port-forward svc/proxy-public 8000:80

Open http://localhost:8000 - with dummy auth, any username/password works.

Local Development

Prerequisites: Docker, ctlptl, Tilt

# Start local k3d cluster + Tilt dev loop
make up

# Tilt UI: http://localhost:10350
# JupyterHub: http://localhost:8000

# Tear down
make down

Configuration

See values.yaml for all configuration options. The chart wraps the JupyterHub Helm chart - all jupyterhub.* values are passed through.

Architecture

┌─────────────────────────────────────────────────┐
│                    proxy                         │
│              (configurable-http-proxy)           │
└─────────────────┬───────────────────────────────┘
                  │
      ┌───────────┴───────────┐
      │                       │
      ▼                       ▼
┌───────────┐          ┌─────────────┐
│    hub    │◄────────►│  jhub-apps  │
│ (JupyterHub)         │  (service)  │
└─────┬─────┘          └─────────────┘
      │
      ▼
┌─────────────┐
│ user pods   │
│ (notebooks) │
└─────────────┘

CI/CD

Workflow Trigger Description
lint.yaml push/PR Helm lint and template validation
test.yaml push/PR Full deployment test on k3d
release.yaml push to main Publish chart to GitHub Pages

Releasing

To release a new version:

  1. Update version in Chart.yaml
  2. Push to main
  3. The release workflow automatically:
    • Creates a GitHub release tagged with the chart version
    • Publishes the chart to GitHub Pages

Note: Enable GitHub Pages on the gh-pages branch in repo settings after the first release.

License

Apache License 2.0 - see LICENSE for details.

About

A Helm chart that deploys JupyterHub and jhub-apps on top of NIC-provisioned Kubernetes clusters.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors