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 clusterdeploy-platform.sh- Deploy platformrun-e2e-tests.sh- Run testsaccess-ui.sh- Access informationREADME.md- Full documentation
Related Skills
local:full-test- Complete test workflows for Kind and HyperShiftkind:cluster- Create/destroy Kind clusterskagenti:deploy- Deploy platform
Converted and distributed by TomeVault — claim your Tome and manage your conversions.