chaos-mesh

module
v2.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2023 License: Apache-2.0

README

Chaos Mesh Logo Chaos Mesh Logo

Upload Image codecov LICENSE Language Go Report Card GoDoc FOSSA Status CII Best Practices Artifact Hub

Chaos Mesh is an open source cloud-native Chaos Engineering platform. It offers various types of fault simulation and has an enormous capability to orchestrate fault scenarios.

Using Chaos Mesh, you can conveniently simulate various abnormalities that might occur in reality during the development, testing, and production environments and find potential problems in the system. To lower the threshold for a Chaos Engineering project, Chaos Mesh provides you with a visualization operation. You can easily design your Chaos scenarios on the Web UI and monitor the status of Chaos experiments.

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. For details about who's involved and how Chaos Mesh plays a role, read the CNCF announcement.


At the current stage, Chaos Mesh has the following components:

  • Chaos Operator: the core component for chaos orchestration. Fully open sourced.
  • Chaos Dashboard: a Web UI for managing, designing, monitoring Chaos Experiments.

See the following demo video for a quick view of Chaos Mesh:

Watch the video

Chaos Operator

Chaos Operator injects chaos into the applications and Kubernetes infrastructure in a manageable way, which provides easy, custom definitions for chaos experiments and automatic orchestration. There are three components at play:

Controller-manager: used to schedule and manage the lifecycle of CRD objects.

Chaos-daemon: runs as daemonset with privileged system permissions over network, Cgroup, etc. for a specific node.

Chaos Operator

Chaos Operator uses CustomResourceDefinition (CRD) to define chaos objects. The current implementation supports a few types of CRD objects for fault injection, namely DNSChaos, PodChaos, PodIOChaos, PodNetworkChaos, NetworkChaos, IOChaos, TimeChaos, StressChaos, and KernelChaos, which correspond to the following major actions (experiments):

  • pod-kill: The selected pod is killed (ReplicaSet or something similar may be needed to ensure the pod will be restarted).
  • pod-failure: The selected pod will be unavailable in a specified period of time.
  • container-kill: The selected container is killed in the selected pod.
  • netem chaos: Network chaos such as delay, duplication, etc.
  • network-partition: Simulate network partition.
  • IO chaos: Simulate file system faults such as I/O delay, read/write errors, etc.
  • time chaos: The selected pod will be injected with clock skew.
  • cpu-burn: Simulate the CPU of the selected pod stress.
  • memory-burn: Simulate the memory of the selected pod stress.
  • kernel chaos: The selected pod will be injected with (slab, bio, etc) errors.
  • dns chaos: The selected pod will be injected with dns errors, such as error, random.

Quick start

See Chaos Mesh Docs.

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:

Contributing

See the contributing guide and development guide.

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.

  • Filing 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

FAQs

See FAQs.

Roadmap

See ROADMAP.

License

Chaos Mesh is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

FOSSA Status

Trademark

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

Directories

Path Synopsis
cmd
chaos-controller-manager/provider
Package provider provides several required components for bootstrapping chaos-controller-manager.
Package provider provides several required components for bootstrapping chaos-controller-manager.
generate-makefile
This command line tool would generate Makefile like binary.generated.mk, contains targets for building executable binaries.
This command line tool would generate Makefile like binary.generated.mk, contains targets for building executable binaries.
action
Package action introduces a multiplexer for actions.
Package action introduces a multiplexer for actions.
pkg
bpm
curl
Package curl contains the tools about rendering and parsing curl command
Package curl contains the tools about rendering and parsing curl command
dashboard/swaggerdocs
Package swaggerdocs GENERATED BY SWAG; DO NOT EDIT This file was generated by swaggo/swag
Package swaggerdocs GENERATED BY SWAG; DO NOT EDIT This file was generated by swaggo/swag
dashboard/ttlcontroller
Package ttlcontroller provides a TTL (time to live) mechanism to clear old objects in the database.
Package ttlcontroller provides a TTL (time to live) mechanism to clear old objects in the database.
helm
Package helm introduces the integration with helm, for example: install / upgrade Chaos Mesh on remote cluster
Package helm introduces the integration with helm, for example: install / upgrade Chaos Mesh on remote cluster
log
Package log contains series of utilities for setting up and accessing logger.
Package log contains series of utilities for setting up and accessing logger.
pidfile
Package pidfile provides structure and helper functions to create and remove PID file.
Package pidfile provides structure and helper functions to create and remove PID file.
test
tools

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL