firecracker

Secure and fast microVMs for serverless computing.

APACHE-2.0 License

Stars
23.9K
Committers
250

Bot releases are visible (Hide)

firecracker - Firecracker v1.7.0 Latest Release

Published by roypat 7 months ago

Added

  • #4346: Added support to emit aggregate (minimum/maximum/sum) latency for VcpuExit::MmioRead, VcpuExit::MmioWrite, VcpuExit::IoIn and VcpuExit::IoOut. The average for these VM exits is not emitted since it can be deduced from the available emitted metrics.
  • #4360: Added dev-preview support for backing a VM's guest memory by 2M hugetlbfs pages. Please see the documentation for more information
  • #4490: Added block and net device metrics for file/tap access latencies and queue backlog lengths, which can be used to analyse saturation of the Firecracker VMM thread and underlying layers. Queue backlog length metrics are flushed periodically. They can be used to esimtate an average queue length by request by dividing its value by the number of requests served.

Changed

  • #4230: Changed microVM snapshot format version strategy. Firecracker snapshot format now has a version that is independent of Firecracker version. The current version of the snapshot format is v1.0.0. From now on, the Firecracker binary will define the snapshot format version it supports and it will only be able to load snapshots with format that is backwards compatible with that version. Users can pass the --snapshot-version flag to the Firecracker binary to see its supported snapshot version format. This change renders all previous Firecracker snapshots (up to Firecracker version v1.6.0) incompatible with the current Firecracker version.
  • #4449: Added information about page size to the payload Firecracker sends to the UFFD handler. Each memory region object now contains a page_size_kib field. See also the hugepages documentation.
  • #4501: Only use memfd to back guest memory if a vhost-user-blk device is configured, otherwise use anonymous private memory. This is because serving page faults of shared memory used by memfd is slower and may impact workloads.

Fixed

  • #4409: Fixed a bug in the cpu-template-helper that made it panic during conversion of cpu configuration with SVE registers to the cpu template on aarch64 platform. Now cpu-template-helper will print warnings if it encounters SVE registers during the conversion process. This is because cpu templates are limited to only modify registers less than 128 bits.
  • #4413: Fixed a bug in the Firecracker that prevented it to restore snapshots of VMs that had SVE enabled.
  • #4414: Made PATCH requests to the /machine-config endpoint transactional, meaning Firecracker's configuration will be unchanged if the request returns an error. This fixes a bug where a microVM with incompatible balloon and guest memory size could be booted, due to the check for this condition happening after Firecracker's configuration was updated.
  • #4259: Added a double fork mechanism in the Jailer to avoid setsid() failures occurred while running Jailer as the process group leader. However, this changed the behaviour of Jailer and now the Firecracker process will always have a different PID than the Jailer process.
  • #4436: Added a "Known Limitations" section in the Jailer docs to highlight the above change in behaviour introduced in PR#4259.
  • #4442: As a solution to the change in behaviour introduced in PR#4259, provided a mechanism to reliably fetch Firecracker PID. With this change, Firecracker process's PID will always be available in the Jailer's root directory regardless of whether new_pid_ns was set.
  • #4468: Fixed a bug where a client would hang or timeout when querying for an MMDS path whose content is empty, because the 'Content-Length' header field was missing in a response.
firecracker - Firecracker v1.6.0

Published by pb8o 10 months ago

Added

  • #4145: Added support for per net device metrics. In addition to aggregate metrics net, each individual net device will emit metrics under the label "net_{iface_id}". E.g. the associated metrics for the endpoint "/network-interfaces/eth0" will be available under "net_eth0" in the metrics json object.
  • #4202: Added support for per block device metrics. In addition to aggregate metrics block, each individual block device will emit metrics under the label "block_{drive_id}". E.g. the associated metrics for the endpoint "/drives/{drive_id}" will be available under "block_drive_id" in the metrics json object.
  • #4205: Added a new vm-state subcommand to info-vmstate command in the snapshot-editor tool to print MicrovmState of vmstate snapshot file in a readable format. Also made the vcpu-states subcommand available on x86_64.
  • #4063: Added source-level instrumentation based tracing. See tracing for more details.
  • #4138, #4170, #4223, #4247, #4226: Added developer preview only (NOT for production use) support for vhost-user block devices. Firecracker implements a vhost-user frontend. Users are free to choose from existing open source backend solutions or their own implementation. Known limitation: snapshotting is not currently supported for microVMs containing vhost-user block devices. See the related doc page for details. The device emits metrics under the label "vhost_user_{device}_{drive_id}".

