nova: Default to the unversioned q35 machine type on x86_64

This change updates the NovaHWMachineType parameter to now default to the
unversioned q35 machine type for x86_64 instances within a deployment.

A simple environment file is also included to pin NovaHWMachineType to
the previous versioned defaults during an upgrade to this release. Once
upgraded operators can then use the following flow to record the machine
type of existing instances allowing the default to eventually be
changed:

https://docs.openstack.org/nova/latest/admin/hw-machine-type.html

This change depends on Ieb21fd8f3e895ea7611882f1e92f398efe2e77fa to
ensure that the standalone role picks up this new default in CI.

It also depends on Ia3f839a3c5e4e4b59898c11561fe7ef7126bba5f to ensure
that all jobs use cirros 0.5.2 that includes the achi module now
required when using q35 based instances.

Depends-On: https://review.opendev.org/c/openstack/tripleo-quickstart-extras/+/785575

Finally, it also depends on I0e068043d8267ab91535413d950a3e154c2234f7
from Nova that is attempting to workaround a known QEMU issue that
appears more prevalent when using this newer machine type.

Depends-On: https://review.opendev.org/c/openstack/nova/+/785682

Change-Id: I9f60a73577ae7cd712e2a8285abc0c0788906112
This commit is contained in:
Lee Yarwood 2021-04-06 19:48:25 +01:00 committed by amolkahat
parent 1150081e83
commit 4efd15e15a
3 changed files with 25 additions and 4 deletions

View File

@ -432,7 +432,7 @@ parameters:
NovaHWMachineType: NovaHWMachineType:
description: > description: >
To specify a default machine type per host architecture. To specify a default machine type per host architecture.
default: '' default: 'x86_64=q35'
type: string type: string
tags: tags:
- role_specific - role_specific

View File

@ -0,0 +1,10 @@
# A Heat environment file to pin NovaHWMachineType and in turn
# [libvirt]hw_machine_type to the legacy default machine types during
# an upgrade. This allows operators to then ensure a machine type is
# recorded for existing instances *before* changing to the new
# default. See the following Nova documentation for more details:
#
# https://docs.openstack.org/nova/latest/admin/hw-machine-type.html
#
parameter_defaults:
NovaHWMachineType: 'x86_64=pc-i440fx-rhel7.6.0,aarch64=virt-rhel7.6.0,ppc64=pseries-rhel7.6.0,ppc64le=pseries-rhel7.6.0'

View File

@ -1,6 +1,17 @@
--- ---
upgrade: upgrade:
- | - |
The ``NovaHWMachineType`` parameter now defaults to an empty string with The ``NovaHWMachineType`` parameter now defaults ``x86_64`` based instances
per architecture machine type defaults instead being provided directly by to the unversioned ``q35`` machine type. The remaining architecture machine
OpenStack Nova. type defaults being provided directly by OpenStack Nova.
A ``environments/nova-hw-machine-type-upgrade.yaml`` environment file has
been provided to pin ``NovaHWMachineType`` to the previous versioned
machine type defaults during an upgrade.
When the upgrade of the overcloud is complete the following OpenStack Nova
documentation should then be used to ensure a machine type is recorded for
all existing instances before the new ``NovaHWMachineType`` default can be
used in the environment.
https://docs.openstack.org/nova/latest/admin/hw-machine-type.html#update