A fairly accurate description of a typical experience of running OpenStack. A behemoth of complexity to manage, requiring an operator to understand a huge amount of layers, ranging from high level concepts like VRRP-based HAproxy setups all the down to kernel network namespaces and low-level tap-devices. All at the same time and with no central control plane to debug but rather crawl multiple log files from multiple systems in parallel.
Back in 2014 OpenStack may have been a thing but nowadays, 4 years later, people learned a lesson. There is no value in being a full-stack operator of infrastructure for systems. The idea of running a complex, distributed architecture like a private cloud at the same or higher stability and comparable or even lower cost than public clouds eventually proved futile.
That's why in 2018, consensus is, infrastructure for systems has been replaced by infrastructure for applications (k8s). The infrastructure is typically consumed on public clouds.