Installs into .claude/skills of the current project.
Are you the author of Local:Testing?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/rossoctl-local-testing)
---
name: local:testing
description: Test Rossoctl platform locally using Kind. Scripts for deploy, test, and access.
---
# Local Testing Skill
This skill helps you test Rossoctl 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 Rossoctl platform locally
- Run E2E tests with Ollama LLM integration
- Access the Rossoctl 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:
```bash
./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 Rossoctl platform (takes ~15-20 minutes):
```bash
./local-testing/deploy-platform.sh
```
This script:
- Creates Kind cluster via bash 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:
```bash
./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:
```bash
./local-testing/access-ui.sh
```
Then run the suggested command:
```bash
kubectl port-forward -n rossoctl-system svc/http-istio 8080:80
```
Visit: http://rossoctl-ui.localtest.me:8080
## Typical Workflow
### Full Redeploy and Test
```bash
# 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:
```bash
./local-testing/run-e2e-tests.sh
```
### Development Cycle
1. Make code changes
2. Run `./local-testing/deploy-platform.sh` to redeploy
3. Run `./local-testing/run-e2e-tests.sh` to validate
4. Use `./local-testing/access-ui.sh` to get UI access
## Debugging Commands
### View Logs
```bash
# 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 rossoctl-system deployment/rossoctl-platform-operator --tail=100 -f
```
### Check Pod Status
```bash
# All pods
kubectl get pods -A
# Specific namespace
kubectl get all -n team1
kubectl get all -n rossoctl-system
```
### View Events
```bash
# 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
```bash
# 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:
```bash
# 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:
1. Check agent logs: `kubectl logs -n team1 deployment/weather-service --tail=100`
2. Check tool logs: `kubectl logs -n team1 deployment/weather-tool --tail=100`
3. Verify Ollama is running: `ps aux | grep ollama`
4. Check Ollama has model: `ollama list | grep qwen2.5`
### UI Access Issues
If UI doesn't load:
1. Verify pod is running: `kubectl get pods -n rossoctl-system -l app=rossoctl-ui`
2. Check Istio gateway: `kubectl get pods -n rossoctl-system -l app=http-istio`
3. Restart port-forward: `kubectl port-forward -n rossoctl-system svc/http-istio 8080:80`
## Notes
- These scripts are for local development only (not committed to repo)
- Scripts are in `.gitignore` to avoid accidental commits
- Deployment uses same installer as CI
- Cluster name is `rossoctl` (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
- `rossoctl:deploy` - Deploy platform