Skip to content
@liquidmetal-dev

Liquid Metal

Previously Weaveworks Liquid Metal

lm

Hi there 👋

Thanks for visiting, this organization contains all the projects related to Liquid Metal.

🎉 This project was originally developed by Weaveworks but is now owned & run by the community. If you are interested in helping out please reach out.

🙋 What is Liquid Metal?

Liquid Metal is a set of solutions to:

  • Declaratively provision Kubernetes clusters dynamically on lightweight virtual machines (i.e. microVMs) and bare-metal
  • Create lightweight clusters to maximize the available [edge] compute
    • microVMs are our friend
    • More clusters/nodes on the available bare-metal hosts
    • Minimizing resource footprint without sacrificing hard isolation
  • Support clusters where direct access to hardware acceleration is needed (i.e. 5G networks)
  • Using standard kubernetes and linux kernel and operating system capabilities

Hang on, what is this microvm thing you mention!?! A microvm is a very lightweight virtual machine that optimizes for speed and less resource consumption over supporting a wide array of devices/etc. We support Firecracker and experimentally Cloud Hypervisor. Read more about this here and here.

🔎 How do i get started?

🧨 BREAKING NEWS 🧨 There are now brand new and extremely shiny user docs published right here 😱 . They are still a work-in-progress, but soon they will be a one-stop-shop for everything you could ever want to know about creating Liquid Metal platform and bare-metal workload clusters:

  • Getting started tutorial for running Liquid Metal on your own machine
  • Advanced guides to running Liquid Metal in production
  • Architecture diagrams
  • Community information
  • And much more!

While we work on this, if you notice the offical site doesn't have everything you need right now, you can head on over to our getting started repo where we have documentation, demos and some automation goodies for you 🎉.

✨ What are the main projects?

  • flintlock - this is an agent that's deployed to a host machine (physical or virtual) which enables you to start/manage microvms via API calls. It does not know of Kubernetes and could therefore be used to start a microvm to accomplish any task you choose. We integrate heavily with containerd as a way to use container images as the volumes for the microvm....copying rawfs files around is a real pain and very slow.
  • Cluster API Provider Microvm (CAPMVM) - this provides the Kubernetes cluster creation/lifecycle management (along with the Cluster API more generally). Its responsible for creating microvms on various hosts via calls to Flintlock and bootstrapping Kubernetes on those microvms. So a microvm becomes a whole Kubernetes node.
  • Image Builder - this is where we build the container images that we use for root volumes and kernels for the microvm.

🔦 What else are we looking at?

  • mikrolite - an experimental CLI for creating microvms without flintlock.
  • fl - an experimental CLI for interacting with flintlock to manage the lifecycle of microvms.
  • EKS-Anywhere (EKS-A) (poc) - we have been working on adding CAPMVM as a provider to EKS-A.
  • Microvm Scheduler (in-development) - this will enable the dynamic placement of microvms on the available pool of hosts machines taking into account resource availability/requirements, labels etc. So, a bit like kube-scheduler but for microvms. We will be providing some integration points so that the scheduler can automatically determine the available baremetal hosts, and we'll add an integration for Tinkerbell (and probably Ironic & MaaS).

✏️ Want to know more?

Get in contact with us if you want to learn more about Liquid Metal. You can hit us up in any of these ways:

📚 Some extra reading

Pinned Loading

  1. flintlock flintlock Public

    Lock, Stock, and Two Smoking MicroVMs. Create and manage the lifecycle of MicroVMs backed by containerd.

    Go 484 30

  2. image-builder image-builder Public

    Image building for Weaveworks Liquid Metal projects.

    Dockerfile 18 10

  3. cluster-api-provider-microvm cluster-api-provider-microvm Public

    The Cluster API provider for creating microvm (i.e. Firecracker, Cloud Hypervisor) clusters

    Go 75 8

  4. fl fl Public

    An experimental CLI for interacting with Flintlock

    Go 3 3

Repositories

Showing 10 of 16 repositories
  • liquidmetal-dev/mikrolite-images’s past year of commit activity
    Dockerfile 0 0 2 0 Updated Jul 30, 2024
  • flintlock Public

    Lock, Stock, and Two Smoking MicroVMs. Create and manage the lifecycle of MicroVMs backed by containerd.

    liquidmetal-dev/flintlock’s past year of commit activity
    Go 484 MPL-2.0 30 53 (15 issues need help) 12 Updated Jul 29, 2024
  • fl Public

    An experimental CLI for interacting with Flintlock

    liquidmetal-dev/fl’s past year of commit activity
    Go 3 MPL-2.0 3 1 2 Updated Jul 25, 2024
  • site Public

    The published docs for liquidmetal

    liquidmetal-dev/site’s past year of commit activity
    JavaScript 0 4 7 1 Updated Jul 7, 2024
  • .github Public
    liquidmetal-dev/.github’s past year of commit activity
    0 2 1 0 Updated Jul 6, 2024
  • liquidmetal-dev/mikrolite’s past year of commit activity
    Go 3 Apache-2.0 1 12 0 Updated Feb 4, 2024
  • cluster-api-provider-microvm Public

    The Cluster API provider for creating microvm (i.e. Firecracker, Cloud Hypervisor) clusters

    liquidmetal-dev/cluster-api-provider-microvm’s past year of commit activity
  • microvm-operator Public

    Kubernetes Operator to create MicroVMs on Flintlock hosts

    liquidmetal-dev/microvm-operator’s past year of commit activity
    Go 3 MPL-2.0 3 8 5 Updated Sep 18, 2023
  • controller-pkg Public

    Common packages used by LM controllers and operators

    liquidmetal-dev/controller-pkg’s past year of commit activity
    Go 3 2 1 0 Updated May 31, 2023
  • liquid-metal-acceptance-tests Public

    LMATS - The Liquid Metal e2e test suite

    liquidmetal-dev/liquid-metal-acceptance-tests’s past year of commit activity
    Go 0 2 6 0 Updated Apr 17, 2023