Skip to content

Proxmox extension in CloudStack 4.22.0.0 fails to create primary storage with Missing required fields: url user token secret node #12816

@jondeaf

Description

@jondeaf

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.

Image Image Image

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!='
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

Image

curl API key

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions