Conversation
|
I should have mentioned I need to add links to the AMIs in the marketplace once they are both available. |
drmorr0
left a comment
There was a problem hiding this comment.
minor nit/recommendation: I prefer to have MD files max line width at 120 chars (although @grampelberg gets mad at me for that). That way (among other things) it's easier to pinpoint review comments to a specific line.
| datetime: 2026-02-23 11:00:00 | ||
| template: post.html | ||
| --- | ||
| We're pleased to announce that two AMIs ([Amazon Machine Images](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html)) have joined the [SimKube](https://simkube.dev/) family! Yes, twins: `simkube-x86-64` and `simkube-github-runner-x86-64` are now available in the AWS Marketplace. Each came in at a healthy 17 GiB snapshot weight.[^1] They arrived about ten days apart due to AWS' famously transparent Marketplace approval process. |
There was a problem hiding this comment.
Proofreading:
- Footnote markers should go before the period (
[^1]., not.[^1]) AWS'should beAWS's, or honestly to make it slightly less awkward we should just say "due to the famously transparent AWS Marketplace approval process"
| --- | ||
| We're pleased to announce that two AMIs ([Amazon Machine Images](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html)) have joined the [SimKube](https://simkube.dev/) family! Yes, twins: `simkube-x86-64` and `simkube-github-runner-x86-64` are now available in the AWS Marketplace. Each came in at a healthy 17 GiB snapshot weight.[^1] They arrived about ten days apart due to AWS' famously transparent Marketplace approval process. | ||
|
|
||
| I'll explain what each of these AMIs are and how we build them in due course but first off lets address an important question: |
There was a problem hiding this comment.
Proofreading: "in due course, but first off, let's address" (add two commas and a ')
|
|
||
| ## Two AMIs, in THIS economy? | ||
|
|
||
| We know it's crazy, who even has the action minutes to raise AMIs these days; we sure don't. But we had a problem, or maybe an opportunity. SimKube just keeps getting better and better but configuring it can be, frankly, difficult. Building high-fidelity simulation environments requires installing and configuring a long list of tools: [kind](https://kind.sigs.k8s.io/), [KWOK](https://kwok.sigs.k8s.io/), [kubectl](https://kubernetes.io/docs/reference/kubectl/), [docker](https://docs.docker.com/), [prometheus](https://prometheus.io/docs/introduction/overview/) and SimKube to name a few. So shipping a usable SimKube environment batteries included takes some doing. |
There was a problem hiding this comment.
Proofreading:
- "prometheus, and SimKube, to name a few" (we're an Oxford comma shop)
- I think this should say "spinning up a ready-to-go SimKube environment takes some doing"
|
|
||
| We know it's crazy, who even has the action minutes to raise AMIs these days; we sure don't. But we had a problem, or maybe an opportunity. SimKube just keeps getting better and better but configuring it can be, frankly, difficult. Building high-fidelity simulation environments requires installing and configuring a long list of tools: [kind](https://kind.sigs.k8s.io/), [KWOK](https://kwok.sigs.k8s.io/), [kubectl](https://kubernetes.io/docs/reference/kubectl/), [docker](https://docs.docker.com/), [prometheus](https://prometheus.io/docs/introduction/overview/) and SimKube to name a few. So shipping a usable SimKube environment batteries included takes some doing. | ||
|
|
||
| Internally, we have a configuration library called `isengard`[^2]. It is ~48k lines of pure [Ansible](https://docs.ansible.com/) bliss. We use it to automate the deployment of repeatable simulation environments. It occurred to us that users of SimKube probably don't want step one of using it to be "here's ~48k lines of Ansible, good luck!". It turns out there is a better way: a custom SimKube AMI. |
There was a problem hiding this comment.
Proofreading:
- configuration library -> Infrastructure-as-code repository
- also, can we link to the kubernetes blog post where I introduce isengard and moria?
There was a problem hiding this comment.
configuration library -> Infrastructure-as-code repository
I would consider moria the IaC repo and isengard the configuration repo. I changed this to "we have a configuration management repository called isengard" feel free to override it.
also, can we link to the kubernetes blog post where I introduce isengard and moria?
I linked https://blog.appliedcomputing.io/p/what-to-expect-when-youre-expecting
| ## Why not a docker image like a normal person? | ||
| That's a fair question. We did evaluate using a docker image because one of our primary goals was a fast, one-click startup. | ||
|
|
||
| The challenge is that SimKube relies on kind, which spins up Kubernetes nodes as Docker containers. Initializing and configuring the kind cluster requires access to a live Docker daemon. During `docker build`, there is no Docker daemon available inside the build environment, which means we can’t just “run all the setup steps in our Dockerfile” and ship the result. |
There was a problem hiding this comment.
kind in backticks so it's obvious we're referring to a product? Or stylize it as KinD? Or re-link to the kind webpage, even though we just did that?
| The second AMI is our Simkube GitHub Action Runner, it includes everything in the SimKube AMI but also some extra configuration steps. We use an iterative build process, so this version is literally built on top of the base SimKube AMI.[^4] | ||
|
|
||
| <figure markdown> | ||
|  |
| ## A world of opportunities | ||
| Our SimKube AMI is a step forward in making SimKube approachable and easy to use. Instead of spending a few hours setting up a simulation environment you can grab the SimKube AMI off the AWS Marketplace and have a simulation environment up and running in a couple of minutes. You will need to grab a trace from your production cluster, but the environment for running those simulations is available at the click of a button or at the end of a AWS CLI command. | ||
|
|
||
| We want to continue to extend kubernetes simulation into CI pipelines using our GitHub runner AMI. The vision is an engineer, maybe you, checks in some change to your cluster. SimKube CI simulates it based on your production cluster and sends you back metrics you can use to evaluate your change before it hits production. |
|
|
||
| We want to continue to extend kubernetes simulation into CI pipelines using our GitHub runner AMI. The vision is an engineer, maybe you, checks in some change to your cluster. SimKube CI simulates it based on your production cluster and sends you back metrics you can use to evaluate your change before it hits production. | ||
|
|
||
| Today, ACRL is already running small simulations in CI in the SimKube repo. We have developed custom GitHub Actions to make launching runners backed by SimKube AMIs as easy as adding a few lines in your GitHub Actions workflow. |
There was a problem hiding this comment.
Maybe link to the action in the SimKube repo?
|
|
||
| Today, ACRL is already running small simulations in CI in the SimKube repo. We have developed custom GitHub Actions to make launching runners backed by SimKube AMIs as easy as adding a few lines in your GitHub Actions workflow. | ||
|
|
||
| So maybe you find SimKube interesting but setting it up has been too much of a hassle. Or perhaps you are already running SimKube locally but want to run a dozen simultaneous simulations in AWS. The AMIs are there for you and the SimKube AMI is free to use though you still have to pay AWS for the compute (sorry). |
There was a problem hiding this comment.
- The AMIs are there for you, and the SimKube AMI is free to use--though you still have to...
- (maybe this is funnier? or maybe not?) "sorry not sorry"
There was a problem hiding this comment.
I think I like the (sorry) better but its just a personal preference. Sorry not sorry is probably funnier.
|
|
||
| Today, ACRL is already running small simulations in CI in the SimKube repo. We have developed custom GitHub Actions to make launching runners backed by SimKube AMIs as easy as adding a few lines in your GitHub Actions workflow. | ||
|
|
||
| So maybe you find SimKube interesting but setting it up has been too much of a hassle. Or perhaps you are already running SimKube locally but want to run a dozen simultaneous simulations in AWS. The AMIs are there for you and the SimKube AMI is free to use though you still have to pay AWS for the compute (sorry). |
There was a problem hiding this comment.
Can we add one line here linking to the docs? "If you want to know more blah blah blah..."
There was a problem hiding this comment.
"If you want to learn more, we've added a new SimKube in the Cloud
section to the documentation that walks through how they work and how to get started."
|
@drmorr0 I applied your copy edits. |
Related Links
Description and Rationale
Other Notes