Bring multiarch and start building ARM64 containers to Kolla

Registered by Gema Gomez on 2017-01-31

This blueprint is meant to track the work required for the creation of ARM64 containers for OpenStack and the multiarch work required to make this happen sanely.

Blueprint information

Status:
Complete
Approver:
kolla-drivers
Priority:
High
Drafter:
Gema Gomez
Direction:
Approved
Assignee:
Marcin Juszkiewicz
Definition:
Approved
Series goal:
Accepted for pike
Implementation:
Implemented
Milestone target:
milestone icon pike-3
Started by
Steven Dake on 2017-02-12
Completed by
Marcin Juszkiewicz on 2017-08-23

Related branches

Sprints

Whiteboard

Tasks roughly identified as necessary:
- Debian containers are not up to date nor in a working state. They need to be worked on and brought up to a working state so that they can be used on ARM64.
-- 124 containers built, 84 failed
- Identify all the changes that need to be done so that more than one architecture can coexist and the
right containers are chosen depending on the arch.
-- https://review.openstack.org/#/c/430940 adds non-x86 support
- Bring up 3rd party CI with ARM64 hardware to be able to validate the ARM64 containers: 3rd party CI continues to be worked on but won't land during Pike. We are aiming at landing this on Queens (see https://blueprints.launchpad.net/kolla/+spec/aarch64-3rd-party-ci-kolla).

Waiting for Ocata release (10th March) to get reviewers ready to look at patches.

Patches related to blueprint should have extra info in commit message:

Partially-Implements: multiarch-and-arm64-containers

Gerrit topic: https://review.openstack.org/#q,topic:to-merge/multiarch-and-arm64-containers,n,z

Addressed by: https://review.openstack.org/432787
    debian: enable all images enabled for Ubuntu

Addressed by: https://review.openstack.org/430940
    Add support for non-x86 architectures (aarch64, ppc64le)

Addressed by: https://review.openstack.org/434453
    debian: move to stretch

Addressed by: https://review.openstack.org/434809
    elasticsearch: handle aarch64 and ppc64le architectures

Addressed by: https://review.openstack.org/434810
    nova-libvirt: handle ppc64le

Current (2017-03-29) stats:

x86-64:
centos-binary: 169
centos-source: 206
debian-binary: 142
debian-source: 195
ubuntu-binary: 161
ubuntu-source: 207

ppc64le:
debian-binary: 134
debian-source: 187
ubuntu-binary: 143
ubuntu-source: 193

aarch64:
centos-binary: 60
centos-source: 190
debian-binary: 129
debian-source: 182
ubuntu-binary: 141
ubuntu-source: 28

Addressed by: https://review.openstack.org/434817
    ironic-pxe: handle non-x86 architectures

Addressed by: https://review.openstack.org/434431
    debian: install gnupg and dirmngr needed for apt-key

Addressed by: https://review.openstack.org/435941
    nova-compute: handle rtslib(-fb) for debian-binary builds too

Addressed by: https://review.openstack.org/440634
    ceph: move ceph-fuse package to cephfs-fuse image

Addressed by: https://review.openstack.org/444832
    openstack-base/kolla-toolbox: CentOS has mariadb-devel

Addressed by: https://review.openstack.org/445638
    kubernetes: disable for architectures other than x86-64

Gerrit topic: https://review.openstack.org/#q,topic:bp/multiarch-and-arm64-containers,n,z

Gerrit topic: https://review.openstack.org/#q,topic:bug/1675401,n,z

Addressed by: https://review.openstack.org/449086
    make yum fail on missing packages

Addressed by: https://review.openstack.org/449965
    openstack-base: Percona-Server is x86-64 only

Addressed by: https://review.openstack.org/450111
    mariadb: handle lack of external repos on non x86

Addressed by: https://review.openstack.org/450612
    iscsid: enable Debian support

Addressed by: https://review.openstack.org/450805
    nova-compute: enable Debian/source build

Addressed by: https://review.openstack.org/451268
    add base_arch variable for future non-x86 work

Addressed by: https://review.openstack.org/453700
    gnocchi-base: add some devel packages for non-x86

Addressed by: https://review.openstack.org/457946
    grafana: disable for non-x86

Addressed by: https://review.openstack.org/457967
    helm-repository: update to v2.3.0

Addressed by: https://review.openstack.org/457983
    helm-repository: make it work on non-x86

Addressed by: https://review.openstack.org/458078
    kubetoolbox: mark as x86-64 only

Addressed by: https://review.openstack.org/458085
    magnum-conductor: mark as x86-64 only

Addressed by: https://review.openstack.org/461072
    handle mariadb for aarch64/ubuntu/source

Addressed by: https://review.openstack.org/463579
    opendaylight: get it working on CentOS/non-x86

Addressed by: https://review.openstack.org/463581
    kolla-toolbox: use proper mariadb packages on CentOS/non-x86

Addressed by: https://review.openstack.org/464045
    kubernetes: get it working on AArch64 as well

Addressed by: https://review.openstack.org/464184
    introduce 'install_kubectl' macro

Addressed by: https://review.openstack.org/465098
    fix handling of delorean on non-x86

Addressed by: https://review.openstack.org/468348
    gnocchi: take care of centos/source on non-x86

(?)

Work Items

Work items:
(hrw): Look at the current debian containers and figure out what needs to be done to fix: DONE
(hrw): check current state of Kolla regarding non-x86 support: DONE
(hrw): write a patch to add aarch64 support: DONE
(hrw): check Debian/AArch64 support in Kolla: DONE
(hrw): build some Debian/AArch64 containers: DONE
(hrw): build some Debian/Stretch/AArch64 containers: DONE
(hrw): check CentOS/AArch64 support in Kolla: DONE
(hrw): build some CentOS/AArch64 containers: DONE

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.