Skip to content

VM creation fails on ARM64 Proxmox due to unsupported ide0 cloud-init device #548

@filatof

Description

@filatof

When deploying a cluster with CAPMOX on Proxmox ARM64 (Orange Pi), the VM fails to start because CAPMOX always attaches the cloud-init ISO to an IDE bus (ide0).
Error from Proxmox:

kvm: -device ide-cd,bus=ide.0,unit=0,drive=drive-ide0,id=ide0,bootindex=101: Bus 'ide.0' not found
TASK ERROR: start failed: QEMU exited with code 1

On ARM64 Proxmox, IDE devices are not supported.
If I manually delete the IDE CD-ROM in the Proxmox web UI and re-create it as SCSI with user-data-XXX.iso, the VM starts correctly and the cluster initializes.

Workaround tested:
In version v0.7.3 I was able to patch the source:

// internal/inject/inject.go
- const CloudInitISODevice = "ide0"
+ const CloudInitISODevice = "scsi0"

After recompiling CAPMOX, VMs started successfully.

However, after upgrading to v0.7.4, applying the same change and rebuilding still results in CAPMOX creating the cloud-init ISO on ide0.

Steps to reproduce:
1. Use Proxmox ARM64 host (Orange Pi).
2. Deploy a cluster with CAPMOX.
3. VM creation fails with the above Bus 'ide.0' not found error.

Expected behavior:
CAPMOX should allow configuring the bus type for the cloud-init ISO (e.g., scsi0 instead of hardcoded ide0) so that it works on ARM64 environments.

Environment:
• Proxmox VE: 8.x on ARM64
• CAPMOX version: v0.7.3 (patched works), v0.7.4 (fails even after patch)
• Host: Orange Pi (ARM64)

Possible solutions:
• Make CloudInitISODevice configurable instead of hardcoded to ide0.
• Default to scsi0 for ARM64.
• Detect architecture and choose an appropriate bus type.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions