Minikube quickstart
1. Start Minikube
minikube start \
--cpus=4 \
--memory=8g \
--disk-size=30g \
--kubernetes-version=v1.31.0
minikube addons enable ingress
minikube addons enable storage-provisioner
minikube addons enable metrics-server
# Verify:
kubectl get nodes
# Expect: minikube node Ready
2. Clone the repo + fetch chart deps
git clone https://github.com/OpenBox-AI/openbox-manifest-k8s-cluster.git
cd openbox-manifest-k8s-cluster
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm dependency update charts/openbox
3. Install OpenBox with the local values profile
# values-local.yaml — minimal PoC config
global:
ingress:
type: nginx
className: nginx
domain: openbox.local
# Skip GPU workloads
guardrails-api:
llamafirewall:
enabled: false
# Use in-cluster Postgres (Bitnami)
postgresql:
enabled: true
auth:
postgresPassword: local-poc-only-do-not-use-in-prod
password: local-poc-only-do-not-use-in-prod
# Keycloak bootstrap creds
identity-service:
secret:
stringData:
KC_DB_PASSWORD: local-poc-only-do-not-use-in-prod
KC_BOOTSTRAP_ADMIN_PASSWORD: admin
# Skip Argo Rollouts (Minikube doesn't have CRDs by default)
openbox-guardrails-service:
rollout:
enabled: false
# Down-sized for laptop
openbox-backend: { autoscaling: { minReplicas: 1, maxReplicas: 1 } }
openbox-core: { autoscaling: { minReplicas: 1, maxReplicas: 1 } }
openbox-fe: { autoscaling: { minReplicas: 1, maxReplicas: 1 } }
guardrails-api: { autoscaling: { minReplicas: 1, maxReplicas: 1 } }
identity-service: { autoscaling: { minReplicas: 1, maxReplicas: 1 } }
Install:
kubectl create namespace openbox
helm upgrade --install openbox charts/openbox \
-n openbox \
-f values-local.yaml \
--atomic --wait --timeout 10m
kubectl get pods -n openbox
# Expect ~6-8 pods Running/Ready
4. Add local DNS
echo "$(minikube ip) openbox.local" | sudo tee -a /etc/hosts
5. Open the UI
open http://openbox.local/ # macOS
xdg-open http://openbox.local/ # Linux
Log in with the bootstrap creds:
- User:
admin(fromKC_BOOTSTRAP_ADMIN_PASSWORD) - Realm:
master
6. Uninstall
helm uninstall openbox -n openbox
minikube delete
Faster iterations — kind-smoke script
For repeated smoke tests, the repo ships scripts/kind-smoke.sh (uses kind, not Minikube — but the flow is similar). Adapt for Minikube if preferred.
Troubleshooting
Pods stuck in Pending — laptop is out of RAM. Increase --memory=12g in minikube start.
ImagePullBackOff — Minikube can't reach ghcr.io. Verify network + DNS. Optionally pre-load:
docker pull ghcr.io/openbox-ai/openbox-backend:0.1.0
minikube image load ghcr.io/openbox-ai/openbox-backend:0.1.0
Ingress returns 404 — /etc/hosts entry missing or ingress addon not enabled.
See S2 troubleshooting for more common issues (same chart, same failure modes).
Next
- kind quickstart → — alternative to Minikube
- Limitations vs prod → — what's missing in local mode