From e9a9fd76dae22be24767cdf44cb9668f96c9ea90 Mon Sep 17 00:00:00 2001 From: Leah Date: Wed, 5 Jul 2023 03:41:10 +0200 Subject: [PATCH] feat: add more valid cpu types (#411) * add more valid cpu types (cherry picked from commit c62e76707b897912628adc7dda0871b3146c7aa8) * add docs --------- Co-authored-by: Pavel Boldyrev <627562+bpg@users.noreply.github.com> --- docs/resources/virtual_environment_vm.md | 22 +++++++++++++------ proxmoxtf/resource/utils.go | 28 ++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 7 deletions(-) diff --git a/docs/resources/virtual_environment_vm.md b/docs/resources/virtual_environment_vm.md index 6dcf23c8..7966ef7b 100644 --- a/docs/resources/virtual_environment_vm.md +++ b/docs/resources/virtual_environment_vm.md @@ -167,16 +167,20 @@ output "ubuntu_vm_public_key" { to `0`). - `numa` - (Boolean) Enable/disable NUMA. (default to `false`) - `sockets` - (Optional) The number of CPU sockets (defaults to `1`). - - `type` - (Optional) The emulated CPU type (defaults to `qemu64`). + - `type` - (Optional) The emulated CPU type, it's recommended to use `x86-64-v2-AES` (defaults to `qemu64`). - `486` - Intel 486. - - `Broadwell`/`Broadwell-IBRS`/`Broadwell-noTSX`/`Broadwell-noTSX-IBRS` - - Intel Core Processor (Broadwell, 2014). - - `Cascadelake-Server` - Intel Xeon 32xx/42xx/52xx/62xx/82xx/92xx ( + - `Broadwell`/`Broadwell-IBRS`/`Broadwell-noTSX`/`Broadwell-noTSX-IBRS` - Intel Core Processor (Broadwell, + 2014). + - `Cascadelake-Server`/`Cascadelake-Server-noTSX`/`Cascadelake-Server-v2`/`Cascadelake-Server-v4`/`Cascadelake-Server-v5` - + Intel Xeon 32xx/42xx/52xx/62xx/82xx/92xx ( 2019). - `Conroe` - Intel Celeron_4x0 (Conroe/Merom Class Core 2, 2006). - - `EPYC`/`EPYC-IBPB` - AMD EPYC Processor (2017). + - `Cooperlake`/`Cooperlake-v2` + - `EPYC`/`EPYC-IBPB`/`EPYC-Milan`/`EPYC-Rome`/`EPYC-Rome-v2`/`EPYC-v3` - AMD EPYC Processor (2017). - `Haswell`/`Haswell-IBRS`/`Haswell-noTSX`/`Haswell-noTSX-IBRS` - Intel Core Processor (Haswell, 2013). + - `Icelake-Client`/`Icelake-Client-noTSX` + - `Icelake-Server`/`Icelake-Server-noTSX`/`Icelake-Server-v3`/`Icelake-Server-v4`/`Icelake-Server-v5`/`Icelake-Server-v6` - `IvyBridge`/`IvyBridge-IBRS` - Intel Xeon E3-12xx v2 (Ivy Bridge, 2012). - `KnightsMill` - Intel Xeon Phi 72xx (2017). @@ -190,9 +194,12 @@ output "ubuntu_vm_public_key" { - `Penryn` - Intel Core 2 Duo P9xxx (Penryn Class Core 2, 2007). - `SandyBridge`/`SandyBridge-IBRS` - Intel Xeon E312xx (Sandy Bridge, 2011). - - `Skylake-Client`/`Skylake-Client-IBRS` - Intel Core Processor ( + - `SapphireRapids` + - `Skylake-Client`/`Skylake-Client-IBRS`/`Skylake-Client-noTSX-IBRS`/`Skylake-Client-v4` - Intel Core + Processor ( Skylake, 2015). - - `Skylake-Server`/`Skylake-Server-IBRS` - Intel Xeon Processor ( + - `Skylake-Server`/`Skylake-Server-IBRS`/`Skylake-Server-noTSX-IBRS`/`Skylake-Server-v4`/`Skylake-Server-v5` - + Intel Xeon Processor ( Skylake, 2016). - `Westmere`/`Westmere-IBRS` - Intel Westmere E56xx/L56xx/X56xx ( Nehalem-C, 2010). @@ -208,6 +215,7 @@ output "ubuntu_vm_public_key" { - `phenom` - AMD Phenom (2010). - `qemu32`/`qemu64` - QEMU Virtual CPU version 2.5+ (32 & 64 bit variants). + - `x86-64-v2`/`x86-64-v2-AES`/`x86-64-v3`/`x86-64-v4` See https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels - `custom-` - Custom CPU model. All `custom-` values should be defined in `/etc/pve/virtual-guest/cpu-models.conf` file. - `units` - (Optional) The CPU units (defaults to `1024`). diff --git a/proxmoxtf/resource/utils.go b/proxmoxtf/resource/utils.go index 8abddf4b..67fc8cdf 100644 --- a/proxmoxtf/resource/utils.go +++ b/proxmoxtf/resource/utils.go @@ -105,13 +105,31 @@ func getCPUTypeValidator() schema.SchemaValidateDiagFunc { "Broadwell-noTSX", "Broadwell-noTSX-IBRS", "Cascadelake-Server", + "Cascadelake-Server-noTSX", + "Cascadelake-Server-v2", + "Cascadelake-Server-v4", + "Cascadelake-Server-v5", "Conroe", + "Cooperlake", + "Cooperlake-v2", "EPYC", "EPYC-IBPB", + "EPYC-Milan", + "EPYC-Rome", + "EPYC-Rome-v2", + "EPYC-v3", "Haswell", "Haswell-IBRS", "Haswell-noTSX", "Haswell-noTSX-IBRS", + "Icelake-Client", + "Icelake-Client-noTSX", + "Icelake-Server", + "Icelake-Server-noTSX", + "Icelake-Server-v3", + "Icelake-Server-v4", + "Icelake-Server-v5", + "Icelake-Server-v6", "IvyBridge", "IvyBridge-IBRS", "KnightsMill", @@ -125,10 +143,16 @@ func getCPUTypeValidator() schema.SchemaValidateDiagFunc { "Penryn", "SandyBridge", "SandyBridge-IBRS", + "SapphireRapids", "Skylake-Client", "Skylake-Client-IBRS", + "Skylake-Client-noTSX-IBRS", + "Skylake-Client-v4", "Skylake-Server", "Skylake-Server-IBRS", + "Skylake-Server-noTSX-IBRS", + "Skylake-Server-v4", + "Skylake-Server-v5", "Westmere", "Westmere-IBRS", "athlon", @@ -144,6 +168,10 @@ func getCPUTypeValidator() schema.SchemaValidateDiagFunc { "phenom", "qemu32", "qemu64", + "x86-64-v2", + "x86-64-v2-AES", + "x86-64-v3", + "x86-64-v4", } return validation.ToDiagFunc(validation.Any(