Hardened JupyterHub for Kubernetes — KubeSpawner, OAuth, idle-culler, 0 CVEs, Cosign, multi-arch
10K+
Production-ready JupyterHub image for Kubernetes, built on the hardened
truebyteinnovationllp/jupyterhub:5.5.0 base and extended with the full
Kubernetes spawner stack.
| Component | Version | Purpose |
|---|---|---|
| JupyterHub | 5.5.0 | Multi-user hub (from base image) |
| KubeSpawner | 7.0.0 | Spawn one Pod per user in Kubernetes |
| idle-culler | 2.0.0 | Shut down idle notebook servers automatically |
| OAuthenticator | 17.4.0 | GitHub / Google / GitLab / OIDC login |
| NativeAuthenticator | 1.3.0 | Built-in username + password auth |
| asyncpg | 0.31.0 | Async PostgreSQL driver for SQLAlchemy |
| CHP | 5.2.0 | configurable-http-proxy (from base image) |
Inherited from truebyteinnovationllp/jupyterhub:5.5.0:
runAsNonRoot: true and restricted PSAassets/cosign.publinux/amd64 + linux/arm64helm repo add truebyteinnovation oci://registry-1.docker.io/truebyteinnovationllp
helm install jupyterhub truebyteinnovation/jupyterhub-chart \
--namespace jupyterhub --create-namespace \
--set auth.type=github \
--set auth.github.clientId=YOUR_CLIENT_ID \
--set auth.github.clientSecret=YOUR_CLIENT_SECRET \
--set auth.github.callbackUrl=https://hub.example.com/hub/oauth_callback \
--set ingress.enabled=true \
--set ingress.hosts[0].host=hub.example.com \
--set database.type=postgresql \
--set database.postgresql.host=postgres.default.svc.cluster.local \
--set database.postgresql.password=YOUR_DB_PASSWORD
cosign verify \
--key https://gitlab.truebyteinnovation.com/internal-docker/docker-images/-/raw/main/assets/cosign.pub \
truebyteinnovationllp/jupyterhub-k8s:5.5.0
This image spawns user pods — it does not include kernel images. Notebook
environments are specified in the Helm chart spawner.profileList and pulled on
demand by KubeSpawner:
| Profile | Image | RAM |
|---|---|---|
| Python — Data Science | quay.io/jupyter/scipy-notebook:2024-10-07 | 2 GB |
| Python — Machine Learning | quay.io/jupyter/tensorflow-notebook:2024-10-07 | 8 GB |
| Python — ML with GPU | quay.io/jupyter/tensorflow-notebook:2024-10-07 | 16 GB + GPU |
| R — Statistics | quay.io/jupyter/r-notebook:2024-10-07 | 4 GB |
| Julia — Scientific Computing | quay.io/jupyter/julia-notebook:2024-10-07 | 4 GB |
Note: Pin these to versioned digests in production. The
:2024-10-07tags are examples — upstream may release new versions with different CVE surfaces.
Built from source at gitlab.truebyteinnovation.com/internal-docker/docker-images under the BSD-3-Clause license.
Content type
Image
Digest
sha256:6bf978b96…
Size
188.4 MB
Last updated
3 months ago
docker pull truebyteinnovationllp/jupyterhub-k8s