I’ve spent quite some time researching how we can migrate TripleO from deploying OpenStack on baremetal to Kubernetes. This work has been going on for around a year already and it started with a migration from baremetal to Docker. Now that this first migration is almost done, I’ve moved to research how we can do the final migration to Kubernetes.
As in most of our works, we’re striving the least possible, backwards compatible, changes. To do this, I’ve focused on three main areas for now:
- Unified configuration management: Migrate out of puppet for configuration management and adopt a solution that can be shared across different projects in OpenStack.
- Re-use of existing data: Don’t require greenfield deployments but be able to consume the existing data – hiera files, basically.
- Re-use existing templates and libraries: Avoid rewriting all the templates that have been written already for the first, docker based, migration. There are libraries, CLI tools, and API’s that were developed for the first phase that can be re-used in the second one to reduce the amount of work needed.
I’m not planning to go into great detail in this post on what has been done in each area – I’ll do that in future posts – but rather show a small screencast that features the TripleO undercloud command deploying mariadb on Kubernetes.
The code used in this screencast includes ansible-role-l8s-mariadb, and ansible-role-l8s-tripleo. The changes to tripleo-heat-template have not been published yet. I’ll work on that and update this post (you can see the mysql.yaml file in the video, that’s all you need to change).
Percoco currently works at Red Hat in the office of technology from where he serves the OpenStack community as a full-time upstream developer. His interests involve community work and deployment tools. He’s been an elected member of OpenStack’s Technical Committee for the past three years.