Changed

  • #4309: The jailer’s option --parent-cgroup will move the process to that cgroup if no cgroup options are provided.
  • Simplified and clarified the removal policy of deprecated API elements to follow semantic versioning 2.0.0. For more information, please refer to this GitHub discussion.
  • #4180: Refactored error propagation to avoid logging and printing an error on exits with a zero exit code. Now, on successful exit “Firecracker exited successfully” is logged.
  • #4194: Removed support for creating Firecracker snapshots targeting older versions of Firecracker. With this change, running ‘firecracker –version’ will not print the supported snapshot versions.
  • #4301: Allow merging of diff snapshots into base snapshots by directly writing the diff snapshot on top of the base snapshot’s memory file. This can be done by setting the mem_file_path to the path of the pre-existing full snapshot.

Deprecated

  • #4209: rebase-snap tool is now deprecated. Users should use snapshot-editor for rebasing diff snapshots.

Fixed

  • #4171: Fixed a bug that ignored the --show-log-origin option, preventing it from printing the source code file of the log messages.
  • #4178: Fixed a bug reporting a non-zero exit code on successful shutdown when starting Firecracker with --no-api.
  • #4261: Fixed a bug where Firecracker would log “RunWithApiError error: MicroVMStopped without an error: GenericError” when exiting after encountering an emulation error. It now correctly prints “RunWithApiError error: MicroVMStopped with an error: GenericError”.
  • #4242: Fixed a bug introduced in #4047 that limited the --level option of logger to Pascal-cased values (e.g. accepting “Info”, but not “info”). It now ignores case again.
  • #4286: Fixed a bug in the asynchronous virtio-block engine that rendered the device non-functional after a PATCH request was issued to Firecracker for updating the path to the host-side backing file of the device.
  • #4301: Fixed a bug where if Firecracker was instructed to take a snapshot of a microvm which itself was restored from a snapshot, specifying mem_file_path to be the path of the memory file from which the microvm was restored would result in both the microvm and the snapshot being corrupted. It now instead performs a “write-back” of all memory that was updated since the snapshot was originally loaded.
firecracker - Firecracker v1.5.1

Published by pb8o 11 months ago

Added

  • #4287: Document a caveat to the jailer docs when using the --parent-cgroup option, which results in it being ignored by the jailer. Refer to the jailer documentation for a workaround.

Changed

  • #4191: Refactored error propagation to avoid logging and printing an error on exits with a zero exit code. Now, on successful exit "Firecracker exited successfully" is logged.

Fixed

  • #4277: Fixed a bug that ignored the --show-log-origin option, preventing it from printing the source code file of the log messages.
  • #4179: Fixed a bug reporting a non-zero exit code on successful shutdown when starting Firecracker with --no-api.
  • #4271: Fixed a bug where Firecracker would log "RunWithApiError error: MicroVMStopped without an error: GenericError" when exiting after encountering an emulation
    error. It now correctly prints "RunWithApiError error: MicroVMStopped with an error: GenericError".
  • #4270: Fixed a bug introduced in #4047 that limited the --level option of logger to Pascal-cased values (e.g. accepting "Info", but not "info"). It now ignores case again.
  • #4295: Fixed a bug in the asynchronous virtio-block engine that rendered the device non-functional after a PATCH request was issued to Firecracker for updating
    the path to the host-side backing file of the device.
firecracker - Firecracker v1.5.0

Published by roypat about 1 year ago

