Helm install (BYOC)
1. Add repos + fetch chart deps
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
# Option A: install from OCI registry (once published)
helm pull oci://ghcr.io/openbox-ai/charts/openbox --version 0.1.0
# Option B: clone repo
git clone https://github.com/OpenBox-AI/openbox-manifest-k8s-cluster.git
cd openbox-manifest-k8s-cluster
helm dependency update charts/openbox
2. Minimal values-byoc.yaml
Start with the smallest override set that works — you can layer more customization later. Full reference: values reference.
# values-byoc.yaml
global:
ingress:
type: nginx # or istio / traefik — see next page
className: nginx
domain: openbox.mycompany.internal
# If cluster does NOT have Argo Rollouts CRD, disable canary strategy
openbox-guardrails-service:
rollout:
enabled: false
# If cluster has a preferred StorageClass, override chart defaults
postgresql:
primary:
persistence:
storageClass: my-fast-ssd
size: 100Gi
# If no GPU node available, disable LlamaFirewall vllm
guardrails-api:
llamafirewall:
enabled: false
# If bringing your own PostgreSQL (external RDS / Cloud SQL / etc.)
postgresql:
enabled: false
openbox-backend:
db:
host: my-external-postgres.internal
port: 5432
name: openbox
userSecretRef: openbox-backend-db-credentials
3. Install
# Create namespace
kubectl create namespace openbox
# Install
helm upgrade --install openbox charts/openbox \
-n openbox \
-f values-byoc.yaml \
--atomic --wait --timeout 15m
--atomic rolls back on failure. --wait blocks until all pods Ready.
4. Verify
kubectl get pods -n openbox
# Expect all Running / Ready. Count depends on your value overrides:
# Minimal (no GPU, no self-hosted Temporal): 6-8 pods
# Full (with LlamaFirewall + self-hosted Temporal): 15-20 pods
kubectl get svc,ingress,hpa -n openbox
5. Rollback
helm history openbox -n openbox
helm rollback openbox <revision> -n openbox
Common overrides
| Situation | Change in values-byoc.yaml |
|---|---|
| Use existing Postgres | postgresql.enabled: false + wire openbox-backend.db.host |
| Use existing Redis | openbox-core.redis.external.host + postgresql.enabled unchanged (they're separate) |
| Skip GPU workloads | guardrails-api.llamafirewall.enabled: false |
| No Argo Rollouts CRD | openbox-guardrails-service.rollout.enabled: false |
| Different image registry | global.imageRegistry: harbor.mycompany.internal |
| Custom pull secret | global.imagePullSecrets: [my-pull-secret] |
| Different namespace naming | Chart uses release name as prefix — install with -n openbox for canonical naming |
See Helm chart → Customization for deeper walkthroughs.
Uninstall
helm uninstall openbox -n openbox
kubectl delete namespace openbox # deletes PVCs — take DB backup first