Adds Pick guest CPU architecture based on host arch in libvirt driver support
Implement new image meta property that allows for the selection of the correct QEMU binary, cpu architecture, and machine type for a guest architecture that is different than the host architecture; An x86_64 guest running on an AArch64 host, and vice versa. Specifically the required OS traits have been added to ensure that the hw_architecture and hw_emulation_architecture fields recieve the correct allowed values. exapnded hw_architecture os_traits to match all specified in nova object fields. Depends-On: https://review.opendev.org/c/openstack/nova-specs/+/824044 Implements: blueprint pick-guest-arch-based-on-host-arch-in-libvirt-driver Closes-Bug: 1863728 Signed-off-by: Jonathan Race <jrace@augusta.edu> Change-Id: I891cd43b2b97b3774ff923e3487a153a5ba237ef
This commit is contained in:
parent
ff96dcc647
commit
fce0902443
25
os_traits/compute/arch.py
Normal file
25
os_traits/compute/arch.py
Normal file
@ -0,0 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
TRAITS = [
|
||||
# traits corresponding to the allowed values of "hw_emulaton_architecture"
|
||||
# image metadata property
|
||||
# https://github.com/openstack/nova/blob/1f74441/nova/objects/fields.py#L120-228
|
||||
'AARCH64',
|
||||
'PPC64LE',
|
||||
'MIPSEL',
|
||||
'S390X',
|
||||
'RISCV64',
|
||||
'X86_64',
|
||||
]
|
53
os_traits/hw/arch.py
Normal file
53
os_traits/hw/arch.py
Normal file
@ -0,0 +1,53 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
TRAITS = [
|
||||
# traits corresponding to the allowed values of "hw_architecture"
|
||||
# image metadata property
|
||||
# https://github.com/openstack/nova/blob/1f74441/nova/objects/fields.py#L120-228
|
||||
'ALPHA',
|
||||
'ARMV6',
|
||||
'ARMV7',
|
||||
'ARMV7B',
|
||||
'AARCH64',
|
||||
'CRIS',
|
||||
'I686',
|
||||
'IA64',
|
||||
'LM32',
|
||||
'M68K',
|
||||
'MICROBLAZE',
|
||||
'MICROBLAZEEL',
|
||||
'MIPS',
|
||||
'MIPSEL',
|
||||
'MIPS64',
|
||||
'MIPS64EL',
|
||||
'OPENRISC',
|
||||
'PARISC',
|
||||
'PARISC64',
|
||||
'PPC',
|
||||
'PPCLE',
|
||||
'PPC64',
|
||||
'PPC64LE',
|
||||
'PPCEMB',
|
||||
'S390',
|
||||
'S390X',
|
||||
'SH4',
|
||||
'SH4EB',
|
||||
'SPARC',
|
||||
'SPARC64',
|
||||
'UNICORE32',
|
||||
'X86_64',
|
||||
'XTENSA',
|
||||
'XTENSAEB',
|
||||
]
|
Loading…
Reference in New Issue
Block a user