Added
- The API
PATCH
methods formachine-config
can now be used to reset
thecpu_template
to"None"
. Until this change there was no way to
reset thecpu_template
once it was set. - Added a
rebase-snap
tool for rebasing a diff snapshot over a base
snapshot. - Mmds version is persisted across snapshot-restore. Snapshot compatibility is
preserved bidirectionally, to and from a Firecracker version that does not
support persisting the Mmds version. In such cases, the default V1 option is
used. - Added
--mmds-size-limit
for limiting the mmds data store size instead of
piggy-backing on--http-api-max-payload-size
. If left unconfigured it
defaults to the value of--http-api-max-payload-size
, to provide backwards
compatibility. - Added optional
mem_backend
body field inPUT
requests on/snapshot/load
.
This new parameter is an object that defines the configuration of the backend
responsible for handling memory loading during snapshot restore. The
mem_backend
parameter containsbackend_type
andbackend_path
required
fields.backend_type
is an enum that can take eitherFile
orUffd
as
value. Interpretation ofbackend_path
field depends on the value of
backend_type
. IfFile
, then the user must provide the path to file that
contains the guest memory to be loaded. Otherwise, ifbackend_type
isUffd
,
thenbackend_path
is the path to a unix domain socket where a custom page
fault handler process is listening and expecting a UFFD to be sent by
Firecracker. The UFFD is used to handle the guest memory page faults in the
separate process. - Added logging for the snapshot/restore and async block device IO engine
features to indicate they are in development preview.
Changed
- The API
PATCH
method for/machine-config
can be now used to change
track_dirty_pages
on aarch64. - MmdsV2 is now Generally Available.
- MmdsV1 is now deprecated and will be removed in Firecracker v2.0.0.
Use MmdsV2 instead. - Deprecated
mem_file_path
body field inPUT
on/snapshot/load
request.
Fixed
- Fixed inconsistency that allowed the start of a microVM from a JSON file
without specifying thevcpu_count
andmem_size_mib
parameters for
machine-config
although they are mandatory when configuring via the API.
Now these fields are mandatory when specifyingmachine-config
in the JSON
file and when using thePUT
request on/machine-config
. - Fixed inconsistency that allowed a user to specify the
cpu_template
parameter and setsmt
toTrue
inmachine-config
when starting from a
JSON file on aarch64 even though they are not permitted when usingPUT
or
PATCH
in the API. Now Firecracker will return an error on aarch64 ifsmt
is set toTrue
or ifcpu_template
is specified. - Fixed inconsistent behaviour of the
PUT
method for/machine-config
that
would reset thetrack_dirty_pages
parameter tofalse
if it was not
specified in the JSON body of the request, but left thecpu_template
parameter intact if it was not present in the request. Now aPUT
request
for/machine-config
will reset all optional parameters (smt
,
cpu_template
,track_dirty_pages
) to their default values if they are
not specified in thePUT
request. - Fixed incosistency in the swagger definition with the current state of the
/vm/config
endpoint.