Skip to content

Feature Request: Kubernetes deployment support #365

@thuanpham582002

Description

@thuanpham582002

Feature Request: Kubernetes Deployment Support

Is your feature request related to a problem? Please describe.

I'd like to deploy Open Notebook on my Kubernetes cluster (EKS/GKE/AKS/minikube) but there's currently no official K8s deployment method. Manual deployment requires creating multiple Kubernetes resources (Deployments, Services, ConfigMaps, Secrets, etc.) which is error-prone and hard to maintain.

Describe the solution you'd like

Add official Kubernetes deployment support. Options could include:

  1. Helm Chart (recommended)

    • Industry standard for K8s application packaging
    • Easy installation: helm install open-notebook ./chart
    • Simple upgrades and rollbacks
    • Configurable via values files
    • Example: Bitnami Charts
  2. Kubectl manifests

    • Simple YAML manifests in k8s/ directory
    • Apply with kubectl apply -f k8s/
    • Less flexible but simpler to understand
  3. Kustomize

    • Base manifests + overlays
    • Native Kubernetes tool
    • Good for multi-environment configs

Describe alternatives you've considered

  • Docker Compose → Kubernetes conversion tools (imperfect, complex)
  • Manual manifest creation (tedious, error-prone)
  • Third-party charts (none exist, would need community maintenance)

Additional context

What Kubernetes deployment would enable:

  • ✅ Cloud-native deployment (AWS EKS, GCP GKE, Azure AKS)
  • ✅ Auto-scaling with HPA (Horizontal Pod Autoscaler)
  • ✅ Self-healing deployments
  • ✅ Rolling updates and rollbacks
  • ✅ Resource management (CPU/memory limits)
  • ✅ Persistent volume management for SurrealDB
  • ✅ Service discovery and load balancing
  • ✅ Ingress for domain access + TLS
  • ✅ Multi-environment support (dev/staging/prod)

Key requirements:

  • Support all 17 AI providers (OpenAI, Anthropic, Google, FPT Cloud, etc.)
  • SurrealDB deployment (StatefulSet for persistence)
  • Secret management for API keys
  • Health checks and probes
  • Persistent volume claims
  • Ingress configuration
  • Configurable replicas, resources, and security contexts

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
    ├── service.yaml
    ├── ingress.yaml
    ├── pvc.yaml
    └── secret.yaml

Related PR

#363 - Draft implementation with Helm chart (for reference)

Would you be open to this feature?

If there's interest, I can help implement and maintain the Kubernetes deployment manifests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions