This is the runtime component enabling containerd to control the Firecracker VMM. This component runs on the host, outside your microVM. In general, it strives for OCI runtime compliance within the bounds of Firecracker's feature set.
make
This will generate a containerd-shim-aws-firecracker
binary in the current
working directory.
Ensure that you have containerd installed and configured.
Copy containerd-shim-aws-firecracker
to /bin (or something else on the PATH)
following the naming guidelines for a containerd
runtime v2
shim:
* If the runtime is invoked as aws.firecracker
* Then the binary name needs to be containerd-shim-aws-firecracker
The runtime expects a JSON-formatted configuration file to be located either in
/etc/containerd/firecracker-runtime.json
or in a location defined by the
FIRECRACKER_CONTAINERD_RUNTIME_CONFIG_PATH
environment variable. The
configuration file has the following fields:
firecracker_binary_path
(optional) - A path to locate thefirecracker
executable. If left undefined, the runtime looks for an executable namedfirecracker
located in its working directory. A fully-qualified path to thefirecracker
binary is recommended, as the working directory typically changes every execution when run by containerd.kernel_image_path
(optional) - A path where the kernel image file is located. A fully-qualified path is recommended. If left undefined, the runtime looks for a file named/var/lib/firecracker-containerd/runtime/default-vmlinux.bin
.kernel_args
(optional) - Arguments for the kernel command line. If left undefined, the runtime specifies "console=ttyS0 noapic reboot=k panic=1 pci=off nomodules rw".root_drive
(optional) - A path where the root drive image file is located. A fully-qualified path is recommended. If left undefined, the runtime looks for a file named/var/lib/firecracker-containerd/runtime/default-rootfs.img
.cpu_template
(required) - The Firecracker CPU emulation template. Supported values are "C3" and "T2".additional_drives
(unused)log_fifo
(optional) - Named pipe where Firecracker logs should be delivered.log_level
(optional) - Log level for the Firecracker logsmetrics_fifo
(optional) - Named pipe where Firecracker metrics should be delivered.ht_enabled
(unused) - Reserved for future use.debug
(optional) - Enable debug-level logging from the runtime.
See our Getting Started Guide for details on how to use the aws.firecracker runtime.