You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Updated the version: 0.1.1 -> 0.2.0
Updated the CHANGELOG and README to include changes for this release.
Updated the examples script.
Signed-off-by: Adrian Catangiu <[email protected]>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+27-1Lines changed: 27 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,31 @@
1
1
# Changelog
2
2
3
+
## [0.2.0]
4
+
5
+
### Added
6
+
7
+
* Users can now interrogate Instance Information (currently just instance state) through the API.
8
+
9
+
### Changed
10
+
11
+
* Renamed `api/swagger/all.yaml` to `api/swagger/firecracker-v1.0.yaml` which specifies targeted API support for Firecracker v1.0.
12
+
* Renamed `api/swagger/firecracker-v0.1.yaml` to `api/swagger/firecracker-beta.yaml` which specifies the currently supported API.
13
+
* Users can now enforce that an emulated block device is read-only via the API. To specify whether a block device is read-only or read-write, an extra "permissions" field was added to the Drive definition in the API. The root filesystem is automatically mounted in the guest OS as ro/rw according to the specified "permissions". It's the responsibility of the user to mount any other read-only block device as such within the guest OS.
14
+
* Users can now stop the guest VM using the API. Actions of type 'InstanceHalt' are now supported via the API.
15
+
16
+
### Fixed
17
+
18
+
* Added support for getDeviceID() in virtIO-block. Without this, the guest Linux kernel would complain at boot time that the operation is unsupported.
19
+
* STDIN control is returned to the Firecracker process when guest VM is inactive. Raw mode STDIN is forwarded to the guest OS when guest VM is running.
20
+
21
+
### Removed
22
+
23
+
* Removed `api/swagger/actions.yaml`.
24
+
* Removed `api/swagger/devices.yaml`.
25
+
* Removed `api/swagger/firecracker-mvp.yaml`.
26
+
* Removed `api/swagger/limiters.yaml`.
27
+
28
+
3
29
## [0.1.1]
4
30
5
31
### Changed
@@ -22,4 +48,4 @@
22
48
* The capability of mapping an existing host tun-tap device as a virtIO/net device into the microVM.
23
49
* The capability of mapping an existing host file as a virtIO/block device into the microVM.
24
50
* The capability of creating a virtIO/vsock between the host and the microVM.
25
-
* Default demand fault paging & CPU oversubscription.
51
+
* Default demand fault paging & CPU oversubscription.
Copy file name to clipboardExpand all lines: README.md
+14-16Lines changed: 14 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,19 +6,18 @@ MicroVMs are created and managed by the Firecracker process, which implements a
6
6
7
7
# Overview
8
8
9
-
This Readme currently pertains to the v0.1 release.
10
-
11
-
Firecracker consists of single micro Virtual Machine Manager binary that will spawn a RESTful API endpoint when started. In v0.1, the API endpoint can be used to:
9
+
Firecracker consists of a single micro Virtual Machine Manager binary that will spawn a RESTful API endpoint when started. The API endpoint can be used to:
12
10
* Add one or more vCPUs to the microVM.
13
11
* Add memory to the microVM.
14
12
* Add one or more network interfaces to the microVM.
15
13
* Add one or more read/write disks (block devices) to the microVM.
16
14
* Add one or more vSockets to the microVM.
17
15
* Start the microVM using a given kernel image and root file system.
16
+
* Stop the microVM
18
17
19
-
## What's Included in v0.1?
18
+
## What's Included in the current version?
20
19
* One-process virtual machine manager (one Firecracker per microVM).
21
-
* RESTful API running on a unix socket. The API supported by v0.1 can be found at `api/swagger/firecracker-v0.1.yaml`.
20
+
* RESTful API running on a unix socket. The API supported by the current version can be found at `api/swagger/firecracker-beta.yaml`.
22
21
* Emulated keyboard (i8042) and serial console (UART). The microVM serial console input and output are connected to those of the Firecracker process (this allows direct console access to the guest OS).
23
22
* The capability of mapping an existing host tun-tap device as a virtIO/net device into the microVM.
24
23
* The capability of mapping an existing host file as a virtIO/block device into the microVM.
@@ -54,7 +53,7 @@ To run microVMs with Firecracker, you will need to have:
54
53
55
54
The python-based toy example below will start a Firecracker microVM with 2 vCPUs, 256 MiB or RAM, two network interfaces, two disks (rootfs and temp), and a vsocket.
56
55
57
-
Currently, only the core parts of the API (`/actions`, `/machine-config`, `/boot-source`, `/network-interfaces`, `/drives`, and `/vsocks`) are implemented. See section [What's Included in v0.1?](https://quip-amazon.com/Y3RFAqZFxBwE#BGO9CAEkkRE) for more details. For the planned v1.0 API description see `/api/swagger/all.yaml`.
56
+
Currently, only the core parts of the API (`/actions`, `/machine-config`, `/boot-source`, `/network-interfaces`, `/drives`, and `/vsocks`) are implemented. For the planned v1.0 API description see `/api/swagger/all.yaml`.
58
57
59
58
The toy example snapshot below uses a Python script to start a Firecracker instance. The Firecracker binary, as well as compatible kernel, root file system, and temp file system images are assumed to already exist. The TUN/TAP devices passed to the networking API are also assumed to already exist. Firecracker requires root privileges to open vsock interfaces on a host.
1. The Kernel and RootFS need to work together, and the Kernel needs to run with Firecracker's limited device model.
148
149
2. Vsocket usage currently requires root privileges, and both host (`CONFIG_VHOST_VSOCK`) and guest (`CONFIG_VIRTIO_VSOCKETS`) kernel support.
149
-
3. During bootup, an error will be displayed when mounting the disk: `[ERROR:devices/src/virtio/block.rs:209] failed executing disk request: Unsupported(8)`. This is because we don't currently create an ID in the virtio block device. It should be benign.
150
-
4. When creating more than one Firecracker v0.1 microVM, make sure you will have separate copies of the file system images. All drives are currently mounted in read-write mode.
151
-
5. Firecracker v0.1 uses default values for the following parameters:
150
+
3. It is the user's responsability to make sure that the same backing file is not added as a read-write block device to multiple Firecracker instances. A file can be safely added as a read-only block device to multiple Firecracker instances.
151
+
4. Firecracker uses default values for the following parameters:
152
152
1. Kernel Command Line: `console=ttyS0 noapic reboot=k panic=1 pci=off nomodules`. This can be changed with a `PUT` request to `/boot-source`.
153
153
2. Number of vCPUs: 1. This can be changed with a `PUT` request to `/machine-config`
154
-
3. Memory Size: 128 Mib. This can be changed with a `PUT` request to `/machine-config`
154
+
3. Memory Size: 128 MiB. This can be changed with a `PUT` request to `/machine-config`
155
155
4. Unix domain socket: `/tmp/firecracker.socket`. This can be changed only when Firecracker is started, by using the command line parameter `--api-sock`.
156
-
6. Firecracker v0.1 links the microVM serial console output to its stdout, and its stdin to the microVM serial console input. Therefore, you can interact with the microVM guest in the screen session.
157
-
7. Important: The unix domain socket is not deleted when Firecracker v0.1 is stopped. You have to remove it yourself after stopping the Firecracker process.
158
-
159
-
## Shutting Down
160
-
Firecracker v0.1 doesn't emulate a power management device, so poweroff doesn't work as expected (it leaves Firecracker hanging).
156
+
5. Firecracker links the microVM serial console output to its stdout, and its stdin to the microVM serial console input. Therefore, you can interact with the microVM guest in the screen session.
157
+
6. Important: The unix domain socket is not deleted when Firecracker is stopped. You have to remove it yourself after stopping the Firecracker process.
158
+
7. Firecracker doesn't yet emulate a power management device. This means that any shutdown/poweroff command issued by the guest OS only does partial shutdown then hangs. The linux 'reboot' command when run in the guest OS will actually cleanly shut down the guest without bringing it back up.
0 commit comments