Skip to content

Local Development Setup

This guide walks you through setting up a local development environment for testing Omnia.

Install the required tools:

Create a kind cluster with port forwarding:

Terminal window
cat <<EOF | kind create cluster --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
extraPortMappings:
- containerPort: 30080
hostPort: 8080
protocol: TCP
EOF

Verify the cluster is running:

Terminal window
kubectl cluster-info

If you need session persistence, deploy Redis:

Terminal window
kubectl create namespace redis
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install redis bitnami/redis -n redis \
--set auth.enabled=false \
--set architecture=standalone

Build the operator and agent images:

Terminal window
make docker-build IMG=omnia-operator:dev
docker build -t omnia-agent:dev -f Dockerfile.agent .
kind load docker-image omnia-operator:dev
kind load docker-image omnia-agent:dev

Deploy using Helm with local images:

Terminal window
helm install omnia charts/omnia -n omnia-system --create-namespace \
--set image.repository=omnia-operator \
--set image.tag=dev \
--set image.pullPolicy=Never

Check the operator is running:

Terminal window
kubectl get pods -n omnia-system
kubectl logs -n omnia-system -l app.kubernetes.io/name=omnia -f

Apply sample manifests:

Terminal window
kubectl apply -f config/samples/

For local development without LLM costs, use the demo or echo handler modes:

apiVersion: omnia.altairalabs.ai/v1alpha1
kind: AgentRuntime
metadata:
name: test-agent
spec:
promptPackRef:
name: test-prompts
facade:
type: websocket
handler: demo # Use 'echo' for simple connectivity testing
session:
type: memory

The demo handler provides:

  • Streaming responses that simulate real LLM output
  • Simulated tool calls for password and weather queries
  • No API key required

This is useful for:

  • UI/frontend development
  • Integration testing
  • Demos and screenshots
  • Validating WebSocket connectivity

Forward the agent port:

Terminal window
kubectl port-forward svc/sample-agent 8080:8080

Test with websocat:

Terminal window
websocat ws://localhost:8080?agent=sample-agent

Check logs:

Terminal window
kubectl logs -n omnia-system deployment/omnia-operator

Check events:

Terminal window
kubectl describe agentruntime <name>
kubectl describe pod -l app.kubernetes.io/instance=<name>

Ensure the service is ready:

Terminal window
kubectl get endpoints <agent-name>