Deploying OpenStack with Docker
Note This is a Work-In-Progress Document and the most up-to-date information is available at: github.com/memogarcia/openstack-deployer
Deploying OpenStack using containers allows easy customisation and flexibility on how to deploy the platform for development, testing and production environments.
Current deployment: stable/queens
Host configuration
The default configuration for this environment is composed by 3 main components that need to run on the host:
Docker will act as the control plane for OpenStack while the host will provide the hypervisor, network and storage.

Network topology
This is the default network topology, 2 networks are used:
- openstack-management-net: All openstack traffic goes through here
- openstack-provider-net: Instances get IPs in this network

Infra services
- Fluentd: for logging
- Cadvisor: for container stats
- Elasticsearch: for log collection
- Kibana: for log visualization
- Portainer: for container management
Third-party services
Configure the third-party services needed for OpenStack to run.
- Seed
- MariaDB/MySQL
- PostgreSQL Optional Database
- Memcached
- Rabbitmq
- Onos Optional SDN
- Minio Optional Object Storage
OpenStack services
Extending OpenStack services
Deploying OpenStack
The model is a yml file describing how your environment should look like. It defines the services to run, networks, ips, volumes, dependencies, etc.
Configure your runtime environment by modifying model.yml .
Apply the configuration with config_processor, which will create the necessary scripts to run the environment.
ansible-playbook -i hosts/localhost config_processor.ymlConfig processor will create a new branch deploy where the runtime configuration will be ready for deployment.
Verify the branch is created correctly.
git branch
# * deploy
git log
# Ready for deploymentDeploy OpenStack
./scripts/docker-network-create.sh
./scripts/build.sh
./scripts/start.shVerify installation
source osrc-v3
openstack project list
openstack image list
openstack network list
openstack server list