Deploy AI-Q from the cloned repository using the local Helm chart.
Looking to install from the NGC Helm repository? See the Helm README instead.
- Kubernetes cluster (EKS, GKE, AKS, etc.) or local cluster (Kind, Minikube)
kubectlconfigured with cluster accesshelmv3.x installed- Secrets created per the Helm README — Setup (credentials and image pull secrets)
helm dependency update deployment-k8s/
helm install aiq deployment-k8s/ -n ns-aiq --create-namespaceIf pulling images from NGC, include the image pull secret and repository overrides:
helm dependency update deployment-k8s/
helm install aiq deployment-k8s/ -n ns-aiq --create-namespace \
--set 'aiq.apps.backend.imagePullSecrets[0].name=ngc-secret' \
--set 'aiq.apps.frontend.imagePullSecrets[0].name=ngc-secret' \
--set aiq.apps.backend.image.repository=nvcr.io/nvidia/blueprint/aiq-agent \
--set aiq.apps.frontend.image.repository=nvcr.io/nvidia/blueprint/aiq-frontendkubectl get pods -n ns-aiqExpected output:
NAME READY STATUS RESTARTS AGE
aiq-backend-xxx 1/1 Running 0 30s
aiq-frontend-xxx 1/1 Running 0 30s
aiq-postgres-xxx 1/1 Running 0 30s
kubectl port-forward -n ns-aiq svc/aiq-backend 8000:8000 &
curl http://localhost:8000/healthThese topics apply to all deployment methods and are documented in the Helm README:
- Configuration — switching workflow configs (LlamaIndex vs FRAG)
- FRAG Integration — connecting to a RAG Blueprint deployment
- Secrets — required API keys and database credentials (
DB_USER_NAME=aiq,DB_USER_PASSWORD=aiq_devby default) - Access the application — port-forwarding to the UI and API
helm upgrade aiq deployment-k8s/ -n ns-aiqhelm uninstall aiq -n ns-aiq
# Optionally remove namespace and secrets
kubectl delete namespace ns-aiqSee the Helm README — Troubleshooting for common issues (pod status, logs, image pull errors, FRAG connection issues).
For local development with a Kind cluster, you can build images locally and load them directly into the cluster — no registry push required.
Run the following from the repository root:
# Backend
docker build --platform linux/amd64 \
-f deploy/Dockerfile \
-t aiq-agent:dev \
.
# Frontend
docker build --platform linux/amd64 \
-f frontends/ui/deploy/Dockerfile \
-t aiq-frontend:dev \
frontends/uiThis produces two local images:
aiq-agent:dev— backend (Python / FastAPI)aiq-frontend:dev— frontend (Next.js)
kind load docker-image aiq-agent:dev --name <your-cluster-name>
kind load docker-image aiq-frontend:dev --name <your-cluster-name>Run
kind get clustersif you are unsure of the cluster name.
Edit deployment-k8s/values.yaml (or pass --set flags at deploy time) so the image references match what you loaded:
aiq:
apps:
backend:
image:
repository: aiq-agent
tag: dev
pullPolicy: IfNotPresent
frontend:
image:
repository: aiq-frontend
tag: dev
pullPolicy: IfNotPresentOr pass them inline during deployment:
helm upgrade --install aiq deployment-k8s/ -n ns-aiq --create-namespace \
--set aiq.apps.backend.image.repository=aiq-agent \
--set aiq.apps.backend.image.tag=dev \
--set aiq.apps.backend.image.pullPolicy=IfNotPresent \
--set aiq.apps.frontend.image.repository=aiq-frontend \
--set aiq.apps.frontend.image.tag=dev \
--set aiq.apps.frontend.image.pullPolicy=IfNotPresentFollow the Helm README — Setup to create your namespace and secrets, then deploy.
After a rebuild, reload the updated image with kind load docker-image ... and restart the affected deployment:
kubectl rollout restart deployment -n ns-aiq aiq-backend # or aiq-frontend