jondeaf opened a new issue, #12816: URL: https://github.com/apache/cloudstack/issues/12816
### problem I am testing the in-built Proxmox orchestrator extension in Apache CloudStack 4.22.0.0. My Proxmox hosts are added successfully and appear Up/Enabled in CloudStack. I can also authenticate to the Proxmox API successfully from the CloudStack management server using the documented token test. <img width="1656" height="276" alt="Image" src="https://github.com/user-attachments/assets/9e020e7e-8c1c-4952-a594-5ae3052f9470" /> <img width="1627" height="351" alt="Image" src="https://github.com/user-attachments/assets/e514b558-a930-4eca-89b6-de15d818fb07" /> <img width="1087" height="858" alt="Image" src="https://github.com/user-attachments/assets/c38bbfca-4d8e-4067-9a81-4f136fb75029" /> CloudStack docs also note that extension-backed hosts report zero CPU and memory capacity by design, so the 0 CPU / 0 memory shown in the UI is expected and not the main issue. However, adding Primary Storage to the Proxmox cluster fails consistently with: Failed to add data store: Can not create storage pool through host Host {...} due to Exit code: 1, Output: {"error":"Missing required fields: url user token secret node"} Because primary storage never reaches the Up state, subsequent VM deployments fail with: No destination found for a deployment This aligns with CloudStack not having usable primary storage for the cluster. The CloudStack docs describe primary storage as required storage used for VM and disk placement, and the Proxmox extension docs describe the built-in Proxmox extension, host configuration details, and token validation flow. I also found what appears to be a logic issue in the shipped Proxmox extension script: /usr/share/cloudstack-management/extensions/Proxmox/proxmox.sh The script globally validates required fields inside parse_json() before operation-specific logic runs. Initially it required: check_required_fields vm_internal_name url user token secret node which caused createStoragePool to fail because vm_internal_name is a VM field, not a storage-pool field. After patching that line to remove vm_internal_name, the error still remains as: {"error":"Missing required fields: url user token secret node"} This suggests the createStoragePool payload is not receiving host/extension configuration details, or the built-in Proxmox extension does not correctly support the primary storage path in this version. There is already a related upstream issue about Proxmox VMs in CloudStack 4.22 not being able to acquire additional disks because primary storage is not available, which may be related. of your problem ### versions Versions - Apache CloudStack: 4.22.0.0 - Proxmox VE: 9.0.3 - CloudStack management server OS: Ubuntu 24.04.4 LTS - Kernel on management server: 6.8.0-101-generic - Proxmox extension: built-in Proxmox orchestrator extension shipped with CloudStack 4.22.0.0 - Primary storage backend tested: NFS shared storage Infra: - Infrastructure / Setup - CloudStack management server deployed on Ubuntu 24 - CloudStack using built-in Proxmox orchestrator extension - Proxmox cluster with 3 nodes added as external/orchestrator-backed hosts, proxmox cluster has a shared FC Storage - NFS server deployed separately as a VM, reachable from both CloudStack and Proxmox - Shared NFS export: - Server: 10.11.101.130 - Export path: /srv/cloudstack-primary - Proxmox API token authentication validated from the CloudStack management server using the documented curl command and returned valid JSON from /api2/json/version - NFS export is reachable and visible via showmount -e - NFS storage was also added successfully on the Proxmox side ### The steps to reproduce the bug Steps to reproduce Install Apache CloudStack 4.22.0.0. Enable/use the built-in Proxmox orchestrator extension. Add Proxmox hosts with configuration details: url user token secret node network_bridge Confirm hosts show Up/Enabled in CloudStack. Validate Proxmox API token from the CloudStack management server using: export PVE_TOKEN='root@pam!<TOKEN>=<SECRET>' curl -s -k -H "Authorization: PVEAPIToken=$PVE_TOKEN" https://<PROXMOX_URL>:8006/api2/json/version | jq Create an NFS export and verify it is reachable. In CloudStack UI, go to Primary Storage and try to add NFS primary storage to the Proxmox cluster: Protocol: nfs Server: 10.11.101.130 Path: /srv/cloudstack-primary Observe failure: {"error":"Missing required fields: url user token secret node"} Attempt to deploy a VM afterward. Observe deployment failure: No destination found for a deployment Relevant observations Hosts linked to the Proxmox extension show 0 CPU / 0 memory in CloudStack, which matches documented behavior for orchestrator extension-backed hosts. Proxmox API auth is working. NFS connectivity is working. Primary storage never becomes Up in CloudStack. management-server.log contains: Failed to add data store: Can not create storage pool through host Host {...} due to Exit code: 1, Output: {"error":"Missing required fields: url user token secret node"} management-server.log also shows: Skip capacity scan as there is no Primary Storage in 'Up' state Relevant script snippet From: /usr/share/cloudstack-management/extensions/Proxmox/proxmox.sh parse_json() { ... url="${host_url:-$extension_url}" user="${host_user:-$extension_user}" token="${host_token:-$extension_token}" secret="${host_secret:-$extension_secret}" check_required_fields url user token secret node } This still fails during createStoragePool, which suggests the payload for that action may not include the expected externaldetails.host / externaldetails.extension data.z ### What to do about it? What to do about it? Please confirm whether: - createStoragePool is currently supported for the built-in Proxmox extension in 4.22.0.0 - the createStoragePool payload is expected to contain host/extension configuration details - this is a known issue in 4.22.0.0 and whether it is fixed in a later 4.22.x release - This may be related to existing Proxmox primary storage issues in the 4.22 line. Screenshots: Primary Storage add dialog and error toast <img width="1889" height="856" alt="Image" src="https://github.com/user-attachments/assets/fddc11ab-f6eb-4f2c-aa83-6aeccd21438a" /> curl API key <img width="978" height="229" alt="Image" src="https://github.com/user-attachments/assets/7d392dd7-5641-4fc9-8002-16bc281b00ee" /> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
