Skip to content

Firecracker v1.1.0

Compare
Choose a tag to compare
@alsrdn alsrdn released this 06 May 12:32
· 2434 commits to main since this release

Added

  • The API PATCH methods for machine-config can now be used to reset
    the cpu_template to "None". Until this change there was no way to
    reset the cpu_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 in PUT 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 contains backend_type and backend_path required
    fields. backend_type is an enum that can take either File or Uffd as
    value. Interpretation of backend_path field depends on the value of
    backend_type. If File, then the user must provide the path to file that
    contains the guest memory to be loaded. Otherwise, if backend_type is Uffd,
    then backend_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 in PUT on /snapshot/load request.

Fixed

  • Fixed inconsistency that allowed the start of a microVM from a JSON file
    without specifying the vcpu_count and mem_size_mib parameters for
    machine-config although they are mandatory when configuring via the API.
    Now these fields are mandatory when specifying machine-config in the JSON
    file and when using the PUT request on /machine-config.
  • Fixed inconsistency that allowed a user to specify the cpu_template
    parameter and set smt to True in machine-config when starting from a
    JSON file on aarch64 even though they are not permitted when using PUT or
    PATCH in the API. Now Firecracker will return an error on aarch64 if smt
    is set to True or if cpu_template is specified.
  • Fixed inconsistent behaviour of the PUT method for /machine-config that
    would reset the track_dirty_pages parameter to false if it was not
    specified in the JSON body of the request, but left the cpu_template
    parameter intact if it was not present in the request. Now a PUT 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 the PUT request.
  • Fixed incosistency in the swagger definition with the current state of the
    /vm/config endpoint.