Evaluation suites for AI-assisted troubleshooting with OpenShift Lightspeed (OLS).
See CONTRIBUTING.md to add a new eval suite.
| Suite | Description |
|---|---|
| kiali-ossm/ | Service-mesh troubleshooting using Kiali/OSSM MCP tools |
| netobserv/ | Network observability using the NetObserv MCP toolset |
| kubevirt/ | OpenShift Virtualization troubleshooting using the KubeVirt MCP toolset |
| agentic/ | Troubleshooting scenarios and benchmarks for lightspeed-agentic-operator (see agentic/README.md) |
| generic/ | Standalone fault-injection scenarios, e.g. for Incident Detection demos and Korrel8r testing |
- OpenShift 4.x cluster accessible via
oc login OPENAI_API_KEYexported (required for the judge LLM; also configures an OpenAI OLS provider)- Python 3.11, 3.12, or 3.13
- Optional (for Google/Anthropic providers via Vertex AI):
GCP_SERVICE_ACCOUNT_JSON— path to a GCP credentials JSON file (ADC or service account key)GCP_PROJECT_ID— GCP project with Vertex AI access
export OPENAI_API_KEY=<your-key>
cd kiali-ossm # or: cd netobserv, cd kubevirt
make setup # install venv + OLS + MCP server + suite dependencies
make evals # run all scenarios (default provider)
make cleanup # remove suite dependencies + MCP serverRun a single scenario:
make check_mesh_status-evalBy default, evals use the provider and model from system.yaml (OpenAI). Override with Make variables:
# Run with a specific provider
make evals OLS_PROVIDER=google OLS_MODEL=gemini-2.5-pro
make evals OLS_PROVIDER=anthropic OLS_MODEL=claude-opus-4-6
# Run a single scenario with a specific provider
make vm_storage_failure-eval OLS_PROVIDER=google OLS_MODEL=gemini-2.5-pro
# Run all scenarios across every configured provider (results in results/<provider>/)
make evals-all-providersTo use Google or Anthropic providers, export the GCP credentials before make setup:
export GCP_SERVICE_ACCOUNT_JSON=~/.config/gcloud/application_default_credentials.json
export GCP_PROJECT_ID=<your-gcp-project>
make setup- Creates a Python venv with
lightspeed-eval(skips if exists) - Checks cluster access and OLS readiness
- Installs the OLS operator if not present (idempotent)
- Deploys the MCP server with the suite's toolsets
- Connects OLS to the MCP server
- Installs suite-specific dependencies (e.g., Bookinfo, FlowCollector)
- Removes suite-specific cluster resources
- Disconnects OLS from the MCP server
- Removes the MCP server namespace
Suite cleanup does not remove OLS, since it's shared across suites. To remove the OLS operator and the local venv entirely, run from the repo root:
make cleanupBy default, make evals auto-starts a port-forward to OLS on localhost:8443. To use the cluster Route instead:
OLS_URL=https://<ols-route-host> make evals