Project Description

This project will create a CLI utility that will use "microvm" technology (a.k.a. lightweight virtualization) to enable users to create virtual machines and compose these into Kubernetes clusters.

The experience may look something like this (dependent on whether args & config file are supported), to create a VM:

mikrolite vm create --name vm1 --root-image ghcr.io/baseimages/myimage:latest --user-data ud.txt --kernel-cmdline= ....
mikrolite vm create --config spec.json

Or if you want to create a Kubernetes cluster (which will automatically create the required vms):

mikrolite cluster create --name test1 --cp-count=3 --worker-count=3 --cp-root-image=ghcr.io/baseimages/myimage:latest --bootstrap rke2 ...
mikrolite cluster create --config spec.json

Goal for this Hackweek

The goal of the hackweek is to get to a working prototype that does the following:

  • create/delete vms
  • create/delete cluster using k3s or rke2

There is a new GitHub org to contain this project

Resources

Eventually, it would be good to support multiple microvm implementations (so we need suitable abstractions in code). For hack week, we will add support for either of these, this can be decided upfront or on the first day:

  • Firecracker - the cool kids choice, is used to power AWS Fargate and AWS Lambda.
  • Cloud Hypervisor - more feature rich, supports PCI passthrough, Windows, confidential compute etc

Working with raw filesystems is painful, so we could use containers and the containerd devmapper snapshotter for volumes. If we want to use config files then we can consider using CUE to validate the config files.

Ideally we would like to allow plugins for the microvm and kubernetes bootstrapper.

Looking for hackers with the skills:

virtualization kubernetes firecracker cloud-hypervisor vm

This project is part of:

Hack Week 23

Activity

  • 4 months ago: ademicev0 joined this project.
  • 4 months ago: rcase liked this project.
  • 4 months ago: rcase added keyword "virtualization" to this project.
  • 4 months ago: rcase added keyword "kubernetes" to this project.
  • 4 months ago: rcase added keyword "firecracker" to this project.
  • 4 months ago: rcase added keyword "cloud-hypervisor" to this project.
  • 4 months ago: rcase added keyword "vm" to this project.
  • 4 months ago: rcase started this project.
  • 4 months ago: rcase originated this project.

  • Comments

    • rcase
      4 months ago by rcase | Reply

      GitHub org and repo's created for this.

    • rcase
      3 months ago by rcase | Reply

      Initial working version has been created: https://github.com/mikrolite/mikrolite

    Similar Projects

    Plan 9 filesystem support in GRUB by ptesarik

    [comment]: # (Please use the project descriptio...


    A CLI for Harvester by mohamed.belgaied

    [comment]: # Harvester does not officially come...


    RKE2/K3S working on IBM Power by tkelly

    [comment]: # (Please use the project descriptio...


    Predefined app security policy template for NeuVector by feih

    Project Description

    Idea is to predefin...