Imagine testing your system’s resilience by triggering CPU overloads, memory hogging, or service disruptions without risking disaster. With krknctl, this isn’t just a dream. It’s a practical reality for engineers, DevOps professionals, and chaos enthusiasts alike. Built as a powerful command-line interface (CLI) for orchestrating krkn chaos scenarios using container images from krkn-hub, krknctl simplifies complexity and empowers you to explore your system’s limits.
In this article, we’ll dive deep into why krknctl is a must-have tool, its standout features, and how it can transform your chaos engineering workflows.
Krknctl is a game-changer
Krknctl isn’t just another chaos engineering tool. It’s a streamlined, user-friendly solution that abstracts the intricacies of container runtimes (i.e., Podman or Docker) so you can focus on testing, learning, and building resilient systems. Here’s what sets krknctl apart:
- Instant autocompletion: With a double tap of the tab key, krknctl suggests commands and descriptions, enhancing your experience on Bash (Linux) or Zsh (macOS). It’s like having an intelligent assistant by your side!
- Ironclad input validation: Forget typos or errors—krknctl validates your inputs, ensuring every command executes flawlessly.
- Dynamic graph orchestration: Use a dependency resolution algorithm to run scenarios serially, in parallel, or in mixed configurations. Define complex execution plans with a simple JSON file, unlocking endless testing possibilities.
- Versatile container support: Seamlessly works with Podman or Docker, leveraging Unix sockets for integration. If both runtimes are installed, it defaults to Podman—your choice, your control.
- Innovative metadata management: One of krknctl’s coolest and most unique features is its metadata backend. Unlike traditional tools, krknctl exclusively uses standard registry APIs and OCI labels from krkn-hub images to manage scenario metadata. This approach eliminates the need for external databases and web services, making it lightweight, scalable, and truly original, only image registry needed.
- Security-focused image flexibility: As backend, krknctl supports Quay with official krkn-hub images and private registries, giving you unparalleled flexibility for mission-critical use cases. For scenarios where security is paramount, you can mirror krkn-hub images into your own private registry, ensuring full control over your chaos engineering environment. This security-conscious makes krknctl a standout tool for organizations prioritizing data sovereignty and compliance.
Ready-to-use builds
One of krknctl’s biggest advantages is you don’t need to build it from scratch. Pre-compiled binaries are available on GitHub for:
- macOS: Intel and Apple Silicon architectures
- Linux: x86_64 and ARM support
This means you can download the right build for your system, install it in seconds, and start orchestrating chaos immediately—no Go compiler or build dependencies required. It’s a frictionless onboarding experience, perfect for developers eager to dive into chaos engineering without delay.
Putting krknctl to work
Let’s explore krknctl in action. Suppose you want to test your system’s resilience against multiple disruptions—say, CPU, memory, I/O, and service hijacking. Here’s how you can scaffold and run a serial execution plan:
./krknctl graph scaffold node-cpu-hog node-memory-hog node-io-hog service-hijacking > plan.json
<edit the plan.json file to tweak the scenario parameters>
./krknctl graph run plan.json
This generates a JSON execution plan, runs the scenarios, and logs detailed output of each scenario to files like krknctl-<scenario>-<id>-<timestamp>.log
.
Want to monitor progress? Use attach <scenario-ID>
to reconnect to the container’s output.
For parallel execution, leverage the dummy-scenario
as a root node, allowing all dependent scenarios to run concurrently, which is ideal for stress-testing at scale.
Another common use case is querying the status of running scenarios. With query-status <container-ID>
, you can integrate krknctl into CI/CD pipelines to halt execution if a chaos run fails, ensuring reliability at every step. Thanks to its metadata approach of pulling scenario details directly from krkn-hub’s OCI labels, you get consistent, up-to-date information without additional setup.
Choose krknctl for your chaos journey
In a world where system resilience is non-negotiable, krknctl offers a competitive edge. It abstracts container runtime complexities, provides flexible graph-based orchestration, and delivers an accessible experience for beginners and experts alike. The innovative use of standard registry APIs and OCI labels for metadata management sets it apart, offering a lightweight, scalable solution that’s unique in the chaos engineering space. Plus, with pre-built binaries for major platforms, you’re ready to start testing in minutes—whether you’re on a MacBook Pro (Intel or Apple Silicon) or a Linux server (x86_64 or ARM).
A note on maturity: krknctl is currently in beta, so use it at your own risk. But don’t let that deter you. This is your chance to shape a tool that’s evolving rapidly, backed by a vibrant community at krkn-chaos.
Getting started: Your fast track to chaos
Ready to harness controlled chaos? Follow these steps:
- Download the binary: Head to the GitHub releases page and grab the pre-built version for your platform (macOS Intel/Apple Silicon, Linux x86_64/ARM).
- Install dependencies: Ensure you have Podman or Docker, plus system-specific tools like words (for random dictionaries on Linux) or gpgme (via Homebrew on macOS).
- Enable autocompletion: Check the documentation for the autocompletion setup on your favorite shell.
- Explore commands: Try
list available
, describenode-cpu-hog
, orgraph scaffold
to unlock krknctl’s potential. - Explore the documentation.
Building resilient systems with krknctl
Krknctl isn’t just a tool, it’s a catalyst for dreaming big about resilient, chaos-tested systems. Whether you’re a curious newcomer or a seasoned chaos engineer, this CLI empowers you to experiment, innovate, and push boundaries. From serial executions to parallel stress tests, krknctl gives you the flexibility to simulate real-world failures and build unbreakable architectures, leveraging its unique metadata approach to keep your scenarios organized and cutting-edge.
Take a look at the video demo.
Join the krkn-chaos community today, download a pre-built binary, and start your chaos engineering journey. The future of resilient systems is chaotic, and with krknctl, you’ll be ready to lead the charge.