I’ve been having a whole lot of problems launching an instance. The error messages from OpenStack said ‘Not enough hosts available’, which didn’t really help me in finding the cause. The python stack trace pointed me to the network configuration, with no idea what was wrong.
So after a long time staring at the traces, and looking over the neutron configuration, with little or no effect, I decided to go for broke: I’d just redo the entire neutron configuration step, and in the worst case I could just scrap it al and redo the entire installation tutorial again, and now not deviate from the example configuration too much.
First: trying to fix the neutron config. I followed these guides, instead of the example installation:
Deploy OVS provider: First I needed to create a provider network.
Deploy OVS self service: Then make it self service with vxlan.
I ended up removing all the “vlan” interfaces and virtual network, as I didn’t need these anymore.
I was getting a different error message at this point, which I could resolve with this suggestion: Failed to allocate the networks, not reschuduling.
I can create an instance!
Still to be investigated: I can’t login on the cirros instance via the console, because it keeps complaining about “unknown key pressed” when I try to login.
And the routing to the external network doesn’t work yet, I will probably need to add the external interface to the provider ovs bridge somehow.
Still a bit of work to be done, but I’m getting closer.
Update 1: the console issue is probably related to the antiquated version of novnc that’s packaged by Ubuntu. It includes version 0.4 instead of 0.6.2 (latest), and since 0.4 alot of improvements in foreign keyboard support has been added (mine is a Belgian layout). If I set the keyboard layout to US on my machine, the console works just fine. I could either try to upgrade the version of novnc on my installation, or switch to SPICE instead.
Update 2: the networking issue has also been resolved: I just needed to add the external port to the br-provider bridge.