-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Cloudpad is a tool to consolidate commands for the building and deployment of Docker containers.
Cloudpad is designed to be used in a repository strictly responsible for the deployment of code to a cluster of CoreOS or docker-capable machines. It will take you from source-controlled code to running containers across multiple hosts, while abstracting and reducing reduntant tasks.
When deploying containers with Cloudpad, you must complete the following steps:
- Identify the container types that are going to be deployed
- Define the configuration for each container type (including it's Dockerfile and context)
- Locally update source code to the context to be deployed prior to build
- Build container images in a fashion that best utilizes the cache
- Push the image to a private docker registry after a successful build
- Deploy containers to the host using Fleet, SSH, etc.
- Seamlessly manage and update running containers (i.e. code updates)
Cloudpad provides conventions for building containers with defined roles, and allows for remote execution of certain tasks. This library is also capable of deriving the cluster hosts using a cached manifest or connecting to an API.
The principle purpose of using Capistrano is to provide for the remote execution of commands in an easy manner. Many of the guides for CoreOS assume commands are ran from one of the CoreOS hosts, which may not be optimal in all cases. Also, by using Capistrano, we can execute Docker deployment commands on non-CoreOS hosts.
As of writing this the hosts that are part of Cloudpad must run the following. Everything other than the OS is taken care of by the provisioning process.
- Ubuntu 14.04 LTS
- Docker.io
- Etcd
It is recommended that the images that you build be built on top of Phusion Base Image for full functionality, although this is not required.
- Run etcd on Launcher instead of on hosts (as docker container)
- Better tagging of built and stored images for rollbacks