Version: 1.1.4

Define the Scope of Chaos Experiment

This document describes how to define the scope of a chaos experiment.

Chaos Mesh provides a variety of selectors, which you can use to define the scope of your chaos experiment. These selectors are defined in the spec.selector field of the chaos object.

Namespace selectors#

Namespace selectors filter the chaos experiment targets by the namespace. Defined as a set of strings. The default namespace selector for Chaos Mesh is the chaos experiment object. For example:

spec:
selector:
namespaces:
- 'app-ns'

Label selectors#

Label selectors filter chaos experiment targets by the label. Defined as a map of string keys and values. For example:

spec:
selector:
labelSelectors:
'app.kubernetes.io/component': 'tikv'

Annotation selectors#

Annotation selectors filter chaos experiment targets by the annotation. Defined as a map of string keys and values. For example:

spec:
selector:
annotationSelectors:
'example-annotation': 'group-a'

Field selectors#

Field selectors filter chaos experiment targets by the resource field. Defined as a map of string keys and values. For example:

spec:
selector:
fieldSelectors:
'metadata.name': 'my-pod'

For more details about field selectors, refer to the Kubernetes document.

Pod phase selectors#

Pod Phase selectors filter chaos experiment targets by the condition. Defined as a set of string. Supported conditions: Pending, Running, Succeeded, Failed, Unknown. For example:

spec:
selector:
podPhaseSelectors:
- 'Running'

Pod selectors#

Pod selectors filter chaos experiment targets by the pod. Defined as a map of string keys and values. The key in this map specifies the namespace which the pods belong to, and each value under the key is a pod. If this selector is not empty, these pod defined in this map are used directly and other defined selectors will be ignored. For example:

spec:
selector:
pods:
tidb-cluster: # namespace of the target pods
- basic-tidb-0
- basic-pd-0
- basic-tikv-0
- basic-tikv-1