explaingit

bhup-github/chaos-eng

Analysis updated 2026-05-18

21GoAudience · ops devopsComplexity · 3/5Setup · moderate

TLDR

A small Go tool that randomly kills Kubernetes pods on a schedule to prove a service stays up while it heals itself.

Mindmap

mindmap
  root((chaos-eng))
    What it does
      Kills random pods
      Watches service success rate
      Proves self healing
    Tech stack
      Go
      Kubernetes
      kind
    Use cases
      Learn chaos engineering basics
      Test replica recovery
      Validate readiness probes
    Audience
      Kubernetes learners
      DevOps engineers
    Safety
      Opt in label required
      Dry run default
      Minimum alive guardrail

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Learn how chaos engineering works with a small, working Kubernetes example.

USE CASE 2

Test whether a Kubernetes deployment recovers automatically when a pod is deleted.

USE CASE 3

Watch a live success-rate readout while pods are killed and replaced.

USE CASE 4

Practice safe chaos testing using dry-run mode before running it for real.

What is it built with?

GoKuberneteskindDockerkubectl

How does it compare?

bhup-github/chaos-engsecorizon/secorizonaiabolix/xplex
Stars212120
LanguageGoGoGo
Setup difficultymoderatehardhard
Complexity3/54/53/5
Audienceops devopsops devopsops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Docker, kind, and kubectl installed to spin up a local cluster.

The README does not state a license.

In plain English

chaos-eng is a small, working example of chaos engineering for Kubernetes, a practice where you deliberately break parts of a running system to see whether it can recover on its own. The idea behind it is simple: instead of finding out during a real outage whether your system heals itself, you test that in a calm, controlled way ahead of time by killing something on purpose and watching what happens. The project has four parts working together. First, a Go controller called the chaos monkey runs on a timer, picks a random pod in Kubernetes, and deletes it. Second, several safety measures keep this contained: the monkey only touches pods that carry a specific label marking them as opted in, it defaults to a dry run mode where it only logs what it would kill instead of actually killing anything, and its permissions are limited to listing and deleting pods in a single namespace. A minimum alive setting also stops it from ever killing a pod if doing so would drop the service below a set number of running replicas. Third, a small sample web service is deployed with three copies running behind a load balancing service, so when the chaos monkey removes one, Kubernetes notices and automatically starts a replacement. Fourth, a watch script continuously sends requests to the web service and prints a live success rate along with the current pod count, so you can see in real time whether the killings are actually affecting users. To try it, you need Docker, kind, and kubectl installed, then run the setup script, which builds a local cluster and deploys everything. Watching the logs and the live success rate side by side lets you see pods being killed and replaced every sixty seconds while the success rate stays steady, which is the actual proof that the system is resilient. The author is upfront that this is a simplified, single instance version of chaos engineering, meant as a first step before exploring more advanced tools that can automatically abort experiments or expand testing to larger parts of a system.

Copy-paste prompts

Prompt 1
Explain how chaos-eng's opt-in label and dry-run mode keep pod killing safe.
Prompt 2
Walk me through running chaos-eng locally with kind, Docker, and kubectl.
Prompt 3
Show me how the min-alive flag stops chaos-eng from over-killing pods.
Prompt 4
Help me extend chaos-eng to also simulate killing a whole availability zone.

Frequently asked questions

What is chaos-eng?

A small Go tool that randomly kills Kubernetes pods on a schedule to prove a service stays up while it heals itself.

What language is chaos-eng written in?

Mainly Go. The stack also includes Go, Kubernetes, kind.

What license does chaos-eng use?

The README does not state a license.

How hard is chaos-eng to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is chaos-eng for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.