Skip to content

Commit 071b8d3

Browse files
committed
runtime: default CPU count is 1
Related: #59 Signed-off-by: Samuel Karp <[email protected]>
1 parent 085f21d commit 071b8d3

File tree

5 files changed

+12
-5
lines changed

5 files changed

+12
-5
lines changed

docs/getting-started.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,8 @@ configuration file has the following fields:
222222
* `root_drive` (optional) - A path where the root drive image file is located. A
223223
fully-qualified path is recommended. If left undefined, the runtime looks for
224224
a file named `/var/lib/firecracker-containerd/runtime/default-rootfs.img`.
225-
* `cpu_count` (required) - The number of vCPUs to make available to a microVM.
225+
* `cpu_count` (optional) - The number of vCPUs to make available to a microVM.
226+
If left undefined, the default is 1.
226227
* `cpu_template` (required) - The Firecracker CPU emulation template. Supported
227228
values are "C3" and "T2".
228229
* `additional_drives` (unused)

docs/quickstart.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,6 @@ sudo mkdir -p /etc/containerd
139139
sudo tee -a /etc/containerd/firecracker-runtime.json <<EOF
140140
{
141141
"firecracker_binary_path": "/usr/local/bin/firecracker",
142-
"cpu_count": 1,
143142
"cpu_template": "T2",
144143
"log_fifo": "/tmp/fc-logs.fifo",
145144
"log_level": "Debug",

runtime/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ configuration file has the following fields:
4848
* `root_drive` (optional) - A path where the root drive image file is located. A
4949
fully-qualified path is recommended. If left undefined, the runtime looks for
5050
a file named `/var/lib/firecracker-containerd/runtime/default-rootfs.img`.
51-
* `cpu_count` (required) - The number of vCPUs to make available to a microVM.
51+
* `cpu_count` (optional) - The number of vCPUs to make available to a microVM.
52+
If left undefined, the default is 1.
5253
* `cpu_template` (required) - The Firecracker CPU emulation template. Supported
5354
values are "C3" and "T2".
5455
* `additional_drives` (unused)

runtime/config.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ const (
2929
defaultFilesPath = "/var/lib/firecracker-containerd/runtime/"
3030
defaultKernelPath = defaultFilesPath + "default-vmlinux.bin"
3131
defaultRootfsPath = defaultFilesPath + "default-rootfs.img"
32+
defaultCPUCount = 1
3233
)
3334

3435
// Config represents runtime configuration parameters
@@ -66,6 +67,7 @@ func LoadConfig(path string) (*Config, error) {
6667
KernelArgs: defaultKernelArgs,
6768
KernelImagePath: defaultKernelPath,
6869
RootDrive: defaultRootfsPath,
70+
CPUCount: defaultCPUCount,
6971
}
7072
if err := json.Unmarshal(data, cfg); err != nil {
7173
return nil, errors.Wrapf(err, "failed to unmarshal config from %q", path)

runtime/config_test.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,21 @@ func TestLoadConfigDefaults(t *testing.T) {
3232
assert.Equal(t, defaultKernelArgs, cfg.KernelArgs, "expected default kernel args")
3333
assert.Equal(t, defaultKernelPath, cfg.KernelImagePath, "expected default kernel path")
3434
assert.Equal(t, defaultRootfsPath, cfg.RootDrive, "expected default rootfs path")
35+
assert.Equal(t, defaultCPUCount, cfg.CPUCount, "expected default CPU count")
3536
}
3637

3738
func TestLoadConfigOverrides(t *testing.T) {
3839
overrideKernelArgs := "OVERRIDE KERNEL ARGS"
3940
overrideKernelPath := "OVERRIDE KERNEL PATH"
4041
overrideRootfsPath := "OVERRIDE ROOTFS PATH"
42+
overrideCPUCount := 42
4143
configContent := fmt.Sprintf(
4244
`{
4345
"kernel_args":"%s",
4446
"kernel_image_path":"%s",
45-
"root_drive":"%s"
46-
}`, overrideKernelArgs, overrideKernelPath, overrideRootfsPath)
47+
"root_drive":"%s",
48+
"cpu_count": %d
49+
}`, overrideKernelArgs, overrideKernelPath, overrideRootfsPath, overrideCPUCount)
4750
configFile, cleanup := createTempConfig(t, configContent)
4851
defer cleanup()
4952
cfg, err := LoadConfig(configFile)
@@ -52,6 +55,7 @@ func TestLoadConfigOverrides(t *testing.T) {
5255
assert.Equal(t, overrideKernelArgs, cfg.KernelArgs, "expected overridden kernel args")
5356
assert.Equal(t, overrideKernelPath, cfg.KernelImagePath, "expected overridden kernel path")
5457
assert.Equal(t, overrideRootfsPath, cfg.RootDrive, "expected overridden rootfs path")
58+
assert.Equal(t, overrideCPUCount, cfg.CPUCount, "expected overridden cpu count")
5559
}
5660

5761
func createTempConfig(t *testing.T, contents string) (string, func()) {

0 commit comments

Comments
 (0)