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

Gema Gomez
Marcin Juszkiewicz
Series goal:
Accepted for pike
Milestone target:
milestone icon pike-3
Started by
Steven Dake
Completed by
Marcin Juszkiewicz

Related branches



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.
-- 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

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:,topic:to-merge/multiarch-and-arm64-containers,n,z

Addressed by:
    debian: enable all images enabled for Ubuntu

Addressed by:
    Add support for non-x86 architectures (aarch64, ppc64le)

Addressed by:
    debian: move to stretch

Addressed by:
    elasticsearch: handle aarch64 and ppc64le architectures

Addressed by:
    nova-libvirt: handle ppc64le

Current (2017-03-29) stats:

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

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

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

Addressed by:
    ironic-pxe: handle non-x86 architectures

Addressed by:
    debian: install gnupg and dirmngr needed for apt-key

Addressed by:
    nova-compute: handle rtslib(-fb) for debian-binary builds too

Addressed by:
    ceph: move ceph-fuse package to cephfs-fuse image

Addressed by:
    openstack-base/kolla-toolbox: CentOS has mariadb-devel

Addressed by:
    kubernetes: disable for architectures other than x86-64

Gerrit topic:,topic:bp/multiarch-and-arm64-containers,n,z

Gerrit topic:,topic:bug/1675401,n,z

Addressed by:
    make yum fail on missing packages

Addressed by:
    openstack-base: Percona-Server is x86-64 only

Addressed by:
    mariadb: handle lack of external repos on non x86

Addressed by:
    iscsid: enable Debian support

Addressed by:
    nova-compute: enable Debian/source build

Addressed by:
    add base_arch variable for future non-x86 work

Addressed by:
    gnocchi-base: add some devel packages for non-x86

Addressed by:
    grafana: disable for non-x86

Addressed by:
    helm-repository: update to v2.3.0

Addressed by:
    helm-repository: make it work on non-x86

Addressed by:
    kubetoolbox: mark as x86-64 only

Addressed by:
    magnum-conductor: mark as x86-64 only

Addressed by:
    handle mariadb for aarch64/ubuntu/source

Addressed by:
    opendaylight: get it working on CentOS/non-x86

Addressed by:
    kolla-toolbox: use proper mariadb packages on CentOS/non-x86

Addressed by:
    kubernetes: get it working on AArch64 as well

Addressed by:
    introduce 'install_kubectl' macro

Addressed by:
    fix handling of delorean on non-x86

Addressed by:
    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.