Skip to main content
The Chaos Engineering module allows validating the resilience of Kubernetes workloads and the effectiveness of AIOps platform remediations. Unlike standalone chaos tools, experiments here are integrated into the AIOps pipeline โ€” allowing you to validate that a remediation actually works under adverse conditions.
Each experiment is a native Kubernetes CRD. All security controls are declarative and auditable, ensuring that chaos experiments never affect critical workloads without explicit approval.

Chaos Engineering in the AIOps Context

Remediation Validation

After fixing an incident, re-inject the failure to confirm that automatic remediation works.

Resilience Testing

Run recurring experiments to ensure the platform detects and responds to known failures.

Automated Game Days

Schedule experiments via cron to simulate regular game days without manual intervention.

Recovery Baseline

Measure actual recovery times to establish SLOs and identify bottlenecks.

ChaosExperiment CRD

Complete Specification

7 Experiment Types

1. Pod Kill

Deletes pods randomly using the Fisher-Yates shuffle algorithm with crypto/rand for truly random selection.
Pod kill uses GracePeriodSeconds: 0, simulating an abrupt failure (e.g., node crash). For graceful termination, use pod_failure.

2. Pod Failure

Graceful pod deletion, respecting the terminationGracePeriodSeconds configured in the PodSpec.

3. CPU Stress

Creates a stress-ng pod on the same node as the target pod to simulate CPU contention.
Generated stress pod:

4. Memory Stress

Creates a stress-ng pod that allocates memory on the same node as the target.
Generated stress-ng command:

5. Network Delay

Simulates network latency using annotations on the target pods. The sidecar or CNI plugin interprets the annotation to inject delay.
Applied annotation:

6. Network Loss

Simulates network packet loss via annotations.

7. Disk Stress

Creates a stress-ng pod that generates intensive disk I/O on the same node.
Generated stress-ng command:

Type Summary

Safety Checks

Safety checks are the protection layer that prevents chaos experiments from causing real damage.

MinHealthyPods

Ensures a minimum number of pods remain healthy during the experiment.

MaxConcurrentExperiments

Prevents chaos storms by limiting the number of simultaneous experiments in the namespace.

AbortOnIssueDetected

If AIOps detects a new issue unrelated to the experiment during execution, the experiment is immediately aborted.

RequireApproval

Integrates with the ApprovalRequest system to require human approval before executing the experiment.
When enabled, the controller creates an ApprovalRequest CR and waits for approval before proceeding:

AllowedNamespaces / BlockedNamespaces

Whitelist of namespaces where experiments can be executed. If defined, only these namespaces are allowed.
blockedNamespaces takes precedence over allowedNamespaces. If a namespace appears in both lists, it is blocked. The kube-system and chatcli-system namespaces are always blocked, regardless of configuration.

Post-Experiment Verification

VerifyRecovery

After the experiment completes, the controller verifies whether the deployment returned to a healthy state.

RecoveryTimeout

Maximum wait time for recovery verification. If the deployment does not return to a healthy state within this period, the experiment is marked as Failed.

RunRemediationTest

When enabled together with linkedIssueRef, the controller:
1

Re-inject the failure

Executes the same experiment again to recreate the original incident scenario.
2

Wait for detection

Waits for the AIOps platform to automatically detect the anomaly.
3

Verify remediation

Confirms that automatic remediation was triggered and resolved the problem.
4

Record result

Updates the ChaosExperiment.Status with the validation result.

State Machine

DryRun Mode

DryRun mode executes all experiment logic (safety checks, pod selection, command generation) without applying any real changes to the cluster.
DryRun result:
Always run a DryRun before configuring a scheduled experiment. This validates that safety checks are correct and that targets are as expected.

Schedule (Recurring Experiments)

The schedule field accepts standard cron expressions for recurring execution:
Each scheduled execution creates a new ChaosExperiment CR with a timestamp suffix.

LinkedIssueRef

The linkedIssueRef field connects the experiment to a specific incident, allowing validation that the applied remediation actually works.
When linkedIssueRef is defined, the controller:
  1. Fetches the Issue CR and associated RemediationPlan
  2. Records the connection in the experiment status
  3. If runRemediationTest: true, validates that AIOps detects and remediates automatically
  4. Updates the Issue CR with the validation result

Complete YAML Examples

Metrics

The chaos engineering module exposes Prometheus metrics for observability and resilience tracking.

Alert Examples

Best Practices

1

Start with DryRun

Always run a DryRun before real experiments to validate safety checks and target selection.
2

Staging First

Run experiments in staging before enabling in higher-tier environments. Use allowedNamespaces for enforcement.
3

Conservative Safety Checks

Configure minHealthyPods with margin. If the deployment has 5 replicas and needs 3 to operate, configure minHealthyPods: 3.
4

Schedule Game Days

Use schedule for recurring experiments. Resilience is not a one-time test โ€” it is a continuous practice.
5

Validate Remediations

After fixing an incident, use linkedIssueRef + runRemediationTest to confirm that the fix works under failure.

Next Steps

Decision Engine

Understand how chaos results influence the Pattern Store and engine confidence.

Multi-Cluster Federation

Run chaos experiments on specific clusters with per-tier policies.

Audit and Compliance

All experiments generate immutable AuditEvents for complete traceability.

AIOps Platform

Return to the AIOps platform overview.