Readme
A record-and-replay simulation environment for the Kubernetes control plane based on KWOK .
Overview
This package provides the following components:
skctl : a CLI utility for interacting with various other SimKube components
sk-ctrl : a Kubernetes Controller that watches for Simulation custom resources and runs a simulation based on the
provided trace file.
sk-driver : the actual runner for a specific simulation, created as a Kubernetes Job by sk-ctrl
sk-tracer : a watcher for Kubernetes pod creation and deletion events, saves these events in a replayable trace
format.
Installation
To install sk-tracer in your prod cluster: kubectl apply - k k8s/ kustomize/ prod
To install sk-ctrl in your simulation cluster: kubectl apply - k k8s/ kustomize/ sim
To install skctl on your dev machine: cargo install skctl
Documentation
Full documentation for SimKube is available on the SimKube website.
Here are some quick links to select topics:
Architecture Diagram
We have a channel on the Kubernetes Slack instance! Come chat with
us there. (You can sign up for the Kubernetes Slack instance
for free)
Contributing
We welcome any and all contributions to the SimKube project! Please open a pull request.
If you have a feature request, please start a discussion . Members of
the SimKube team will determine whether the feature should become planned work and how it will be prioritized.
If you've found a bug or are working on a planned improvement, please open an
issue !
Code of Conduct
Applied Computing Research Labs has a strict code of conduct we expect all contributors to adhere to. Please read the
full text so that you understand the expectations
upon you as a contributor.
Copyright and Licensing
SimKube is licensed under the MIT License . Contributors to
this project agree that they own the copyrights to all contributed material, and agree to license your contributions
under the same terms. This is "inbound=outbound", and is the GitHub
default .
[!WARNING]
Due to the uncertain nature of copyright and IP law, this repository does not accept contributions that have been all
or partially generated with GitHub Copilot or other LLM-based code generation tools. Please disable any such tools
before authoring changes to this project.