Local Testing Skill
This skill helps you test Kagenti platform locally using Kind (Kubernetes in Docker).
Overview
The local-testing/ directory contains scripts that mirror the GitHub Actions CI workflow, allowing you to:
- •Deploy the full Kagenti platform locally
- •Run E2E tests with Ollama LLM integration
- •Access the Kagenti UI and services
- •Debug agent and tool deployments
Prerequisites
Ensure you have:
- •Docker Desktop/Rancher Desktop/Podman (12GB RAM, 4 cores minimum)
- •Kind, kubectl, helm installed
- •Python 3.11+ with uv
- •jq for JSON parsing
Available Scripts
1. Cleanup Cluster
Wipes the existing Kind cluster completely:
./local-testing/cleanup-cluster.sh
Use this when you want a fresh start or cluster is in a bad state.
2. Deploy Platform
Deploys the full Kagenti platform (takes ~15-20 minutes):
./local-testing/deploy-platform.sh
This script:
- •Creates Kind cluster via Ansible installer
- •Deploys all platform components (Keycloak, PostgreSQL, Istio, SPIRE)
- •Installs Ollama and pulls qwen2.5:0.5b model
- •Deploys weather agent and tool
3. Run E2E Tests
Runs the E2E test suite:
./local-testing/run-e2e-tests.sh
Validates:
- •Platform deployment health
- •Agent conversation via A2A protocol
- •Ollama LLM integration
- •MCP tool invocation
4. Access UI
Shows access information and port-forward commands:
./local-testing/access-ui.sh
Then run the suggested command:
kubectl port-forward -n kagenti-system svc/http-istio 8080:80
Visit: http://kagenti-ui.localtest.me:8080
Typical Workflow
Full Redeploy and Test
# 1. Clean up existing cluster ./local-testing/cleanup-cluster.sh # 2. Deploy platform (wait ~15-20 minutes) ./local-testing/deploy-platform.sh # 3. Run E2E tests ./local-testing/run-e2e-tests.sh # 4. Access UI ./local-testing/access-ui.sh
Quick Test Iteration
If platform is already deployed and you just want to rerun tests:
./local-testing/run-e2e-tests.sh
Development Cycle
- •Make code changes
- •Run
./local-testing/deploy-platform.shto redeploy - •Run
./local-testing/run-e2e-tests.shto validate - •Use
./local-testing/access-ui.shto get UI access
Debugging Commands
View Logs
# Agent logs kubectl logs -n team1 deployment/weather-service --tail=100 -f # Tool logs kubectl logs -n team1 deployment/weather-tool --tail=100 -f # Platform operator kubectl logs -n kagenti-system deployment/kagenti-platform-operator --tail=100 -f
Check Pod Status
# All pods kubectl get pods -A # Specific namespace kubectl get all -n team1 kubectl get all -n kagenti-system
View Events
# Recent events in team1 namespace kubectl get events -n team1 --sort-by='.lastTimestamp' | tail -30 # All events kubectl get events -A --sort-by='.lastTimestamp' | tail -50
Ollama Status
# Check if running ps aux | grep ollama # Check models ollama list # Test directly curl http://localhost:11434/api/tags
Troubleshooting
Platform Not Ready
If deployment times out or components aren't ready:
# Check pod status kubectl get pods -A # Check recent events kubectl get events -A --sort-by='.lastTimestamp' | tail -50 # Retry deployment ./local-testing/cleanup-cluster.sh ./local-testing/deploy-platform.sh
Test Failures
If E2E tests fail:
- •Check agent logs:
kubectl logs -n team1 deployment/weather-service --tail=100 - •Check tool logs:
kubectl logs -n team1 deployment/weather-tool --tail=100 - •Verify Ollama is running:
ps aux | grep ollama - •Check Ollama has model:
ollama list | grep qwen2.5
UI Access Issues
If UI doesn't load:
- •Verify pod is running:
kubectl get pods -n kagenti-system -l app=kagenti-ui - •Check Istio gateway:
kubectl get pods -n kagenti-system -l app=http-istio - •Restart port-forward:
kubectl port-forward -n kagenti-system svc/http-istio 8080:80
Notes
- •These scripts are for local development only (not committed to repo)
- •Scripts are in
.gitignoreto avoid accidental commits - •Deployment uses same Ansible installer as CI
- •Cluster name is
kagenti(matches CI workflow) - •Secrets used are test values (not production)
Files Location
All scripts are in: local-testing/
- •
cleanup-cluster.sh- Wipe cluster - •
deploy-platform.sh- Deploy platform - •
run-e2e-tests.sh- Run tests - •
access-ui.sh- Access information - •
README.md- Full documentation
Related Skills
- •
local:full-test- Complete test workflows for Kind and HyperShift - •
kind:cluster- Create/destroy Kind clusters - •
kagenti:deploy- Deploy platform