Bring in aarch64 support in apex 63/63063/31
authorCharalampos Kominos <Charalampos.Kominos@enea.com>
Mon, 1 Oct 2018 11:12:46 +0000 (13:12 +0200)
committerCharalampos Kominos <charalampos.kominos@enea.com>
Sun, 18 Nov 2018 15:18:08 +0000 (16:18 +0100)
commit8f75445a37099590f36ce6044109209c67ef0deb
treeb34e9c39054ab86520e00465c09e574d4d1e4f94
parent9066cb52523aeb4a5b98c634aa6616233b0c0237
Bring in aarch64 support in apex

RDO builds packages which are aarch64 compatible but some configuration
is needed to succesfully deploy.
This change:

- Prepares the aarch64 docker.io repo as the source for Kolla Containers
- Configures VM sizing for aarch64 undercloud.
- Configures VM sizing for aarch64 virtual deploy targets.
  Vms need to be larger on aarch64 compared to x86 to avoid
  starvation of resources. (MYSQL)
- Configures vda2 as the location of the Linux Kernel in aarch64 in
  an UEFI system
- Configures the vNICs to be on the pci-bus instead of the virtio-mmio
  bus.This will enalbe the Nics to come up in the same order as the
  x86 ones,  so the extra configuration in ansible is not needed
- Configures apex to use a stable version of the ceph:daemon container
- Configure apex for containerized undercloud in Rocky
- Add extra ansible.cfg file for aarch64 which increases waiting
  times in ansible for aarch64
- Provide helper scripts for DIB to create aarch64 UEFI images

Known limitations:

- Selinux is interfering with DHCP requests in ironic and ssh
  so it must be disabled before the deploy command is ran.
- The aarch64 containers are frozen for in this commit:
  https://trunk.rdoproject.org/centos7-rocky/f3/18/f3180de6439333a2813119ad4b00ef897fcd596f_70883030
- The 600s timeout defined in :
  https://bugs.launchpad.net/tripleo/+bug/1789680  is not enough for
  aarch64. A value of 1200s is recommended

JIRA: APEX-619

Change-Id: Ia3f067821e12bba44939bbf8c0e4676f2da70239
Signed-off-by: Charalampos Kominos <Charalampos.Kominos@enea.com>
Signed-off-by: ting wu <ting.wu@enea.com>
13 files changed:
apex/builders/common_builder.py
apex/common/constants.py
apex/deploy.py
apex/overcloud/deploy.py
apex/tests/test_apex_common_builder.py
apex/undercloud/undercloud.py
apex/virtual/configure_vm.py
build/ansible.cfg [new file with mode: 0644]
contrib/aarch64/overcloud-full-rootfs.yaml [new file with mode: 0644]
contrib/aarch64/undercloud-full.yaml [new file with mode: 0644]
lib/ansible/playbooks/configure_undercloud.yml
lib/ansible/playbooks/deploy_overcloud.yml
lib/ansible/playbooks/undercloud_aarch64.yml