This series brings the emulated aarch64 vms to the gui. This could
be configured on the api only previously.

The code also handles if the host has a non-x86 architecture, and is
generally structured in a way that should make it (relatively) easy
to add other architectures in the future.

Some fields/panels needed adaptions to hide some values or change some
defaults, since not every combination that can be configured makes
sense. (e.g. seabios on aarch64 cannot work currently)

Generally the backend allows many combinations that don't make sense on
all architectures, so i tried to limit the users here to the 'correct'
ones, but we should think about limiting them in the backend too.

Also, the backend made some inconsistent choices with different
architectures, such as the default controller changes with the
architecture, but things like 'bios' or 'scsihw' do not. So I worked
around these things a bit differently.

What is still missing:
* make the disk controllers selective per architecture
  (e.g. aarch64 has no ide controller, ovmf+aarch64 cannot boot from sata)
* cpumodel + cpuflags need to be architecture aware

other nice to haves not yet done, that also invovle changing the backend:
* 'virt' machine support in our api, so one can choose older versions
* allow 'pcie' passthrough on 'virt'

Dominik Csapak (10):
  api/pvestatd: broadcast and expose non-x86 host architecture
  ui: resource store: add architecture field
  ui: qemu: add architecture field in wizard and hardware view
  ui: qemu: make scsi hw selector architecture aware
  ui: qemu: make osdefaults architecture aware
  ui: qemu: make os type selector architecture aware
  ui: qemu: make machine panels/fields architecture aware
  ui: qemu: make bios selector architecture aware
  ui: qemu: make sortByPreviousUsage architecture aware
  ui: qemu: wizard: use defaults to populate machine and bios

 PVE/API2/Cluster.pm                      |  9 +++
 PVE/API2/Nodes.pm                        |  3 +-
 PVE/Service/pvestatd.pm                  | 10 +++
 www/manager6/Makefile                    |  1 +
 www/manager6/Utils.js                    | 61 ++++++++++++++++--
 www/manager6/data/ResourceStore.js       |  6 ++
 www/manager6/form/ControllerSelector.js  |  9 ++-
 www/manager6/form/QemuBiosSelector.js    | 61 ++++++++++++++++--
 www/manager6/form/QemuMachineSelector.js | 64 +++++++++++++++++++
 www/manager6/form/ScsiHwSelector.js      | 63 ++++++++++++++++++
 www/manager6/panel/MultiDiskEdit.js      | 14 ++--
 www/manager6/qemu/CIDriveEdit.js         |  2 +
 www/manager6/qemu/CreateWizard.js        | 27 ++++++++
 www/manager6/qemu/HardwareView.js        | 19 +++++-
 www/manager6/qemu/MachineEdit.js         | 63 +++++++++++++-----
 www/manager6/qemu/MultiHDEdit.js         |  3 +-
 www/manager6/qemu/NetworkEdit.js         |  3 +-
 www/manager6/qemu/OSDefaults.js          | 81 +++++++++++++++++++-----
 www/manager6/qemu/OSTypeEdit.js          | 39 +++++++++++-
 www/manager6/qemu/QemuBiosEdit.js        | 35 +++++++++-
 www/manager6/qemu/ScsiHwEdit.js          |  1 +
 www/manager6/qemu/SystemEdit.js          | 33 +++++++---
 www/manager6/window/GuestDiskReassign.js |  1 +
 23 files changed, 539 insertions(+), 69 deletions(-)
 create mode 100644 www/manager6/form/QemuMachineSelector.js

-- 
2.47.3



_______________________________________________
pve-devel mailing list
[email protected]
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to