In my idle moments, I contemplate such things as self-assembling infrastructure-in-a-box. What I mean by that is how do you go from an an empty room (conceptually) to doing useful work for the business in as few steps as possible, as quickly as possible? What minimum complement of services do you need, and how do you bootstrap it into existence, autonomously? The goal is to perform as few manual steps as possible to get to a state where you can easily build out the rest of your infrastructure and start deploying applications right away. Bootstrapping. Inception. Whatever.
In this post, at a high level, I want to lay out a simple application platform bootstrapping exercise. We’re going to make use of a HOT template for Openstack to bring up a three node CoreOS cluster which performs auto-discovery to assemble an etcd cluster. This is not a tutorial on Openstack. I am not covering the obvious question of how to get Openstack running. The point of this exercise is only to lay the foundation for running clustered applications in Docker containers.