Added

  • #3837: Added official support for Linux 6.1. See prod-host-setup for some security and performance considerations.
  • #4045 and #4075: Added snapshot-editor tool for modifications of snapshot files. It allows for rebasing of memory snapshot files, printing and removing aarch64 registers from the vmstate and obtaining snapshot version.
  • #3967: Added new fields to the custom CPU templates. (aarch64 only) vcpu_features field allows modifications of vCPU features enabled during vCPU initialization. kvm_capabilities field allows modifications of KVM capability checks that Firecracker performs during boot. If any of these fields are in use, minimal target snapshot version is restricted to 1.5.

Changed

  • Updated deserialization of bitmap for custom CPU templates to allow usage of '_' as a separator.
  • Changed the strip feature of cpu-template-helper tool to operate bitwise.
  • Better logs during validation of CPU ID in snapshot restoration path. Also Firecracker now does not fail if it can't get CPU ID from the host or can't find CPU ID in the snapshot.
  • Changed the serial device to only try to initialize itself if stdin is a terminal or a FIFO pipe. This fixes logged warnings about the serial device failing to initialize if the process is daemonized (in which case stdin is /dev/null instead of a terminal).
  • Changed to show a warning message when launching a microVM with C3 template on a processor prior to Intel Cascade Lake, because the guest kernel does not apply the mitigation against MMIO stale data vulnerability when it is running on a processor that does not enumerate FBSDP_NO, PSDP_NO and SBDR_SSDP_NO on IA32_ARCH_CAPABILITIES MSR.
  • Made Firecracker resize its file descriptor table on process start. It now preallocates the in-kernel fdtable to hold RLIMIT_NOFILE many fds (or 2048 if no limit is set). This avoids the kernel reallocating the fdtable during Firecracker operations, resulting in a 30ms to 70ms reduction of snapshot restore times for medium to large microVMs with many devices attached.
  • Changed the dump feature of cpu-template-helper tool not to enumerate program counter (PC) on ARM because it is determined by the given kernel image and it is useless in the custom CPU template context.
  • The ability to create snapshots for an older version of Firecracker is now deprecated. As a result, the version body field in PUT on /snapshot/create request in deprecated.
  • Added support for the /dev/userfaultfd device available on linux kernels >= 6.1. This is the default for creating UFFD handlers on these kernel versions. If it is unavailable, Firecracker falls back to the userfaultfd syscall.
  • Deprecated cpu_template field in PUT and PATCH requests on /machine-config API, which is used to set a static CPU template. Custom CPU templates added in v1.4.0 are available as an improved iteration of the static CPU templates. For more information about the transition from static CPU templates to custom CPU templates, please refer to this GitHub discussion.
  • Changed default log level from Warn to Info. This results in more logs being output by default.

Fixed

  • Fixed a change in behavior of normalize host brand string that breaks Firecracker on external instances.
  • Fixed the T2A CPU template not to unset the MMX bit (CPUID.80000001h:EDX[23]) and the FXSR bit (CPUID.80000001h:EDX[24]).
  • Fixed the T2A CPU template to set the RstrFpErrPtrs bit (CPUID.80000008h:EBX[2]).
  • Fixed a bug where Firecracker would crash during boot if a guest set up a virtio queue that partially overlapped with the MMIO gap. Now Firecracker instead correctly refuses to activate the corresponding virtio device.
  • Fixed the T2CL CPU template to pass through security mitigation bits that are listed by KVM as bits able to be passed through. By making the most use of the available hardware security mitigations on a processor that a guest is running on, the guest might be able to benefit from performance improvements.
  • Fixed the T2S CPU template to set the GDS_NO bit of the IA32_ARCH_CAPABILITIES MSR to 1 in accordance with an Intel microcode update. To use the template securely, users should apply the latest microcode update on the host.
  • Fixed the spelling of the nomodule param passed in the default kernel command line parameters. This is a breaking change for setups that use the default kernel command line which also depend on being able to load kernel modules at runtime. This may also break setups which use the default kernel command line and which use an init binary that inadvertently depends on the misspelled param ("nomodules") being present at the command line, since this param will no longer be passed.
firecracker - Firecracker v1.4.1

