|
|
|
# Bootstrapping Deployment Manager
|
|
|
|
|
|
|
|
Welcome to the bootstrap example. The instructions below will step you through
|
|
|
|
the process of building and running a local instance of DM on your local machine,
|
|
|
|
and then using it to deploy another instance of DM in your cluster.
|
|
|
|
|
|
|
|
This example provides insights into how DM works, and is recommended for anyone
|
|
|
|
interested in contributing to the project.
|
|
|
|
|
|
|
|
## Prerequisites
|
|
|
|
|
|
|
|
Before you can bootstrap DM, the following prerequisites must be satisfied.
|
|
|
|
|
|
|
|
### Kubernetes cluster and go configuration
|
|
|
|
|
|
|
|
1. Make sure your Kubernetes cluster is up and running, and that you can run
|
|
|
|
`kubectl` commands against it.
|
|
|
|
1. Clone this repository into the src folder of your GOPATH, if you haven't already.
|
|
|
|
1. Make sure your PATH contains `$GOPATH/bin`.
|
|
|
|
|
|
|
|
### Installing required python packages
|
|
|
|
|
|
|
|
Since Deployment Manager uses Python and will be running locally on your
|
|
|
|
machine, you need to make sure the necessary Python packages are installed. This
|
|
|
|
step assumes that you have already installed the pip package management system
|
|
|
|
on your machine.
|
|
|
|
|
|
|
|
```
|
|
|
|
pip install -r expandybird/requirements.txt
|
|
|
|
```
|
|
|
|
|
|
|
|
Note: depending on how you installed python and pip, you may need to use `sudo`
|
|
|
|
for this command.
|
|
|
|
|
|
|
|
## Bootstrapping Deployment Manager
|
|
|
|
|
|
|
|
With the prerequisites satisfied, you're ready to bootstrap DM.
|
|
|
|
|
|
|
|
### Building and installing the binaries
|
|
|
|
|
|
|
|
First, you're going to build and install the DM binaries. You can do this by
|
|
|
|
running make in the repository root.
|
|
|
|
|
|
|
|
```
|
|
|
|
make
|
|
|
|
```
|
|
|
|
|
|
|
|
### Start Deployment Manager on localhost
|
|
|
|
|
|
|
|
Next, start the three DM binaries on localhost using the supplied bootstrap script.
|
|
|
|
|
|
|
|
```
|
|
|
|
./examples/bootstrap/bootstrap.sh
|
|
|
|
```
|
|
|
|
|
|
|
|
The script starts the following binaries:
|
|
|
|
* manager (frontend service) running on port 8080
|
|
|
|
* expandybird (expands templates) running on port 8081
|
|
|
|
* resourcifier (reifies primitive Kubernetes resources) running on port 8082
|
|
|
|
|
|
|
|
It also starts kubectl proxy on port 8001.
|
|
|
|
|
|
|
|
### Deploy Deployment Manager into your cluster
|
|
|
|
|
|
|
|
Finally, use the DM running on localhost to deploy another instance of DM onto
|
|
|
|
the cluster using `dm` and the supplied template. Note that you are using the
|
|
|
|
`--service` flag to point `dm` to the instance of DM running on localhost, rather
|
|
|
|
than to an instance of DM running in the cluster through `kubectl proxy`, which
|
|
|
|
is the default.
|
|
|
|
|
|
|
|
```
|
|
|
|
dm --service=http://localhost:8080 deploy examples/bootstrap/bootstrap.yaml
|
|
|
|
```
|
|
|
|
|
|
|
|
You now have Deployment Manager running on your cluster. You can see it running
|
|
|
|
using `kubectl`, as described in the top level [README.md](../../README.md).
|