From e10e449333e4e4af3d2b418740a05f2090e4b65f Mon Sep 17 00:00:00 2001 From: Tuan-Dat Tran Date: Thu, 4 Jun 2026 23:32:18 +0200 Subject: [PATCH] feat(proxmox): per-node CPU type based on hardware capabilities MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add proxmox_node_cpu map — aya01 (Celeron N5105, no AVX2) stays at x86-64-v2-AES; inko01/lulu/mii01/naruto01 (all AVX2-capable) use x86-64-v3. Task looks up cpu type by vm.node with x86-64-v2-AES as fallback. --- roles/proxmox/tasks/55_create_vm.yaml | 2 +- vars/group_vars/proxmox/vars.yaml | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/roles/proxmox/tasks/55_create_vm.yaml b/roles/proxmox/tasks/55_create_vm.yaml index 4d42fc3..95d46e5 100644 --- a/roles/proxmox/tasks/55_create_vm.yaml +++ b/roles/proxmox/tasks/55_create_vm.yaml @@ -18,7 +18,7 @@ tags: "{{ proxmox_tags }}" description: "Created via Ansible with cloud-init" boot: "order=scsi0" - cpu: "x86-64-v3" + cpu: "{{ proxmox_node_cpu[vm.node] | default('x86-64-v2-AES') }}" ciuser: "{{ vm.ciuser }}" cipassword: "{{ vm_secrets[proxmox_secrets_prefix + '_' + vm.name.replace('-', '_')] }}" ipconfig: diff --git a/vars/group_vars/proxmox/vars.yaml b/vars/group_vars/proxmox/vars.yaml index 378585d..3ebc3a5 100644 --- a/vars/group_vars/proxmox/vars.yaml +++ b/vars/group_vars/proxmox/vars.yaml @@ -2,3 +2,12 @@ proxmox_api_host: 192.168.20.12 proxmox_api_user: root proxmox_api_token_id: terraform proxmox_api_token_secret: "{{ vault_pve.api.token_secret }}" + +# CPU type per Proxmox node — x86-64-v3 requires AVX2 (Ryzen 5700U, N100, i5-7200U) +# aya01 (Celeron N5105) tops out at SSE4.2, must stay at v2 +proxmox_node_cpu: + aya01: "x86-64-v2-AES" + inko01: "x86-64-v3" + lulu: "x86-64-v3" + mii01: "x86-64-v3" + naruto01: "x86-64-v3"