So I’ve spent a bit of time with OpenStack now, debugging issues and getting my setup tuned and ready to go.
For the most part, Neutron and Nova work great. No complaints. Haven’t used much of Keystone directly but I’m sure it works fine. Bit of configuration and debugging to do on Magnum (I think), but again I’m pretty sure it’s a “I configured this incorrectly” problem and not a “this is a piece of shit” problem.
I do have a couple of gripes though, which I’ll detail below
The Terraform Provider
The Terraform provider has a few… Interesting issues, and doesn’t seem very well maintained
The main issue I’ve run into is that there’s no way to attach a Cinder volume to a Nova instance. Works fine in the console and the CLI application, but it’s completely unsupported in the V3 Terraform resource.
Tried the V2, but since I’m using a newer version of OpenStack it just complains about not having the API to do it.
Again, irritating, but not showstopping since I can just define a compute flavour with the volume size I want.
Trove
I want to love Trove. I’m a big fan of AWS RDS, and just love the way it smoothes over application deployments.
I wanted Trove to at least be a pared back experience, but all I get is pain. I spent 3 weeks debugging my configurations because it would just crash completely without a lot of feedback. My initial issue was with Designate, where the Python driver class specified by the default Ansible config was just wrong. Once I fixed that (by just disabling designate integration altogether), I needed to set up a datastore, which wasn’t possible using the Terraform provider (rage). I got the datastore mentioned in the docs as the explicitly supported one and it worked amazingly. MySQL came up and I could connect to it and run queries.
However, I’m a Postgres fan. I’ve had nothing but pain trying to get it working. I try to create an instance and it just times out trying to create it.
I decided that I’m going to fix it myself at some point, and was met with just horrible documentation. Inconsistent, opaque and in some parts just flatout wrong. On top of that, the API reference isn’t in any kind of well supported format like OpenAPI, it’s in whatever the hell they’ve slapped together. Some sections have full definitions of requests and responses, others you’re lucky if you get an example or response code. Maybe I’m just set in my ways at this point, but OpenAPI and Protobuf are insanely useful communication tools and can used to generate entire APIs. It’s silly not to use them.
It’s also so insanely difficult to even get involved, I tried asking on their IRC chats and was met with silence. Ok, sure, I’ve made best effort here, I’m going to document what I can, fix my issues and move on, if they don’t like my PRs then I guess I’ll let it go. I just want a managed Postgres instance. Please. I don’t really want to join a mailing list to ask “hey wtf”, it just feels rude. I’m hellbent on doing a PR somewhere, though, this is just embarassingly bad and reflects poorly on the FOSS community.
Designate
I admit, this may be a me problem. I wanted to use Designate to control my local DNS provisioning, but I wasn’t able to figure out how to actually configure the DNS server. Again, the docs fail.
I feel like Openstack-ansible should probably configure a DNS server for you to use, but Ok, not their problem. I get it.
This is another thing I’ll probably document and post about when I figure it out, but it is frustrating. Maybe I’ll post a Gerrit change to improve the AIO docs around this, I don’t know. I’ll figure it out.
Conclusion
I’m pretty switched on when it comes to networks, devopsy stuff and of course programming and so I can dive into the code quite readily to figure things out, but even I’m struggling with the gotchas I’m finding.
The dev team openly say that Openstack isn’t something you should install without thinking about it, but I’ve found it frustrating to even do the requisite research to learn about it. I guess I’ll probably continue to post about this because I want it to work, and I want it to be adopted more broadly even if it is just hobbyists like me claiming bragging rights.