promenade/docs/source/getting-started.rst

2.3 KiB

Getting Started

Development

Deployment using Vagrant

Deployment using Vagrant uses KVM instead of Virtualbox due to better performance of disk and networking, which both have significant impact on the stability of the etcd clusters.

Make sure you have [Vagrant](https://vagrantup.com) installed, then run ./tools/full-vagrant-setup.sh, which will do the following:

  • Install Vagrant libvirt plugin and its dependencies
  • Install NFS dependencies for Vagrant volume sharing
  • Install [packer](https://packer.io) and build a KVM image for Ubuntu 16.04

Generate the per-host configuration, certificates and keys to be used:

mkdir configs
docker run --rm -t -v $(pwd):/target quay.io/attcomdev/promenade:latest promenade -v generate -c /target/example/vagrant-input-config.yaml -o /target/configs

Start the VMs:

vagrant up

Start the genesis node:

vagrant ssh n0 -c 'sudo bash /vagrant/configs/up.sh /vagrant/configs/n0.yaml'

Join the master nodes:

vagrant ssh n1 -c 'sudo bash /vagrant/configs/up.sh /vagrant/configs/n1.yaml'
vagrant ssh n2 -c 'sudo bash /vagrant/configs/up.sh /vagrant/configs/n2.yaml'

Join the worker node:

vagrant ssh n3 -c 'sudo bash /vagrant/configs/up.sh /vagrant/configs/n3.yaml'

Building the image

docker build -t promenade:local .

For development, you may wish to save it and have the up.sh script load it:

docker save -o promenade.tar promenade:local

Then on a node:

PROMENADE_LOAD_IMAGE=/vagrant/promenade.tar bash /vagrant/up.sh /vagrant/path/to/node-config.yaml

These commands are combined in a convenience script at tools/dev-build.sh.

To build the image from behind a proxy, you can:

export http_proxy=...
export no_proxy=...
docker build --build-arg http_proxy=$http_proxy --build-arg https_proxy=$http_proxy --build-arg no_proxy=$no_proxy  -t promenade:local .

Using Promenade Behind a Proxy

To use Promenade from behind a proxy, use the proxy settings described in the [configuration docs](configuration.md).