GitHub

Chaos Mesh Logo

Chaos Mesh Logo


LICENSE Upload Image codecov GoDoc Artifact Hub OpenSSF Best Practices

Chaos Mesh is an open source, cloud-native Chaos Engineering platform for Kubernetes. It uses Kubernetes custom resources to define, orchestrate, and observe controlled fault injection against workloads, infrastructure, cloud services, and applications.

cncf_logo cncf_logo

Chaos Mesh is a Cloud Native Computing Foundation (CNCF) incubating project. If you are an organization that wants to help shape the evolution of technologies that are container-packaged, dynamically-scheduled and microservices-oriented, consider joining the CNCF.

Features

  • Broad fault coverage: Pod, network, DNS, HTTP, I/O, time, stress, kernel, block device, JVM, physical machine, AWS, Azure, and GCP faults.
  • Kubernetes-native API: Chaos experiments are defined as custom resources and managed through the Kubernetes API using standard Kubernetes tooling and RBAC.
  • Experiment orchestration: Schedule, Workflow, and StatusCheck resources support recurring experiments, serial or parallel workflows, and application health checks.
  • Dashboard: create, manage, and inspect experiments, schedules, and workflows through a web UI and API.
  • Multi-cluster execution: manage remote clusters and dispatch supported chaos experiments from a management cluster.

See the Chaos Mesh documentation for the behavior and configuration of each fault type.

Architecture

Chaos Mesh has three main runtime components:

Chaos Mesh architecture

  • Chaos Controller Manager watches Chaos Mesh resources, validates requests through admission webhooks, schedules workflows and experiments, and coordinates injection and recovery.
  • Chaos Daemon runs on Kubernetes nodes as a DaemonSet. It performs privileged node- and container-level operations for faults involving runtimes, processes, networks, filesystems, clocks, and kernels.
  • Chaos Dashboard provides the HTTP API and web interface for managing and observing experiments. It is optional when experiments are managed directly through the Kubernetes API.

Users create or update Chaos Mesh resources through the Kubernetes API, either directly or through the Dashboard. The Controller Manager reconciles the desired state and delegates node-level operations to Chaos Daemon when required.

For implementation details, start with the controller architecture guide, command entry points, or Helm chart guide.

Get started

Prefer to try it without setting up a cluster? Run the interactive Killercoda playground in your browser: install Chaos Mesh on a real 2-node Kubernetes cluster, run PodChaos and NetworkChaos experiments, explore the Dashboard, and chain a Workflow - in about 20 minutes.

Contributing

Read CONTRIBUTING.md for the basic workflow and links to area-specific development guides. All contributors must follow the Code of Conduct.

Report security issues according to SECURITY.md.

Adopters

See ADOPTERS.

Blogs

Blogs on Chaos Mesh design & implementation, features, chaos engineering, community updates, etc. See Chaos Mesh Blogs. Here are some recommended ones for you to start with:

Community

Please reach out for bugs, feature requests, and other issues via:

  • Following us on Twitter @chaos_mesh.

  • Joining the #project-chaos-mesh channel in the CNCF Slack workspace.

  • Filling an issue or opening a PR against this repository.

Community meetings

  • Chaos Mesh Community Monthly (Community and project-level updates, community sharing/demo, office hours)

  • Chaos Mesh Development Meeting (Releases, roadmap/features/RFC planning and discussion, issue triage/discussion, etc)

Community blogs

Community talks

Media coverage

License

Chaos Mesh is licensed under the Apache License 2.0. See LICENSE.

Trademark

Chaos Mesh is a trademark of The Linux Foundation. All rights reserved.

Read the original on github.com ↗