[openstack-dev] [kolla] my work on Debian and non-x86 architectures
marcin.juszkiewicz at linaro.org
Fri Feb 17 11:47:46 UTC 2017
Ok, I mailed separately about each of them but I work on them at once so
hard to split.
As you know I added support for non-x86 architectures: aarch64 and
ppc64le. Also resurrected Debian support.
# A bit of background
At Linaro we work on getting AArch64 (64-bit ARM, arm64) to be present
in many places. We have at least two OpenStack instances running at the
moment - on AArch64 hardware only.
First we used Debian/jessie and 'liberty' version. Was working. Not best
but we helped many projects by providing virtual machines for porting
It was built from packages and later (when 'mitaka' was released) we
moved to virtualenv per component. Out second "cloud" runs that. With
proper Neutron networking, live migration and few other nice things.
But virtualenvs were done as quick solution. We decided to move to
Docker containers for next release.
And Kolla was chosen as a tool for it. We do not like to reinvent the
wheel again and again...
# Non-x86 support in Kolla
Kolla is x86-64 centric. As most of software nowadays. But thanks to
work done by Sajauddin Mohammad I had something  to use as a base for
adding aarch64 support.
I took his patch, slashed out most of it and concentrated on getting
minimal changes needed to get something built on AArch64. Effect was
sent for review  and is now at 9th version (few more changes coming).
Docker images started to appear. But at beginning I was building Ubuntu
ones as Debian support was "basically abandoned, on a way out". From
CentOS guys I got confirmation that official Docker image will be
generated (it is done already).
I spent some time on making sure that whole non-x86 support is free from
any hardcoding wherever possible. As you can see in my working branch
 it went quite well. Most of arch related changes are related to
"distro does not provide package ZYS for that architecture" or to
handling of external repositories.
# Debian support
And here we come to Debian support. At Linaro we decided to support two
community based distributions: CentOS and Debian. But Debian was on
a way out in Kolla...
As this was not related much to non-x86 work I decided to use one of
x86-64 machines for that stuff.
First builds were against 'jessie-backports' base tag. I had to make
a patch to tell APT that if I want backports then I really want them. It
was sent for review  as rest of patches.
Images were building but not so many as for Ubuntu. So I went through
all of them and enabled Debian where it was possible. Resulting patch
went for review  as usual.
Effect was quite nice (on x86-64):
But 'jessie' was missing several packages even with backports enabled.
So after discussion with my team I decided to drop it and go for
Debian/testing 'stretch' one instead. It is already frozen for release
so no big changes are allowed. Patch in review  of course.
At that moment I abandoned patch  as 'jessie-backports' are not
something I plan to support.
Turned out that 'stretch' images have a bit different set of packages
installed than 'jessie' had. So 'gnupg' and 'dirmngr' were missing while
we need them for importing GPG keys into APT. Proper patch went to
review  again.
Did rebuild on x86-64:
A bit less than 'jessie-backports' had, right? Sure, but it also shows
that I have to make a new build to check numbers (laptop already has
~1500 docker images generated by kolla).
# Cleaning of old Power patch
Remember  which all that started from? I did not forgot it and after
building all those images I went back to it.
Some parts are just fugly so I skipped them but others were useful if
done properly. That's how new changes were done: , ,  and some
updates to previous ones (, ).
Then I managed to put remote hands on one of Power machines at Red Hat
and started builds:
No CentOS builds as there is no centos/ppc64le image available yet.
Non-x86 support looks quite nice. There are some images which can not be
built as they rely on external repositories so no aarch64 nor ppc64le
packages to use.
Debian 'stretch' support is not perfect yet but it is something which
I plan to maintain so situation will be going to improve. Note that most
of my work will go into 'source' type of builds as we want to have same
images for both Debian and CentOS systems.
Next week I am on holidays Tue->Sun.
More information about the OpenStack-dev