Published by sudanl0 about 1 year ago

Fixed

  • Fixed a change in behavior of normalize host brand string that breaks
    Firecracker on external instances.
  • Fixed the T2A CPU template not to unset the MMX bit (CPUID.80000001h:EDX[23])
    and the FXSR bit (CPUID.80000001h:EDX[24]).
  • Fixed the T2A CPU template to set the RstrFpErrPtrs bit
    (CPUID.80000008h:EBX[2]).
firecracker - Firecracker v1.4.0

Published by ShadowCurse over 1 year ago

Added

  • Added support for custom CPU templates allowing users to adjust vCPU features
    exposed to the guest via CPUID, MSRs and ARM registers.
  • Introduced V1N1 static CPU template for ARM to represent Neoverse V1 CPU
    as Neoverse N1.
  • Added support for the virtio-rng entropy device. The device is optional. A
    single device can be enabled per VM using the /entropy endpoint.
  • Added a cpu-template-helper tool for assisting with creating and managing
    custom CPU templates.

Changed

  • Set FDP_EXCPTN_ONLY bit (CPUID.7h.0:EBX[6]) and ZERO_FCS_FDS bit
    (CPUID.7h.0:EBX[13]) in Intel's CPUID normalization process.

Fixed

  • Fixed feature flags in T2S CPU template on Intel Ice Lake.
  • Fixed CPUID leaf 0xb to be exposed to guests running on AMD host.
  • Fixed a performance regression in the jailer logic for closing open file
    descriptors. Related to:
    #3542.
  • A race condition that has been identified between the API thread and the VMM
    thread due to a misconfiguration of the api_event_fd.
  • Fixed CPUID leaf 0x1 to disable perfmon and debug feature on x86 host.
  • Fixed passing through cache information from host in CPUID leaf 0x80000006.
  • Fixed the T2S CPU template to set the RRSBA bit of the IA32_ARCH_CAPABILITIES
    MSR to 1 in accordance with an Intel microcode update.
  • Fixed the T2CL CPU template to pass through the RSBA and RRSBA bits of the
    IA32_ARCH_CAPABILITIES MSR from the host in accordance with an Intel microcode
    update.
  • Fixed passing through cache information from host in CPUID leaf 0x80000005.
  • Fixed the T2A CPU template to disable SVM (nested virtualization).
  • Fixed the T2A CPU template to set EferLmsleUnsupported bit
    (CPUID.80000008h:EBX[20]), which indicates that EFER[LMSLE] is not supported.
firecracker - Firecracker v1.3.3

Published by kalyazin over 1 year ago

Fixed

  • Fixed passing through cache information from host in CPUID leaf 0x80000006.
firecracker - Firecracker v1.2.1

Published by andreitraistaru over 1 year ago

Changed

  • Upgraded Rust toolchain from 1.64.0 to 1.66.1.

Fixed

  • A race condition that has been identified between the API thread and the VMM
    thread due to a misconfiguration of the api_event_fd.
firecracker - Firecracker v1.3.2

Published by andreitraistaru over 1 year ago

Fixed

  • A race condition that has been identified between the API thread and the VMM
    thread due to a misconfiguration of the api_event_fd.
firecracker - Firecracker v1.3.1

Published by kalyazin over 1 year ago

Fixed

  • Fixed taking a snapshot with target_version = 1.3.0 failing with the
    message "Cannot translate microVM version to snapshot data version".
firecracker - Firecracker v1.3.0

Published by zulinx86 over 1 year ago

Update 03-03: This release contains a bug when trying to snapshot with target_version=1.3.0, which results in an error and no snapshot taken. To mitigate this bug, leave target_version empty or use target_version=1.2.0 We are currently working on a fix.


Added

  • Introduced T2CL (Intel) and T2A (AMD) CPU templates to provide
    instruction set feature parity between Intel and AMD CPUs when using
    these templates.
  • Added Graviton3 support (c7g instance type).

