about summary refs log tree commit diff
path: root/users/fcuny/exp/containerd-to-vm/README.org
diff options
context:
space:
mode:
Diffstat (limited to 'users/fcuny/exp/containerd-to-vm/README.org')
-rw-r--r--users/fcuny/exp/containerd-to-vm/README.org31
1 files changed, 0 insertions, 31 deletions
diff --git a/users/fcuny/exp/containerd-to-vm/README.org b/users/fcuny/exp/containerd-to-vm/README.org
deleted file mode 100644
index b821eb7..0000000
--- a/users/fcuny/exp/containerd-to-vm/README.org
+++ /dev/null
@@ -1,31 +0,0 @@
-#+TITLE: containerd-to-vm
-#+AUTHOR: franck cuny <franck@fcuny.net>
-
-* What
-A recent [[https://fly.io/blog/docker-without-docker/][article]] from the team at [[https://fly.io][fly.io]] described how they build VMs for firecracker from the docker image provided by their customers. They outline the following steps:
-
-1. Pull the matching container from the registry.
-2. Create a loop device to store the container's filesystem on.
-3. Unpack the container (in this case, using Docker's Go libraries) into the mounted loop device.
-4. Create a second block device and inject our init, kernel, configuration, and other goop into.
-5. Track down any persistent volumes attached to the application, unlock them with LUKS, and collect their unlocked block devices.
-6. Create a TAP device, configure it for our network, and attach BPF code to it.
-7. Hand all this stuff off to Firecracker and tell it to boot .
-
-As I've been interested in playing with both containerd's API and firecracker, I thought it would be a good opportunity to try to implement this.
-* How
-You'll need a few things before you can run this tool.
-** Kernel
-You'll need a kernel to run this. The following instructions should do it (to get a 5.8 kernel):
-#+begin_src sh
-git clone https://github.com/torvalds/linux.git linux.git
-cd linux.git
-git checkout v5.8
-curl -o .config -s https://github.com/firecracker-microvm/firecracker/blob/main/resources/microvm-kernel-x86_64.config
-make menuconfig
-make vmlinux -j8
-#+end_src
-** CNI
-You need CNI plugins and configurations installed. The recommended configuration is stored under ~hack/cni~. It needs to be copied to ~/etc/cni/conf.d~.
-** Firecracker binaries
-Running ~make firecracker-binary~ will download a version of firecracker under the directory ~hack/firecracker~.