Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 18 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@


> [!CAUTION]
> __The tool is currently in under active development, use it at your own risk.__
> The tool is currently in under active development, use it at your own risk.

An intelligent chaos engineering framework that uses genetic algorithms to optimize chaos scenarios for Kubernetes/OpenShift applications. Krkn-AI automatically evolves and discovers the most effective chaos experiments to test your system's resilience.
An intelligent chaos engineering framework that uses genetic algorithms to optimize chaos scenarios for Kubernetes/OpenShift applications. Krkn-AI automatically evolves and discovers the most effective chaos experiments to test your system's resilience.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. Trailing whitespace fails pre-commit 🐞 Bug ⛯ Reliability

README.md contains trailing spaces that will be rewritten by the trailing-whitespace pre-commit
hook; because CI runs pre-commit on changed files, this will fail the CI job until the whitespace is
removed. This can block merging even though it’s “just docs.”
Agent Prompt
### Issue description
`README.md` has trailing whitespace on newly edited lines. The `trailing-whitespace` pre-commit hook will rewrite the file, and CI runs pre-commit on changed files, so the workflow will fail until the whitespace is removed.

### Issue Context
CI runs `pre-commit run --from-ref origin/main --to-ref HEAD` and `.pre-commit-config.yaml` enables `trailing-whitespace`.

### Fix Focus Areas
- README.md[9-9]
- README.md[308-308]
- .pre-commit-config.yaml[19-25]
- .github/workflows/ci.yml[41-46]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


## 🌟 Features

- **Genetic Algorithm Optimization**: Automatically evolves chaos scenarios to find optimal testing strategies
-**Genetic Algorithm Optimization**: Automatically evolves chaos scenarios to find optimal testing strategies, Discovers that terminating pods in a specific sequence reveals a race condition.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This information isn’t necessary for a quick-look guide. It’s better to keep it short and precise.

- **Multi-Scenario Support**: Pod failures, container scenarios, node resource exhaustion, and application outages
- **Kubernetes/OpenShift Integration**: Native support for both platforms
- **Health Monitoring**: Continuous monitoring of application health during chaos experiments
- **Prometheus Integration**: Metrics-driven fitness evaluation
- **Prometheus Integration**: Metrics-driven fitness evaluation,scenarios that trigger SLO violations get higher fitness scores.
- **Configurable Fitness Functions**: Point-based and range-based fitness evaluation
- **Population Evolution**: Maintains and evolves populations of chaos scenarios across generations

Expand Down Expand Up @@ -64,6 +64,7 @@ oc config set-context --current --namespace=$DEMO_NAMESPACE

### Setup Monitoring and Testing


```bash
# Setup NGINX reverse proxy for external access
./scripts/setup-nginx.sh
Expand Down Expand Up @@ -304,14 +305,26 @@ Krkn-AI saves results in the specified output directory:

The current version of Krkn-AI leverages an [evolutionary algorithm](https://en.wikipedia.org/wiki/Evolutionary_algorithm), an optimization technique that uses heuristics to identify chaos scenarios and components that impact the stability of your cluster and applications.

1. **Initial Population**: Creates random chaos scenarios based on your configuration
1. **Initial Population**: Creates random chaos scenarios based on your configuration
2. **Fitness Evaluation**: Runs each scenario and measures system response using Prometheus metrics
3. **Selection**: Identifies the most effective scenarios based on fitness scores
4. **Evolution**: Creates new scenarios through crossover and mutation
5. **Health Monitoring**: Continuously monitors application health during experiments
6. **Iteration**: Repeats the process across multiple generations to find optimal scenarios


```text
┌─────────────┐ ┌──────────────┐ ┌─────────────┐ ┌────────────────────┐
│ Config │─────▶│ Generate │─────▶│ Execute │─────▶│ Evaluate (Fitness)│
│ Setup │ │ Scenarios │ │ Chaos │ │ Using Metrics │
└─────────────┘ └──────────────┘ └─────────────┘ └────────────────────┘
│ │
│ ┌──────────────┐ │
└─────────│ Evolve & │◀─────────────────┘
│ Iterate │
└──────────────┘
```

## 🤝 Contributing

1. Fork the repository
Expand Down