Changed

  • Improved error message when invalid network backend provided.
  • Improved TCP throughput by between 5% and 15% (depending on CPU) by using
    scatter-gather I/O in the net device's TX path.
  • Upgraded Rust toolchain from 1.64.0 to 1.66.0.
  • Made seccompiler output bit-reproducible.

Fixed

  • Fixed feature flags in T2 CPU template on Intel Ice Lake.
firecracker - Firecracker v1.1.4

Published by pb8o almost 2 years ago

Fixed

  • Fixed a bug on ARM64 hosts where the upper 64bits of the V0-V31 FL/SIMD
    registers were not saved correctly when taking a snapshot, potentially leading
    to data loss. This change invalidates all ARM64 snapshots taken with versions
    of Firecracker <= 1.1.3.
firecracker - Firecracker v1.2.0

Published by pb8o almost 2 years ago

Added

  • Added a new CPU template called T2S. This exposes the same CPUID as T2 to
    the Guest and also overwrites the ARCH_CAPABILITIES MSR to expose a reduced
    set of capabilities. With regards to hardware vulnerabilities and mitigations,
    the Guest vCPU will apear to look like a Skylake CPU, making it safe to
    snapshot uVMs running on a newer host CPU (Cascade Lake) and restore on a host
    that has a Skylake CPU.
  • Added a new CLI option --metrics-path PATH. It accepts a file parameter
    where metrics will be sent to.
  • Added baselines for m6i.metal and m6a.metal for all long running performance
    tests.
  • Releases now include debuginfo files.

Changed

  • Changed the jailer option --exec-file to fail if the filename does not
    contain the string firecracker to prevent from running non-firecracker
    binaries.
  • Upgraded Rust toolchain from 1.52.1 to 1.64.0.
  • Switched to specifying our dependencies using caret requirements instead
    of comparison requirements.
  • Updated all dependencies to their respective newest versions.

Fixed

  • Made the T2 template more robust by explicitly disabling additional
    CPUID flags that should be off but were missed initially or that were
    not available in the spec when the template was created.
  • Now MAC address is correctly displayed when queried with GET /vm/config
    if left unspecified in both pre and post snapshot states.
  • Fixed a self-DoS scenario in the virtio-queue code by reporting and
    terminating execution when the number of available descriptors reported
    by the driver is higher than the queue size.
  • Fixed the bad handling of kernel cmdline parameters when init arguments were
    provided in the boot_args field of the JSON body of the PUT /boot-source
    request.
  • Fixed a bug on ARM64 hosts where the upper 64bits of the V0-V31 FL/SIMD
    registers were not saved correctly when taking a snapshot, potentially
    leading to data loss. This change invalidates all ARM64 snapshots taken
    with versions of Firecracker <= 1.1.3.
  • Improved stability and security when saving CPU MSRs in snapshots.
firecracker - Firecracker v1.0.2

Published by pb8o almost 2 years ago

Fixed

  • Fixed the bad handling of kernel cmdline parameters when init arguments were
    provided in the boot_args field of the JSON body of the PUT /boot-source
    request.
firecracker - Firecracker v1.1.3

Published by pb8o almost 2 years ago

Changed

  • Upgraded Rust version to 1.64. This enables us to keep supporting v1.1. [not reflected in CHANGELOG.md]

Fixed

  • Fixed the bad handling of kernel cmdline parameters when init arguments were
    provided in the boot_args field of the JSON body of the PUT /boot-source
    request.
firecracker - Firecracker v1.1.2

Published by dianpopa about 2 years ago

Fixed

  • Fixed a self-DoS scenario in the virtio-queue code by reporting and
    terminating execution when the number of available descriptors reported
    by the driver is higher than the queue size.
firecracker - Firecracker v1.0.1

Published by dianpopa about 2 years ago

Fixed

  • Fixed a self-DoS scenario in the virtio-queue code by reporting and
    terminating execution when the number of available descriptors reported
    by the driver is higher than the queue size.
firecracker - Firecracker v1.1.1

Published by alsrdn about 2 years ago

