Represents a memory balloon device that can dynamically adjust guest memory size.
This device allows for memory overcommitment by reclaiming unused memory from the guest
and making it available to the host or other guests. It’s particularly useful in
environments where memory resources need to be managed efficiently across multiple VMs.
Provides detailed memory statistics from the balloon device, helping monitor
memory usage patterns and performance of the guest VM. These statistics are
essential for making informed decisions about memory allocation and identifying
potential memory-related issues.
Used to update the statistics polling interval of a balloon device.
This allows for dynamic adjustment of how frequently memory statistics
are collected without needing to recreate the balloon device.
Defines the boot configuration for a microVM, specifying the kernel image,
optional initial ramdisk, and kernel boot parameters. This configuration
must be set before starting the microVM and cannot be modified after boot.
Provides fine-grained control over CPU features exposed to the guest VM.
This allows for platform-specific optimizations and security configurations
by enabling or disabling specific CPU capabilities on both x86_64 and aarch64
architectures.
Represents a block device in the guest VM. This can be either a regular
file or a block device on the host that is exposed to the guest. Supports
both read-only and read-write modes, and can be configured as the root
device for the guest filesystem.
Configures a virtual device that provides entropy/randomness to the guest VM.
This is crucial for applications in the guest that require cryptographic
operations or random number generation.
Provides metadata about a Firecracker instance, including its
identity, current state, and version information. This is useful
for monitoring and managing multiple Firecracker instances.
Defines the core configuration of a microVM, including CPU and memory
resources. These settings determine the computational capacity and
performance characteristics of the VM.
Configures the Microvm Metadata Service (MMDS), which provides a way
for the guest to securely access metadata and user data. This is similar
to AWS EC2’s instance metadata service.
Defines a network interface for the guest VM, allowing for network
connectivity. Supports configuration of MAC addresses and rate limiting
for both receive and transmit traffic.
Implements rate limiting for I/O operations, allowing control over
bandwidth and operations per second. This is used by various devices
like network interfaces and block devices to prevent resource exhaustion.
Implements the token bucket algorithm for rate limiting. This provides
a way to control both the steady-state rate and burst capacity for
operations or bandwidth.
Configures a vsock device, which provides a communication channel
between the host and guest. This is particularly useful for services
that need to communicate across the VM boundary without using traditional
networking.
Predefined CPU templates that configure sets of CPU features to match
specific AWS EC2 instance types. This ensures consistent CPU feature
sets across different Firecracker deployments and helps with workload
compatibility.