Feature Description
I would like to be able to deploy Open Notebook on my Kubernetes cluster (EKS/GKE/AKS/minikube). Currently there's no official K8s deployment method, requiring manual creation of Deployments, Services, ConfigMaps, Secrets, and other resources which is error-prone and hard to maintain.
Why would this be helpful?
- Enables cloud-native deployment on AWS EKS, GCP GKE, Azure AKS, and local clusters (minikube, kind)
- Provides auto-scaling with Horizontal Pod Autoscaler (HPA)
- Self-healing deployments with automatic restarts
- Rolling updates and rollbacks with zero downtime
- Resource management (CPU/memory limits and requests)
- Persistent volume management for SurrealDB data
- Service discovery and load balancing
- Ingress support for domain access and TLS certificates
- Multi-environment support (dev/staging/prod) with consistent deployments
- Industry-standard deployment method used by most production applications
Proposed Solution
Add a Helm chart for Kubernetes deployment:
Helm Chart (recommended): Industry standard for K8s application packaging
- Simple installation:
helm install open-notebook ./helm/open-notebook
- Easy upgrades:
helm upgrade open-notebook ./helm/open-notebook
- Rollback support:
helm rollback open-notebook
- Configurable via values files
- Environment-specific configurations (dev/staging/prod)
- Follows Bitnami Helm chart best practices
Alternative approaches:
- Kubectl manifests in
k8s/ directory (simpler, less flexible)
- Kustomize (native K8s tool, good for multi-environment)
Additional Context
Key requirements for Kubernetes deployment:
- Support all 17 AI providers (OpenAI, Anthropic, Google, etc.)
- SurrealDB deployment using StatefulSet for persistence
- Secret management for API keys (automatic creation)
- Health checks (liveness, readiness, startup probes)
- Persistent volume claims for app data and database
- Ingress configuration for external access
- Configurable replicas, resources, and security contexts
- Network policies for traffic control
- ServiceMonitor for Prometheus monitoring
Example Helm chart structure:
helm/open-notebook/
├── Chart.yaml # Chart metadata
├── values.yaml # All configuration options
├── values.schema.json # JSON schema validation
├── README.md # Documentation
└── templates/ # Kubernetes manifests
├── deployment.yaml
├── statefulset.yaml # SurrealDB
├── service.yaml
├── ingress.yaml
├── pvc.yaml
├── secret.yaml
└── configmap.yaml
Example installation:
# Basic with OpenAI
helm install open-notebook ./helm/open-notebook \
--set config.aiProviders.openai.apiKey=sk-xxx
# With NodePort service
helm install open-notebook ./helm/open-notebook \
--set service.type=NodePort
Contribution
References:
Feature Description
I would like to be able to deploy Open Notebook on my Kubernetes cluster (EKS/GKE/AKS/minikube). Currently there's no official K8s deployment method, requiring manual creation of Deployments, Services, ConfigMaps, Secrets, and other resources which is error-prone and hard to maintain.
Why would this be helpful?
Proposed Solution
Add a Helm chart for Kubernetes deployment:
Helm Chart (recommended): Industry standard for K8s application packaging
helm install open-notebook ./helm/open-notebookhelm upgrade open-notebook ./helm/open-notebookhelm rollback open-notebookAlternative approaches:
k8s/directory (simpler, less flexible)Additional Context
Key requirements for Kubernetes deployment:
Example Helm chart structure:
Example installation:
Contribution
References: