Chaos Mesh Common API
Utility endpoints for cluster metadata, namespaces, and configuration
Utility endpoints for cluster metadata, namespaces, and configuration
openapi: 3.1.0
info:
title: Chaos Mesh Dashboard Archives Common API
description: The Chaos Mesh Dashboard API provides REST endpoints for managing chaos experiments, schedules, workflows, and events on Kubernetes clusters. Chaos Mesh is a cloud-native chaos engineering platform that supports fault injection into pods, nodes, networks, IO subsystems, and cloud provider resources. The Dashboard API is served by the chaos-dashboard component and is the backend for the Chaos Mesh web UI, accessible at /api on the dashboard server.
version: '2.5'
contact:
name: Chaos Mesh Community
url: https://chaos-mesh.org/community/
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: http://localhost:2333/api
description: Default Chaos Mesh Dashboard server
tags:
- name: Common
description: Utility endpoints for cluster metadata, namespaces, and configuration
paths:
/common/config:
get:
operationId: getDashboardConfig
summary: Chaos Mesh Get Dashboard configuration
description: Returns the current configuration of the Chaos Mesh Dashboard including security settings, namespace scope, and feature flags.
tags:
- Common
responses:
'200':
description: Dashboard configuration returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/DashboardConfig'
'500':
$ref: '#/components/responses/InternalServerError'
/common/namespaces:
get:
operationId: listNamespaces
summary: Chaos Mesh Get all Kubernetes namespaces
description: Returns a list of all namespace names from the Kubernetes cluster. Used by the UI for namespace selection dropdowns when scoping experiments.
tags:
- Common
responses:
'200':
description: List of namespaces returned successfully.
content:
application/json:
schema:
type: array
items:
type: string
description: Kubernetes namespace name.
'500':
$ref: '#/components/responses/InternalServerError'
/common/chaos-available-namespaces:
get:
operationId: listChaosAvailableNamespaces
summary: Chaos Mesh Get namespaces available for chaos injection
description: Returns the list of namespaces where chaos can be injected based on Chaos Mesh RBAC configuration and namespace scope settings.
tags:
- Common
responses:
'200':
description: List of available namespaces returned successfully.
content:
application/json:
schema:
type: array
items:
type: string
description: Kubernetes namespace name.
'500':
$ref: '#/components/responses/InternalServerError'
/common/kinds:
get:
operationId: listChaosKinds
summary: Chaos Mesh Get all available chaos kinds
description: Returns a list of all chaos experiment kinds available in the current Kubernetes cluster based on installed CRDs. Examples include PodChaos, NetworkChaos, IOChaos, StressChaos, TimeChaos, HTTPChaos, and cloud provider chaos types.
tags:
- Common
responses:
'200':
description: List of chaos kinds returned successfully.
content:
application/json:
schema:
type: array
items:
type: string
description: Chaos kind name (Kubernetes CRD kind).
'500':
$ref: '#/components/responses/InternalServerError'
/common/labels:
get:
operationId: getPodLabels
summary: Chaos Mesh Get pod labels
description: Returns a map of label keys to their possible values for pods in the specified namespace. Used by the UI to build label selector inputs for targeting experiments at specific pods.
tags:
- Common
parameters:
- $ref: '#/components/parameters/namespaceParam'
responses:
'200':
description: Pod labels returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/MapStringSliceResponse'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
/common/annotations:
get:
operationId: getPodAnnotations
summary: Chaos Mesh Get pod annotations
description: Returns a map of annotation keys to their possible values for pods in the specified namespace.
tags:
- Common
parameters:
- $ref: '#/components/parameters/namespaceParam'
responses:
'200':
description: Pod annotations returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/MapStringSliceResponse'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
/common/pods:
post:
operationId: listPods
summary: Chaos Mesh List pods matching a selector
description: Returns pods from the Kubernetes cluster that match the provided label selector. Used by the UI to preview which pods would be targeted by an experiment before creating it.
tags:
- Common
requestBody:
description: Label selector to filter pods.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SelectorRequest'
responses:
'200':
description: Matching pods returned successfully.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Pod'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
/common/physicalmachines:
post:
operationId: listPhysicalMachines
summary: Chaos Mesh List physical machines matching a selector
description: Returns PhysicalMachine resources from the Kubernetes cluster that match the provided selector. Physical machines are used for chaos experiments targeting bare-metal or VM hosts via the chaos-daemon.
tags:
- Common
requestBody:
description: Selector to filter physical machines.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SelectorRequest'
responses:
'200':
description: Matching physical machines returned successfully.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PhysicalMachine'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalServerError'
/common/rbac-config:
get:
operationId: getRbacConfig
summary: Chaos Mesh Get RBAC configuration
description: Returns the RBAC configuration guidance for setting up Chaos Mesh permissions. This endpoint helps users understand what RBAC roles and bindings are needed to run chaos experiments in their chosen namespace with their chosen scope.
tags:
- Common
parameters:
- $ref: '#/components/parameters/namespaceParam'
- name: role
in: query
description: Role type to generate RBAC config for (manager or viewer).
required: false
schema:
type: string
enum:
- manager
- viewer
- name: scope
in: query
description: Scope of the RBAC config (cluster or namespace).
required: false
schema:
type: string
enum:
- cluster
- namespace
responses:
'200':
description: RBAC configuration returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/MapStringSliceResponse'
'500':
$ref: '#/components/responses/InternalServerError'
/api/common/namespaces:
get:
operationId: listNamespaces
summary: Chaos Mesh List namespaces
description: Returns the list of Kubernetes namespaces available for targeting chaos experiments. Used to populate namespace selectors in the Chaos Dashboard UI.
tags:
- Common
responses:
'200':
description: List of namespace names
content:
application/json:
schema:
type: array
items:
type: string
description: Kubernetes namespace name.
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
/api/common/pods:
post:
operationId: listPodsForSelector
summary: Chaos Mesh List pods for a selector
description: Returns a list of pods matching the given label selectors and namespaces. Used to preview which pods will be affected by a chaos experiment before creating it, so operators can verify their target selector.
tags:
- Common
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PodSelectorRequest'
responses:
'200':
description: List of matching pods
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PodInfo'
'400':
$ref: '#/components/responses/BadRequest_2'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
components:
schemas:
Pod:
type: object
description: Summary of a Kubernetes pod available for chaos targeting.
properties:
name:
type: string
description: Pod name.
namespace:
type: string
description: Kubernetes namespace of the pod.
ip:
type: string
description: Pod IP address.
state:
type: string
description: Pod state (e.g., Running, Pending, Succeeded, Failed).
DashboardConfig:
type: object
description: Configuration settings for the Chaos Mesh Dashboard.
properties:
security_mode:
type: boolean
description: Whether security mode requiring authentication is enabled.
dns_server_create:
type: boolean
description: Whether Chaos Mesh should create a DNS server for DNS chaos.
version:
type: string
description: Version of Chaos Mesh currently running.
enable_filter_namespace:
type: boolean
description: Whether namespace filtering is enabled for the dashboard.
SelectorRequest:
type: object
description: Request body for selecting pods or physical machines by label selectors.
properties:
namespace:
type: string
description: Kubernetes namespace to search.
label_selectors:
type: object
description: Key-value pairs for label selection.
additionalProperties:
type: string
annotation_selectors:
type: object
description: Key-value pairs for annotation selection.
additionalProperties:
type: string
MapStringSliceResponse:
type: object
description: A map from string keys to arrays of string values.
additionalProperties:
type: array
items:
type: string
ErrorResponse:
type: object
description: Error response returned when an API operation fails.
properties:
code:
type: integer
description: HTTP status code.
example: 404
message:
type: string
description: Human-readable error message.
example: experiment not found
PhysicalMachine:
type: object
description: A physical machine or VM registered as a Chaos Mesh target.
properties:
name:
type: string
description: Name of the PhysicalMachine resource.
namespace:
type: string
description: Kubernetes namespace of the resource.
address:
type: string
description: Network address of the physical machine's chaos-daemon.
PodSelectorRequest:
type: object
description: Request body for previewing which pods match a chaos experiment selector before creating the experiment.
required:
- namespaces
- labelSelectors
properties:
namespaces:
type: array
description: Kubernetes namespaces to search for matching pods.
items:
type: string
example:
- default
- production
labelSelectors:
type: object
description: Key-value label selectors to match pods. All specified labels must match.
additionalProperties:
type: string
example:
app: frontend
expressionSelectors:
type: array
description: Advanced Kubernetes label selector expressions.
items:
type: object
additionalProperties: true
pods:
type: object
description: Explicit pod name lists per namespace for fixed targeting rather than label-based selection.
additionalProperties:
type: array
items:
type: string
APIError:
type: object
description: Error response returned when an API request fails.
required:
- code
- message
properties:
code:
type: integer
description: HTTP status code of the error.
message:
type: string
description: Human-readable description of the error.
full_text:
type: string
description: Full error text including stack trace or detailed cause.
PodInfo:
type: object
description: Information about a Kubernetes pod that could be targeted by a chaos experiment.
properties:
name:
type: string
description: Name of the pod.
example: frontend-abc123
namespace:
type: string
description: Kubernetes namespace of the pod.
example: default
ip:
type: string
description: IP address of the pod.
format: ipv4
example: 10.0.0.5
host:
type: string
description: Kubernetes node name where the pod is running.
example: worker-node-1
status:
type: string
description: Current phase of the pod.
enum:
- Pending
- Running
- Succeeded
- Failed
- Unknown
responses:
InternalServerError:
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
InternalError:
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
BadRequest_2:
description: Bad request — invalid parameters or malformed body
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Unauthorized:
description: Unauthorized — authentication required
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
BadRequest:
description: Bad request — invalid parameters or request body.
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
parameters:
namespaceParam:
name: namespace
in: query
description: Kubernetes namespace to scope the request to.
required: false
schema:
type: string
externalDocs:
description: Chaos Mesh Documentation
url: https://chaos-mesh.org/docs/