Show HN: RCA-lab – test observability tools on real failures Coroot released rca-lab, an open-source failure lab that runs real, reproducible incidents on a live Kubernetes cluster to test root-cause-analysis tooling, including AI-based systems. The lab deploys a polyglot microservice stack with real databases and uses genuine failure mechanisms such as allocation regressions and heavy analytics queries, with durable revert via custom resources. It is available on GitHub and requires kubectl and helm. A realistic, reproducible failure lab for evaluating root-cause-analysis RCA tooling — human or AI — on a live Kubernetes cluster. Most RCA benchmarks replay canned telemetry from toy environments with synthetic faults toggled by feature flags. rca-lab takes the opposite approach: A real polyglot microservice stack Python, Go, Java, Node.js, Rust, PHP behind an API gateway, with continuous generated load. Real databases under production-grade operators : PostgreSQL, MySQL and MongoDB via Percona operators, a Valkey Cluster via the valkey-operator, Kafka via Strimzi — with seeded data volumes. Real failure mechanisms only. No chaos flags inside the apps. A GC pressure incident is a genuine allocation regression shipped as a new image version and rolled back later; a database incident is an analytics workload running heavy queries against the production database; a traffic spike is actually more traffic. Durable revert. Every failure scenario is a FailureScenario custom resource driven by an operator that restores the normal state when the scenario ends, is disabled, or is deleted — even across operator restarts. Rich telemetry, bring your own backend. Every service is instrumented with OpenTelemetry SDKs: traces, SDK-emitted metrics JVM/runtime/HTTP , and logs to stdout and OTLP, trace-correlated . Everything flows to a bundled otel-collector that discards data by default — point it at any OTLP backend with one variable. Requirements: kubectl + helm pointed at a cluster any distribution; a default StorageClass, ~8 CPU / 16 GiB across nodes for the full-size lab . git clone https://github.com/coroot/rca-lab && cd rca-lab make deploy everything: operators → databases → Kafka → apps → seed Single-node cluster kind/k3d/minikube : make deploy SINGLE NODE=1 Send telemetry somewhere e.g. Coroot, or any OTLP endpoint : make deploy OTLP ENDPOINT=my-backend:4317 Other variables: STORAGE CLASS=