https://github.com/liquidmetal-dev/flintlock
Lock, Stock, and Two Smoking MicroVMs. Create and manage the lifecycle of MicroVMs backed by containerd.
https://github.com/liquidmetal-dev/flintlock
cni firecracker kvm microvm oci
Last synced: 13 days ago
JSON representation
Lock, Stock, and Two Smoking MicroVMs. Create and manage the lifecycle of MicroVMs backed by containerd.
- Host: GitHub
- URL: https://github.com/liquidmetal-dev/flintlock
- Owner: liquidmetal-dev
- License: mpl-2.0
- Created: 2021-06-28T12:16:38.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-03-25T12:32:49.000Z (21 days ago)
- Last Synced: 2025-03-26T02:06:08.869Z (20 days ago)
- Topics: cni, firecracker, kvm, microvm, oci
- Language: Go
- Homepage: https://flintlock.liquidmetal.dev/
- Size: 4.97 MB
- Stars: 767
- Watchers: 9
- Forks: 38
- Open Issues: 62
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome - weaveworks-liquidmetal/flintlock - Lock, Stock, and Two Smoking MicroVMs. Create and manage the lifecycle of MicroVMs backed by containerd. (hacktoberfest)
- awesome-github-repos - liquidmetal-dev/flintlock - Lock, Stock, and Two Smoking MicroVMs. Create and manage the lifecycle of MicroVMs backed by containerd. (Go)
- awesome-repositories - liquidmetal-dev/flintlock - Lock, Stock, and Two Smoking MicroVMs. Create and manage the lifecycle of MicroVMs backed by containerd. (Go)
README
# Flintlock - Create and manage the lifecycle of MicroVMs, backed by containerd.
[](https://img.shields.io/github/license/liquidmetal-dev/flintlock)
[](https://codecov.io/gh/liquidmetal-dev/flintlock)
[](https://goreportcard.com/report/github.com/liquidmetal-dev/flintlock)## What is flintlock?
> :tada: **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.**
Flintlock is a service for creating and managing the lifecycle of microVMs on a host machine. We support the [Cloud Hypervisor](https://www.cloudhypervisor.org/) and [Firecracker](https://firecracker-microvm.github.io/) VMMs.
The original use case for flintlock was to create microVMs on a bare-metal host where the microVMs will be used as nodes in a virtualized Kubernetes cluster. It is an essential part of **Liquid Metal** and can be orchestrated by [Cluster API Provider Microvm](https://github.com/liquidmetal-dev/cluster-api-provider-microvm).
However, its useful for many other use cases where lightweight virtualization is required (e.g. isolated workloads, pipelines).
## Features
Using API requests (via gRPC or HTTP):
- Create and delete microVMs
- Manage the lifecycle of microVMs (i.e. start, stop, pause)
- Configure microVM metadata via cloud-init, ignition etc
- Use OCI images for microVM volumes, kernel and initrd
- Expose microVM metrics for collection by Prometheus
- (coming soon) Use CNI to configure the network for the microVMs## Documentation
See our [getting started with flintlock][quickstart] tutorial.
## Contributing
Contributions are welcome. Please read the [CONTRIBUTING.md][contrib] and our [Code Of Conduct][coc].
You can reach out to the maintainers and other contributors using the [#liquidmetal](https://cloud-native.slack.com/archives/C07B5R5BLBZ) channel on the CNCF slack.
Other interesting resources include:
- [The issue tracker][issues]
- [The list of milestones][milestones]
- [Architectural Decision Records (ADR)][adr]
- [Getting started with flintlock][quickstart]## Getting Help
If you have any questions about, feedback for or problems with flintlock:
- [File an issue](CONTRIBUTING.md#opening-issues).
Your feedback is always welcome!
## Compatibility
The table below shows you which versions of Firecracker are compatible with Flintlock:
| Flintlock | Firecracker | Cloud Hypervisor |
| ----------------- | -------------------------------- | ----------------- |
| v0.7.0 | Official v1.10+ | v41.0 |
| v0.6.0 | Official v1.0+ or v1.0.0-macvtap | v26.0 |
| v0.5.0 | Official v1.0+ or v1.0.0-macvtap | v26.0 |
| v0.4.0 | Official v1.0+ or v1.0.0-macvtap | **Not Supported** |
| v0.3.0 | Official v1.0+ or v1.0.0-macvtap | **Not Supported** |
| <= v0.2.0 | <= v0.25.2-macvtap | **Not Supported** |
| <= v0.1.0-alpha.6 | <= v0.25.2-macvtap | **Not Supported** |
| v0.1.0-alpha.7 | **Do not use** | **Not Supported** |
| v0.1.0-alpha.8 | <= v0.25.2-macvtap | **Not Supported** |> NOTE: we no longer support using the Weaveworks fork (with macvtap) of Firecracker. If you want macvtap then please use Cloud Hypervisor as the vm provider.
## License
[MPL-2.0 License][license]
## Acknowledgements
The biggest acknowledgement goes to @Weaveworks who where pioneers in the early Kubernetes world and produced some fantastic open source that lives on despite the demise of the company. A big thank you to the company and everyone that worked there. It was the engineers at Weaveworks that originally created Liquid Metal. RIP Weaveworks.
[quickstart]: https://www.liquidmetal.dev
[contrib]: ./CONTRIBUTING.md
[coc]: ./CODE_OF_CONDUCT.md
[issues]: https://github.com/liquidmetal-dev/flintlock/issues
[milestones]: https://github.com/liquidmetal-dev/flintlock/milestones
[adr]: ./docs/adr
[license]: ./LICENSE