Added

  • Add a new CPU template called T2S. This exposes the same CPUID as T2
    to the Guest and also overwrites the ARCH_CAPABILITIES MSR to expose a
    reduced set of capabilities. With regards to hardware vulnerabilities
    and mitigations, the Guest vCPU will apear to look like a Skylake CPU,
    making it safe to snapshot uVMs running on a newer host CPU (Cascade Lake)
    and restore on a host that has a Skylake CPU.

Fixed

  • Make the T2 template more robust by explicitly disabling additional
    CPUID flags that should be off but were missed initially or that were
    not available in the spec when the template was created.
firecracker - Firecracker v1.1.0

Published by alsrdn over 2 years ago

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.
firecracker - Firecracker v1.0.0

Published by luminitavoicu over 2 years ago

Added

  • Added jailer option --parent-cgroup <relative_path> to allow the placement
    of microvm cgroups in custom cgroup nested hierarchies. The default value is
    <exec-file> which is backwards compatible to the behavior before this
    change.
  • Added jailer option --cgroup-version <1|2> to support running the jailer
    on systems that have cgroup-v2. Default value is 1 which means that if
    --cgroup-version is not specified, the jailer will try to create cgroups
    on cgroup-v1 hierarchies only.
  • Added --http-api-max-payload-size parameter to configure the maximum payload
    size for PUT and PATCH requests.
  • Limit MMDS data store size to --http-api-max-payload-size.
  • Cleanup all environment variables in Jailer.
  • Added metrics for accesses to deprecated HTTP and command line API endpoints.
  • Added permanent HTTP endpoint for GET on /version for getting the
    Firecracker version.
  • Added --metadata parameter to enable MMDS content to be supplied from a file
    allowing the MMDS to be used when using --no-api to disable the API server.
  • Checksum file for the release assets.
  • Added support for custom headers to MMDS requests. Accepted headers are:
    X-metadata-token, which accepts a string value that provides a session
    token for MMDS requests; and X-metadata-token-ttl-seconds, which
    specifies the lifetime of the session token in seconds.
  • Support and validation for host and guest kernel 5.10.
  • A kernel support policy.
  • Added io_engine to the pre-boot block device configuration.
    Possible values: Sync (the default option) or Async (only available for
    kernels newer than 5.10.51). The Async variant introduces a block device
    engine that uses io_uring for executing requests asynchronously, which is in
    developer preview (NOT for production use).
    See docs/api_requests/block-io-engine.md.
  • Added block.io_engine_throttled_events metric for measuring the number of
    virtio events throttled because of the IO engine.
  • New optional version field to PUT requests towards /mmds/config to
    configure MMDS version. Accepted values are V1 and V2 and default is
    V1. MMDS V2 is developer preview only (NOT for production use) and
    it does not currently work after snapshot load.
  • Mandatory network_interfaces field to PUT requests towards
    /mmds/config which contains a list of network interface IDs capable of
    forwarding packets to MMDS.

Changed

  • Removed the --node jailer parameter.
  • Deprecated vsock_id body field in PUTs on /vsock.
  • Removed the deprecated the --seccomp-level parameter.
  • GET requests to MMDS require a session token to be provided through
    X-metadata-token header when using V2.
  • Allow PUT requests to MMDS in order to generate a session token
    to be used for future GET requests when version 2 is used.
  • Remove allow_mmds_requests field from the request body that attaches network
    interfaces. Specifying interfaces that allow forwarding requests to MMDS is done
    by adding the network interface's ID to the network_interfaces field of PUT
    /mmds/config request's body.
  • Renamed /machine-config ht_enabled to smt.
  • smt field is now optional on PUT /machine-config, defaulting to
    false.
  • Configuring smt: true on aarch64 via the API is forbidden.

Fixed

  • Fixed incorrect propagation of init parameters in kernel commandline.
    Related to:
    #2709.
  • Adapt T2 and C3 CPU templates for kernel 5.10. Firecracker was not previously
    masking some CPU features of the host or emulated by KVM, introduced in more
    recent kernels: umip, vmx, avx512_vnni.
  • Fix jailer's cgroup implementation to accept properties that contain multiple
    dots.