From 9aa40e9f2aeacfff8574f91e20061fc8ab3eea79 Mon Sep 17 00:00:00 2001 From: Pulse Monitor Date: Sat, 23 Aug 2025 07:45:56 +0000 Subject: [PATCH] fix: add Proxmox 9 compatibility for VM guest agent permissions - Detect Proxmox version in setup script - Use VM.GuestAgent.Audit for PVE 9+ instead of VM.Monitor - Update UI instructions to handle both PVE 8 and 9 - addresses #348 --- .../src/components/Settings/NodeModal.tsx | 8 ++++---- internal/api/config_handlers.go | 18 ++++++++++++++++-- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/frontend-modern/src/components/Settings/NodeModal.tsx b/frontend-modern/src/components/Settings/NodeModal.tsx index 72e24f1f7..2ac52e0e5 100644 --- a/frontend-modern/src/components/Settings/NodeModal.tsx +++ b/frontend-modern/src/components/Settings/NodeModal.tsx @@ -635,7 +635,7 @@ export const NodeModal: Component = (props) => {
  • - Sets up monitoring permissions (PVEAuditor + VM.Monitor{formData().enableBackupManagement ? ' + backup access' : ''}) + Sets up monitoring permissions (PVEAuditor + guest agent access{formData().enableBackupManagement ? ' + backup access' : ''})
  • @@ -708,7 +708,7 @@ export const NodeModal: Component = (props) => {
    - {'pveum aclmod / -user pulse-monitor@pam -role PVEAuditor\npveum role delete PulseMonitor 2>/dev/null\npveum role add PulseMonitor -privs VM.Monitor\npveum aclmod / -user pulse-monitor@pam -role PulseMonitor'} + {'pveum aclmod / -user pulse-monitor@pam -role PVEAuditor\npveum role delete PulseMonitor 2>/dev/null\n# Detect PVE version and use appropriate permissions\nPVE_VERSION=$(pveversion --verbose | grep "pve-manager" | cut -d"/" -f2 | cut -d"." -f1)\nif [ "$PVE_VERSION" -ge "9" ]; then\n pveum role add PulseMonitor -privs VM.GuestAgent.Audit # PVE 9+\nelse\n pveum role add PulseMonitor -privs VM.Monitor # PVE 8 and below\nfi\npveum aclmod / -user pulse-monitor@pam -role PulseMonitor'}

    - ℹ️ PVEAuditor gives read-only access. PulseMonitor adds VM guest agent access for disk usage. PVEDatastoreAdmin on /storage adds backup management. + ℹ️ PVEAuditor gives read-only access. PulseMonitor adds VM guest agent access for disk usage (VM.Monitor for PVE 8, VM.GuestAgent.Audit for PVE 9+). PVEDatastoreAdmin on /storage adds backup management.

    diff --git a/internal/api/config_handlers.go b/internal/api/config_handlers.go index 5c85f1502..3215ae12f 100644 --- a/internal/api/config_handlers.go +++ b/internal/api/config_handlers.go @@ -2144,10 +2144,24 @@ fi echo "Setting up permissions..." pveum aclmod / -user pulse-monitor@pam -role PVEAuditor%s -# Create PulseMonitor role with VM.Monitor permission (remove old one if exists) +# Detect Proxmox version to handle permission differences +PVE_VERSION=$(pveversion --verbose | grep "pve-manager" | cut -d'/' -f2 | cut -d'.' -f1) +echo "Detected Proxmox VE version $PVE_VERSION" + +# Create PulseMonitor role with appropriate permissions based on PVE version echo "Setting up PulseMonitor role for guest agent access..." pveum role delete PulseMonitor 2>/dev/null || true -pveum role add PulseMonitor -privs VM.Monitor + +if [ "$PVE_VERSION" -ge "9" ]; then + # Proxmox 9+ uses VM.GuestAgent.Audit instead of VM.Monitor + echo "Using Proxmox 9+ permissions (VM.GuestAgent.Audit)" + pveum role add PulseMonitor -privs VM.GuestAgent.Audit +else + # Proxmox 8 and below use VM.Monitor + echo "Using Proxmox 8 permissions (VM.Monitor)" + pveum role add PulseMonitor -privs VM.Monitor +fi + pveum aclmod / -user pulse-monitor@pam -role PulseMonitor echo ""