Skip to content

ACRL-275 // Boy AMI glad to see you#21

Open
ogorman89 wants to merge 5 commits intomainfrom
ian/ami-blog-post
Open

ACRL-275 // Boy AMI glad to see you#21
ogorman89 wants to merge 5 commits intomainfrom
ian/ami-blog-post

Conversation

@ogorman89
Copy link
Contributor

Related Links

Description and Rationale

  • draft post announcing our two new AMIs and how they came to pass hopefully in a somewhat interesting manner

Other Notes

  • I just kind of wen't with what felt right so I could use some help hitting the right tone I am new to this type of writing
  • I added some diagrams mostly because I like visuals when I read we can scrap any or all of them
  • I could use a technical reading, I tried not to gloss over too much and I also attempted to explain why we made certain decisions so please let me know if I got any of that wrong

@ogorman89 ogorman89 requested a review from drmorr0 February 13, 2026 20:32
@ogorman89 ogorman89 self-assigned this Feb 13, 2026
@linear
Copy link

linear bot commented Feb 13, 2026

@ogorman89
Copy link
Contributor Author

I should have mentioned I need to add links to the AMIs in the marketplace once they are both available.

@ogorman89 ogorman89 requested a review from drmorr0 February 18, 2026 21:45
Copy link
Contributor

@drmorr0 drmorr0 left a comment

Choose a reason for hiding this comment

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

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.
Copy link
Contributor

Choose a reason for hiding this comment

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

Proofreading:

  • Footnote markers should go before the period ([^1]., not .[^1])
  • AWS' should be AWS'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:
Copy link
Contributor

Choose a reason for hiding this comment

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

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.
Copy link
Contributor

Choose a reason for hiding this comment

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

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.
Copy link
Contributor

Choose a reason for hiding this comment

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

Proofreading:

  • configuration library -> Infrastructure-as-code repository
  • also, can we link to the kubernetes blog post where I introduce isengard and moria?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

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.
Copy link
Contributor

Choose a reason for hiding this comment

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

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?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

added backticks

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 screenshot of a an an AMI lineage diagram showing the inheritance of AMIs from Ubuntu 24.04 LTS, down to simkube-x86-64m, and finally to simkube-github-runner-x86-64](/img/posts/ami-lineage.png)
Copy link
Contributor

Choose a reason for hiding this comment

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

typo? simkube-x86-64m

## 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.
Copy link
Contributor

Choose a reason for hiding this comment

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

  • s/kubernetes/Kubernetes


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.
Copy link
Contributor

Choose a reason for hiding this comment

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

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).
Copy link
Contributor

Choose a reason for hiding this comment

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

  • 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"

Copy link
Contributor Author

Choose a reason for hiding this comment

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

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).
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we add one line here linking to the docs? "If you want to know more blah blah blah..."

Copy link
Contributor Author

Choose a reason for hiding this comment

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

"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."

@ogorman89
Copy link
Contributor Author

@drmorr0 I applied your copy edits.

@ogorman89 ogorman89 requested a review from drmorr0 February 19, 2026 23:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants