firecracker-microvm / firecracker

Secure and fast microVMs for serverless computing.
http://firecracker-microvm.io
Apache License 2.0
25.09k stars 1.76k forks source link

[Docs] Running Firecracker quickstart now requires a local build + docker, and is less clear? #3531

Closed alexellis closed 1 year ago

alexellis commented 1 year ago

Describe the bug

[Docs] Running Firecracker quickstart now requires a local build + docker, and is less clear?

To Reproduce

With the version that was live in the docs until very recently, there was a very concise and easy way to run a Firecracker VM on x86 or arm64 - https://github.com/firecracker-microvm/firecracker/blob/9058e1c9c987f7d420332b8a6de426297391ccb5/docs/getting-started.md

These instructions have been replaced by less clear, more convoluted steps that require a local build of the Firecracker along with dev scripts.

The networking I'm sure is useful and should be kept, but what happened to the clear and concise instructions that were in this repository even as recently as 2nd Feb?

https://github.com/firecracker-microvm/firecracker/blob/a739d39ca02cde5069ad6ca42703eca7efdd91c2/docs/getting-started.md#running-firecracker

In the new instructions for the same heading - Running Firecracker

Docker is not required to launch a Firecracker VM, why is that a requirement now? Why does the repo need to be cloned when there are binary releases?

The barrier to entry has been made harder, but perhaps both sets of instructions have their place in the docs?

@JonathanWoollett-Light, what would your thoughts be on restoring the original instructions under the heading "Running Firecracker" and the new instructions put under a heading like "How to build a development version of Firecracker"?

JonathanWoollett-Light commented 1 year ago

The aim of https://github.com/firecracker-microvm/firecracker/pull/3484 was to:

Is your primary concern here with building from source instead of using a release binary?

The change here may be in:

# Clone the firecracker repository
git clone https://github.com/firecracker-microvm/firecracker

# Start docker
sudo systemctl start docker

# Build firecracker
#
# It is possible to build for gnu, by passing the arguments '-l gnu'.
#
# This will produce the firecracker and jailer binaries under
# `./firecracker/build/cargo_target/${toolchain}/debug`.
#
sudo ./firecracker/tools/devtool build

adding instead an option:

wget <binary url>
roypat commented 1 year ago

Hi @alexellis, we've readded the instructions for using a pre-compiled firecracker releases in the getting started guide. Please feel free to reach out again if there are still issues. Thanks!

alexellis commented 1 year ago

Thank you @roypat, that's appreciated.

There should be no reason to install Docker, or build any code in Rust or Go for a Firecracker quickstart in my mind, the original had the perfect balance. Get the binaries, get a rootfs, get a Kernel, and away you go.

There's an original copy of the instructions in one of our blog posts here: https://actuated.dev/blog/kvm-in-github-actions by the heading "The run-vm.sh script"

Where I would expect to see instructions for building from source etc, would be in the "developer guide" or "contributing guide".