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.
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.
🧨 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 🎉.
- 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.
- 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).
Get in contact with us if you want to learn more about Liquid Metal. You can hit us up in any of these ways:
- Weavework Community Slack
- Via our website
- By creating an issue / discussion in one of the projects