MCPcopy Index your code
hub / github.com/acrlabs/simkube

github.com/acrlabs/simkube @v2.7.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.7.0 ↗ · + Follow
1,035 symbols 2,499 edges 125 files 19 documented · 2%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

build status

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

  1. To install sk-tracer in your prod cluster: kubectl apply -k k8s/kustomize/prod
  2. To install sk-ctrl in your simulation cluster: kubectl apply -k k8s/kustomize/sim
  3. 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

architecture diagram of SimKube

Community

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.

Related Reading

Extension points exported contracts — how you extend this code

Diagnostic (Interface)
(no doc) [3 implementers]
sk-cli/src/validation/validator.rs
EventHandler (Interface)
(no doc) [2 implementers]
sk-store/src/watchers/mod.rs
EventSendable (Interface)
(no doc) [1 implementers]
sk-core/src/events.rs
ObjectStoreWrapper (Interface)
(no doc) [1 implementers]
sk-core/src/external_storage.rs
KubeResourceExt (Interface)
(no doc) [1 implementers]
sk-core/src/k8s/mod.rs
PodExt (Interface)
(no doc) [1 implementers]
sk-core/src/k8s/mod.rs
OpenApiResourceExt (Interface)
(no doc) [1 implementers]
sk-core/src/k8s/mod.rs

Core symbols most depended-on inside this repo

handle
called by 77
testutils/src/fake.rs
make_fake_apiserver
called by 47
testutils/src/fake.rs
insert
called by 41
sk-store/src/index.rs
next
called by 40
sk-store/src/trace.rs
iter
called by 39
sk-store/src/trace.rs
assert
called by 39
testutils/src/fake.rs
len
called by 35
sk-store/src/trace.rs
namespaced_name
called by 35
sk-core/src/k8s/util.rs

Shape

Class 406
Function 406
Method 181
Enum 34
Interface 8

Languages

Rust99%
Python1%

Modules by API surface

sk-api/src/prometheus.rs345 symbols
sk-store/src/trace.rs23 symbols
sk-skel/src/tests/engine_test.rs21 symbols
sk-skel/src/ast.rs18 symbols
sk-core/src/k8s/util.rs18 symbols
sk-store/src/tests/trace_store_test.rs17 symbols
sk-driver/src/tests/mutation_test.rs17 symbols
sk-core/src/events.rs17 symbols
sk-driver/src/mutation.rs16 symbols
sk-core/src/config.rs15 symbols
sk-core/src/k8s/pod_lifecycle.rs14 symbols
sk-core/src/k8s/gvk.rs14 symbols

For agents

$ claude mcp add simkube \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact