Skip to content

Latest commit

 

History

History
54 lines (41 loc) · 3.17 KB

File metadata and controls

54 lines (41 loc) · 3.17 KB

AMD OneClick Notebook Manager

Kubernetes-based Jupyter Notebook instance management with automatic lifecycle control.

Features

  • One-click notebook provisioning with email-based instance tracking
  • AMD GPU support with automatic resource allocation
  • Admin panel for instance management
  • Auto-cleanup: 10min idle timeout, 6h max lifetime

API Endpoints

Method Endpoint Description
GET / User interface
POST /api/notebook/request Request notebook (body: {"email": "xxx"})
GET /api/notebook/status?email=xxx Check status
GET /admin Admin panel (user: admin)
GET /api/admin/instances List all instances
DELETE /api/admin/instance/{email} Destroy instance
DELETE /api/admin/instances/all Destroy all
GET /health Health check

Deployment

# Deploy to K8s
kubectl apply -f k8s-deployment.yaml

# Access
# User: http://<NODE_IP>:30080/
# Admin: http://<NODE_IP>:30080/admin (admin / admin123)

Local Development

pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000

Configuration

Environment variables in k8s-deployment.yaml:

Variable Description
SERVICE_HOST External IP for notebook URLs
DEFAULT_IMAGE Default notebook container image
GPU_LIMIT GPUs per notebook
IDLE_TIMEOUT_MINUTES Idle timeout before cleanup
MAX_LIFETIME_HOURS Maximum notebook lifetime
ADMIN_PASSWORD Admin panel password