From 4faea6d09020cf6774e3107761e21b36bc070259 Mon Sep 17 00:00:00 2001 From: David Crespo Date: Thu, 13 Nov 2025 16:16:49 -0600 Subject: [PATCH 1/2] bump max cpus per VM to 254 --- app/api/util.ts | 4 ++-- test/e2e/instance-create.e2e.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/api/util.ts b/app/api/util.ts index 132fac4aa8..1db15ada3c 100644 --- a/app/api/util.ts +++ b/app/api/util.ts @@ -22,11 +22,11 @@ import type { VpcFirewallRuleUpdate, } from './__generated__/Api' -// API limits encoded in https://github.com/oxidecomputer/omicron/blob/aec3cd8d/nexus/src/app/mod.rs +// API limits encoded in https://github.com/oxidecomputer/omicron/blob/2f7f8074/nexus/src/app/mod.rs#L125-L158 export const MAX_NICS_PER_INSTANCE = 8 -export const INSTANCE_MAX_CPU = 64 +export const INSTANCE_MAX_CPU = 254 export const INSTANCE_MIN_RAM_GiB = 1 export const INSTANCE_MAX_RAM_GiB = 1536 diff --git a/test/e2e/instance-create.e2e.ts b/test/e2e/instance-create.e2e.ts index 45eac4465e..f172f57576 100644 --- a/test/e2e/instance-create.e2e.ts +++ b/test/e2e/instance-create.e2e.ts @@ -638,7 +638,7 @@ test('Validate CPU and RAM', async ({ page }) => { const submitButton = page.getByRole('button', { name: 'Create instance' }) - const cpuMsg = page.getByText('Can be at most 64').first() + const cpuMsg = page.getByText('Can be at most 254').first() const memMsg = page.getByText('Can be at most 1536 GiB').first() await expect(cpuMsg).toBeHidden() From 1bf5bda769f121cc4f5f36a7cde79b5aacc90330 Mon Sep 17 00:00:00 2001 From: David Crespo Date: Mon, 2 Feb 2026 17:15:23 -0600 Subject: [PATCH 2/2] make that 128 --- app/api/util.ts | 7 +++++-- test/e2e/instance-create.e2e.ts | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/api/util.ts b/app/api/util.ts index 1db15ada3c..35e3956060 100644 --- a/app/api/util.ts +++ b/app/api/util.ts @@ -22,11 +22,14 @@ import type { VpcFirewallRuleUpdate, } from './__generated__/Api' -// API limits encoded in https://github.com/oxidecomputer/omicron/blob/2f7f8074/nexus/src/app/mod.rs#L125-L158 +// API limits encoded in https://github.com/oxidecomputer/omicron/blob/44e65c3/nexus/src/app/mod.rs#L130-L161 export const MAX_NICS_PER_INSTANCE = 8 -export const INSTANCE_MAX_CPU = 254 +// Limit is 254 on the backend but we haven't shipped any hardware that supports +// that, so let's do 128 for now +export const INSTANCE_MAX_CPU = 128 + export const INSTANCE_MIN_RAM_GiB = 1 export const INSTANCE_MAX_RAM_GiB = 1536 diff --git a/test/e2e/instance-create.e2e.ts b/test/e2e/instance-create.e2e.ts index f172f57576..c4a9e67304 100644 --- a/test/e2e/instance-create.e2e.ts +++ b/test/e2e/instance-create.e2e.ts @@ -638,7 +638,7 @@ test('Validate CPU and RAM', async ({ page }) => { const submitButton = page.getByRole('button', { name: 'Create instance' }) - const cpuMsg = page.getByText('Can be at most 254').first() + const cpuMsg = page.getByText('Can be at most 128').first() const memMsg = page.getByText('Can be at most 1536 GiB').first() await expect(cpuMsg).toBeHidden()