diff options
-rw-r--r-- | apex/overcloud/deploy.py | 9 | ||||
-rw-r--r-- | apex/undercloud/undercloud.py | 3 | ||||
-rwxr-xr-x | apex/virtual/configure_vm.py | 4 | ||||
-rw-r--r-- | lib/ansible/playbooks/undercloud_aarch64.yml | 2 |
4 files changed, 15 insertions, 3 deletions
diff --git a/apex/overcloud/deploy.py b/apex/overcloud/deploy.py index 5c957965..d1099c41 100644 --- a/apex/overcloud/deploy.py +++ b/apex/overcloud/deploy.py @@ -11,6 +11,7 @@ import base64 import fileinput import logging import os +import platform import shutil import uuid import struct @@ -151,6 +152,14 @@ def create_deploy_cmd(ds, ns, inv, tmp_dir, raise ApexDeployException("Invalid number of control or computes") elif num_control > 1 and not ds['global_params']['ha_enabled']: num_control = 1 + if platform.machine() == 'aarch64': + # aarch64 deploys were not completing in the default 90 mins. + # Not sure if this is related to the hardware the OOO support + # was developed on or the virtualization support in CentOS + # Either way it will probably get better over time as the aarch + # support matures in CentOS and deploy time should be tested in + # the future so this multiplier can be removed. + con.DEPLOY_TIMEOUT *= 2 cmd = "openstack overcloud deploy --templates --timeout {} " \ .format(con.DEPLOY_TIMEOUT) # build cmd env args diff --git a/apex/undercloud/undercloud.py b/apex/undercloud/undercloud.py index 013570d3..452e4971 100644 --- a/apex/undercloud/undercloud.py +++ b/apex/undercloud/undercloud.py @@ -61,13 +61,14 @@ class Undercloud: if self.external_net: networks.append('external') console = 'ttyAMA0' if platform.machine() == 'aarch64' else 'ttyS0' + root = 'vda' if platform.machine() == 'aarch64' else 'sda' self.vm = vm_lib.create_vm(name='undercloud', image=self.volume, baremetal_interfaces=networks, direct_boot='overcloud-full', kernel_args=['console={}'.format(console), - 'root=/dev/sda'], + 'root=/dev/{}'.format(root)], default_network=True, template_dir=self.template_path) self.setup_volumes() diff --git a/apex/virtual/configure_vm.py b/apex/virtual/configure_vm.py index 3b2c4462..ba0398bb 100755 --- a/apex/virtual/configure_vm.py +++ b/apex/virtual/configure_vm.py @@ -118,9 +118,9 @@ def create_vm(name, image, diskbus='sata', baremetal_interfaces=['admin'], 'user_interface': '', } - # assign scsi as default for aarch64 + # assign virtio as default for aarch64 if arch == 'aarch64' and diskbus == 'sata': - diskbus = 'scsi' + diskbus = 'virtio' # Configure the bus type for the target disk device params['diskbus'] = diskbus nicparams = { diff --git a/lib/ansible/playbooks/undercloud_aarch64.yml b/lib/ansible/playbooks/undercloud_aarch64.yml index 040831c5..ddaf1b04 100644 --- a/lib/ansible/playbooks/undercloud_aarch64.yml +++ b/lib/ansible/playbooks/undercloud_aarch64.yml @@ -23,6 +23,8 @@ dest: /tftpboot/EFI/centos/grub.cfg mode: 0644 - shell: 'openstack-config --set /etc/ironic/ironic.conf pxe uefi_pxe_bootfile_name grubaa64.efi' + - shell: 'openstack-config --set /etc/ironic/ironic.conf pxe uefi_pxe_config_template \$pybasedir/drivers/modules/pxe_grub_config.template' + - systemd: name: openstack-ironic-conductor state: restarted |