Bring multiarch and start building ARM64 containers to Kolla

Registered by Gema Gomez

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:
None
Definition:
Approved
Series goal:
Accepted for pike
Implementation:
Implemented
Milestone target:
milestone icon pike-3
Started by
Steven Dake
Completed by
Marcin Juszkiewicz

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.