Some may wonder why to run OpenStack on Gentoo, it's akin to running one extremely complex piece of software on another potentially extremely complex operating system.
I propose Gentoo as the most correct operating system to run OpenStack as Gentoo is best prepared to handle some of the complexities that come with OpenStack.
Things Gentoo does well for OpenStack
- Dependency resolution - we can take upstream's dependencies (requirements.txt) and map it directly to Gentoo's packages without changing the versions supported. This is not always the case in other distributions.
- Because of this we can better rely on upstream's testing as validation that OpenStack on Gentoo will work properly.
- useflags - some dependencies (such as memcached, qemu, etc) are optional depending on what services you are running.
- python3 support - as upstream is finally moving to python3 we are easily able to extend support as it occurs.
- patching - https://wiki.gentoo.org/wiki//etc/portage/patches allows users to patch anything as needed.
- Upstream vanilla Openstack - We are not carrying many (I can count them on one hand) patches that are not upstreamed.
- Testing - All the major services have testing support to validate good installs and / or custom patches not breaking things.
Future of OpenStack on Gentoo
- The Liberty release 15/10/2015
- Upstream is reversioning the major components of OpenStack, 2015.2.0 will not exist, it will be something like 12.0.0.
- The reversioning will mean some manual intervention if you wish to use Liberty on Gentoo, namely you will need to mask greater than version 2000 of the major components of OpenStack
- More services
- I will at least add Heat during the next (Liberty) release cycle, possibly more
- I will investigate readding Horizon, but doubt it'll be easily packagable.
- Security
- I'd like to look into some of the selinux policies that are being developed for some of the services. I know nova/qemu has apparmor support.
Limits of testing
You cannot directly test OpenStack packages by emerging with USE="test" FEATURES="test" because there are interdepenecies that cause loops in the depgraph of portage for the (test) dependencies. You can get around it one way though.
# install only the test deps
emerge --onlydeps --oneshot --with-test-deps sys-cluster/nova
# test and install the actual package
USE="test" FEATURES="test" emerge sys-cluster/nova