chaos
Skill71 starsChanged 8 days agoApache-2.0View on GitHub
Design, run, and debug Chaos Engineering experiments on Kubernetes using Litmus Chaos v3 and Chaos Mesh v2. Covers fault injection (pod-delete, network-loss, CPU stress, node-drain), steady-state hypothesis probes, GameDay runbooks, scheduled experiments, DORA feedback loop, and RBAC setup. Use when asked to "inject a pod fault", "run a GameDay", "schedule chaos experiments", or "debug why my ChaosEngine is stuck".
We split this skill into the rules it gives an agent
8 rules. 0 are common, 5 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
When invoked with no arguments, ask before proceeding:
- Distinctive: line 31
After collecting the mode, ask one follow-up:
- Distinctive: line 89
Require steady-state hypothesis: before generating the experiment:
- Distinctive: line 162
Run a structured GameDay experiment.
- Distinctive: line 178
Check Prometheus/Grafana for error rate, latency, saturation
- Very specific: line 192
If you need deeper context on troubleshooting, load references/chaos.md.
- Very specific: line 214
Look for status.experimentStatus.verdict and probe failure messages.
- Very specific: line 249
After completing this task, log errors and learnings via /platform-skills:self-improve log.
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Design, run, and debug Chaos Engineering experiments on Kubernetes.
Interactive Wizard (fires when no arguments are provided)
When invoked with no arguments, ask before proceeding:
Q1 — Mode?
What do you need?
1. install — install Litmus Chaos or Chaos Mesh via Helm
2. experiment — design a fault injection experiment
3. schedule — wrap an experiment in a recurring schedule
4. gameday — run a structured GameDay experiment
5. debug — diagnose a failed or stuck experiment
6. report — summarize results after an experiment completes
Enter 1–6 or mode name:After collecting the mode, ask one follow-up:
- install:
Which tool? Litmus Chaos (recommended default) or Chaos Mesh (network/IO faults)? - experiment:
Describe the workload to target — name, namespace, fault type (pod-delete / network-loss / cpu-stress / node-drain): - schedule:
Provide the experiment YAML or describe the experiment to wrap in a schedule: - gameday:
State the steady-state hypothesis — what metric or probe proves the system is healthy? - debug:
Describe the symptom or paste the ChaosEngine/ChaosResult status: - report:
Paste the ChaosResult output or describe the experiment that ran:
Then proceed into the relevant mode below.
Mode: install
Install Litmus Chaos or Chaos Mesh via Helm.
Steps:
- Choose the tool:
- Litmus Chaos: CNCF graduated, ChaosCenter UI, broad experiment library → recommended default
- Chaos Mesh: CNCF incubating, fine-grained NetworkChaos, IOChaos → choose for network partitions or I/O faults
- Install Litmus Chaos:
helm repo add litmuschaos https://litmuschaos.github.io/litmus-helm/ helm repo update helm upgrade --install chaos litmuschaos/litmus \ --namespace litmus \ --create-namespace \ --version 3.9.0 \ -f examples/chaos/litmus-install-values.yaml - Install Chaos Mesh:
helm repo add chaos-mesh https://charts.chaos-mesh.org helm repo update helm upgrade --install chaos-mesh chaos-mesh/chaos-mesh \ --namespace chaos-mesh \ --create-namespace \ --version 2.7.0 \ -f examples/chaos/chaos-mesh-install-values.yaml - Verify:
Expected: all pods Running# Litmus kubectl get pods -n litmus # Chaos Mesh kubectl get pods -n chaos-mesh
Mode: experiment
Generate a fault experiment from a description.
Steps:
- Identify: tool (Litmus/Mesh), fault class (pod/network/stress/node), target workload name and namespace
- Require steady-state hypothesis before generating the experiment:
- HTTP probe: URL + expected response code
- Prometheus probe: PromQL query that returns 1 (healthy) or 0 (degraded)
- Generate the experiment CRD with:
- Namespace-scoped label selector
durationorTOTAL_CHAOS_DURATIONset (default 60s)- Probe section referencing the steady-state hypothesis
PODS_AFFECTED_PERC: "50"for initial runs (safe); increase to 100% for full resilience test
- Output: experiment YAML +
kubectl applycommand + expected ChaosResult verdict
See examples/chaos/pod-delete-experiment.yaml and examples/chaos/network-loss-experiment.yaml for complete examples.
Mode: schedule
Wrap an experiment in a recurring schedule.
Steps:
- Litmus ChaosSchedule:
apiVersion: litmuschaos.io/v1alpha1 kind: ChaosSchedule metadata: name: pod-delete-weekly namespace: my-namespace spec: schedule: repeat: properties: minChaosInterval: "168h" engineTemplateSpec: appinfo: appns: my-namespace applabel: "app=my-service" appkind: deployment chaosServiceAccount: litmus-admin experiments: - name: pod-delete spec: components: env: - name: TOTAL_CHAOS_DURATION value: "60" - Chaos Mesh Schedule:
apiVersion: chaos-mesh.org/v1alpha1 kind: Schedule metadata: name: network-loss-weekly namespace: my-namespace spec: schedule: "0 2 * * 1" type: NetworkChaos historyLimit: 5 concurrencyPolicy: Forbid networkChaosTemplate: spec: action: loss mode: all selector: namespaces: [my-namespace] labelSelectors: app: my-service loss: loss: "20" duration: 60s - Recommend staging only — never schedule experiments in production without a change window
Mode: gameday
Run a structured GameDay experiment.
Steps:
- Define steady-state hypothesis:
- What metric or probe proves the system is healthy?
- What is the acceptable degradation threshold?
- Scope the blast radius:
- Namespace:
<namespace> - Label selector:
app=<service-name> - Max affected pods: 50% for first run
- Namespace:
- Inject the fault (reference experiment from
experimentmode output) - Observe:
- Watch probe results in ChaosResult
- Check Prometheus/Grafana for error rate, latency, saturation
- Note time-to-detect if an alert fired
- Record the verdict:
- PASS: steady-state probe held throughout, service recovered within SLO
- FAIL: probe failed, alert did not fire within expected window, or recovery exceeded SLO
- Output DORA impact summary:
- Change failure rate delta: did this fault class cause failures in past deploys?
- MTTR observed: time from fault injection to steady-state restoration
- Recommendation: improve circuit breaker / HPA config / replica count / PDB
Mode: debug
If you need deeper context on troubleshooting, load references/chaos.md.
Diagnose a failed or stuck experiment.
Checklist:
- Is the controller running?
kubectl get pods -n litmus # Litmus kubectl get pods -n chaos-mesh # Chaos Mesh - Is the ChaosEngine/fault stuck?
kubectl describe chaosengine <name> -n <namespace> # Litmus kubectl describe podchaos <name> -n <namespace> # Chaos Mesh - Check the ChaosResult (Litmus only):
Look forkubectl get chaosresult -n <namespace> kubectl describe chaosresult <engine-name>-<experiment-name> -n <namespace>status.experimentStatus.verdictand probe failure messages. Common causes:
Symptom Cause Fix Stuck InitializedMissing RBAC kubectl get clusterrolebinding -l app.kubernetes.io/component=operatorNo pods targeted Label selector wrong kubectl get pods -n <ns> -l <selector>Probe failing Wrong URL or PromQL Test probe URL with curlfrom inside the namespaceExperiment won't end Missing duration Add duration: 60s(Chaos Mesh) orTOTAL_CHAOS_DURATION(Litmus)Controller crashlooping Version mismatch Re-install matching chart version
Mode: report
Summarize experiment results after completion.
Steps:
- Collect ChaosResult:
kubectl get chaosresult -n <namespace> -o yaml - Report:
- Fault injected: type, duration, affected pods
- Steady-state probe: pass/fail timeline (from ChaosResult probe status)
- Recovery time: time from fault injection (
status.experimentStatus.passedRuns) to probe passing again - Verdict: PASS / FAIL with reason
- DORA impact:
- Was error rate SLO breached? → contributes to change failure rate
- Recovery time → MTTR observation
- Feed into DORA
benchmarkmode:/platform-skills:dora benchmark
After completing this task, log errors and learnings via /platform-skills:self-improve log.
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- SwitchbackTech/compass★ 227same name
- AnjanJ/rails_error_dashboard★ 94same name
- CHAOSX-SPACE/god-of-the-void★ 1same name
- Jkudjo/oh-my-cursor★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository59 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- .cursor/rules/keda.mdcCursor rule
- .cursor/rules/kubernetes.mdcCursor rule
- .cursor/rules/platform-skills.mdcCursor rule
- .cursor/rules/terraform.mdcCursor rule
- code-reviewSkill
- platform-skillsSkill
- ai-governanceSkill
- awesome-docsSkill
- aws-profileSkill
- awsSkill
- azureSkill
- backup-drSkill
- checkovSkill
- cluster-upgradeSkill
- commitSkill
- complianceSkill
- composite-actionsSkill
- datadogSkill
- debugSkill
- documentSkill
- doraSkill
- dynatraceSkill
- finopsSkill
- fluxcdSkill
- gateway-apiSkill
- github-actionsSkill
- gitopsSkill
- helmchartSkill
- karpenterSkill
- kedaSkill
- kingfisherSkill
- kubernetesSkill
- kubescape-operatorSkill
- kubescapeSkill
- kyvernoSkill
- linkerdSkill
- linuxSkill
- mcpSkill
- observabilitySkill
- opaSkill
- openshiftSkill
- platform-skillsSkill
- preflightSkill
- productSkill
- progressive-deliverySkill
- pr-reviewSkill
- renovateSkill
- runtime-securitySkill
- secretsSkill
- self-improveSkill
- setup-agentsSkill
- supply-chainSkill
- terraformSkill
- token-optimizerSkill
- triageSkill
- trivySkill
- zizmorSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

